question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Using traefik instead of nginx

See original GitHub issue

What am I doing wrong? instead of a proxy I use traefik, that’s why you also see networks and the traefik part. that shouldn’t matter! the logs are mentioned below… but are looking good right? so I dont get it…

my config

version: “3.4” services: librephotos-db: image: postgres environment: - POSTGRES_USER=libre - POSTGRES_PASSWORD=libre - POSTGRES_DB=libre volumes: - /share/docker/swarm/appdata/libre/db:/var/lib/postgresql/data command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0 networks: - internal - traefik_public

frontend: image: reallibrephotos/librephotos-frontend:dev networks: - internal - traefik_public deploy: labels: - “traefik.enable=true”
- “traefik.http.routers.libre.entrypoints=https” - “traefik.http.routers.libre.rule=Host(mydomain.com)” - “traefik.http.routers.libre.middlewares=chain-no-auth@file” - “traefik.http.routers.libre.service=libre-svc” - “traefik.http.services.libre-svc.loadbalancer.server.port=3000”

backend: image: reallibrephotos/librephotos:dev volumes: - /share/media/test:/data - /share/docker/swarm/appdata/libre/media:/code/protected_media - /share/docker/swarm/appdata/libre/logs:/code/logs - /share/docker/swarm/appdata/libre/cache:/root/.cache environment: - SECRET_KEY=ed8m9gwv7nm3K1ZdpCqO - BACKEND_HOST=backend - ADMIN_EMAIL=myemail@gmail.com - ADMIN_USERNAME=admin - ADMIN_PASSWORD=admin - DEBUG=true - DB_BACKEND=postgresql - DB_NAME=libre - DB_USER=libre - DB_PASS=libre - DB_HOST=librephotos-db - DB_PORT=5432 - REDIS_HOST=librephotos-redis - REDIS_PORT=6379 - MAPBOX_API_KEY=myapikey - TIME_ZONE=Europe/Amsterdam - WEB_CONCURRENCY=1 - WORKER_TIMEOUT=1800 - SKIP_PATTERNS= networks: - internal - traefik_public depends_on: - librephotos-db - librephotos-redis

librephotos-redis: image: redis:alpine networks: - internal - traefik_public

networks: traefik_public: external: true internal: driver: overlay ipam: config: - subnet: 172.16.93.0/24

backend log:

1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 [X] 0009_alter_user_last_name_max_length                                                                                                              
 [X] 0010_alter_group_name_max_length                                                                                                                  
 [X] 0011_update_proxy_permissions                                                                                                                     
contenttypes                                                                                                                                           
 [X] 0001_initial                                                                                                                                      
 [X] 0002_remove_content_type_name                                                                                                                     
database                                                                                                                                               
 [X] 0001_initial                                                                                                                                      
 [X] 0002_auto_20190129_2304                                                                                                                           
sessions                                                                                                                                               
 [X] 0001_initial                                                                                                                                      
Running backend server...                                                                                                                              
[2021-02-17 13:13:14 +0000] [101] [INFO] Starting gunicorn 20.0.4                                                                                      
[2021-02-17 13:13:14 +0000] [101] [INFO] Listening at: http://0.0.0.0:8001 (101)                                                                       
[2021-02-17 13:13:14 +0000] [101] [INFO] Using worker: gevent                                                                                          
[2021-02-17 13:13:14 +0000] [105] [INFO] Booting worker with pid: 105                                                                                  
13:13:22 Worker rq:worker:6035a15da82b452ea490ab4747ba7b7e: started, version 1.6.1                                                                     
13:13:22 Subscribing to channel rq:pubsub:6035a15da82b452ea490ab4747ba7b7e                                                                             
13:13:22 *** Listening on default...                                                                                                                   
13:13:22 Cleaning registries for queue: default       

frontend:

1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
serving frontend                                                                                                                                       
INFO: Accepting connections at http://localhost:3000   

database:

2021-02-17 13:12:30.134 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432                                                                   
2021-02-17 13:12:30.134 UTC [1] LOG:  listening on IPv6 address "::", port 5432                                                                        
2021-02-17 13:12:30.134 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"                                                     
2021-02-17 13:12:30.136 UTC [74] LOG:  database system was shut down at 2021-02-17 13:12:30 UTC                                                        
2021-02-17 13:12:30.140 UTC [1] LOG:  database system is ready to accept connections                                                                   
2021-02-17 13:12:40.270 UTC [81] ERROR:  relation "api_face" does not exist at character 336                                                           
2021-02-17 13:12:40.270 UTC [81] STATEMENT:  SELECT "api_face"."id", "api_face"."photo_id", "api_face"."image", "api_face"."image_path", "api_face"."pe
n_id", "api_face"."person_label_is_inferred", "api_face"."person_label_probability", "api_face"."location_top", "api_face"."location_bottom", "api_face
location_left", "api_face"."location_right", "api_face"."encoding" FROM "api_face" INNER JOIN "api_photo" ON ("api_face"."photo_id" = "api_photo"."imag
ash") WHERE "api_photo"."hidden" = false ORDER BY "api_face"."id" ASC                                                                                  
2021-02-17 13:12:40.275 UTC [81] ERROR:  relation "api_albumdate" does not exist at character 168                                                      
2021-02-17 13:12:40.275 UTC [81] STATEMENT:  SELECT "api_albumdate"."id", "api_albumdate"."title", "api_albumdate"."date", "api_albumdate"."favorited",
pi_albumdate"."location", "api_albumdate"."owner_id" FROM "api_albumdate" ORDER BY "api_albumdate"."date" DESC                                         
2021-02-17 13:12:40.279 UTC [81] ERROR:  relation "api_albumdate" does not exist at character 280                                                      
2021-02-17 13:12:40.279 UTC [81] STATEMENT:  SELECT "api_albumdate"."id", "api_albumdate"."title", "api_albumdate"."date", "api_albumdate"."favorited",
pi_albumdate"."location", "api_albumdate"."owner_id", COUNT(DISTINCT "api_albumdate_photos"."photo_id") FILTER (WHERE "api_photo"."hidden" = false) AS 
oto_count" FROM "api_albumdate" LEFT OUTER JOIN "api_albumdate_photos" ON ("api_albumdate"."id" = "api_albumdate_photos"."albumdate_id") LEFT OUTER JOI
api_photo" ON ("api_albumdate_photos"."photo_id" = "api_photo"."image_hash") GROUP BY "api_albumdate"."id" HAVING COUNT(DISTINCT "api_albumdate_photos"
hoto_id") FILTER (WHERE ("api_photo"."hidden" = false)) > 0 ORDER BY "api_albumdate"."date" DESC           

redis:

1:C 17 Feb 2021 13:12:11.895 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo                                                                           
1:C 17 Feb 2021 13:12:11.895 # Redis version=6.0.10, bits=64, commit=00000000, modified=0, pid=1, just started                                         
1:C 17 Feb 2021 13:12:11.895 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to
dis.conf                                                                                                                                               
1:M 17 Feb 2021 13:12:11.896 * Running mode=standalone, port=6379.                                                                                     
1:M 17 Feb 2021 13:12:11.896 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower valu
f 128.                                                                                                                                                 
1:M 17 Feb 2021 13:12:11.896 # Server initialized                                                                                                      
1:M 17 Feb 2021 13:12:11.896 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.ov
ommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.                      
1:M 17 Feb 2021 13:12:11.897 * Ready to accept connections                                                                                             
                                                               

other logs: command_migrate.log

Operations to perform:
  Apply all migrations: admin, api, auth, contenttypes, database, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0001_initial... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying api.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying api.0002_add_confidence... OK
  Applying api.0003_remove_unused_thumbs... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying database.0001_initial... OK
  Applying database.0002_auto_20190129_2304... OK
  Applying sessions.0001_initial... OK

show_migrate.log

admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
 [X] 0003_logentry_add_action_flag_choices
api
 [X] 0001_initial
 [X] 0002_add_confidence
 [X] 0003_remove_unused_thumbs
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
 [X] 0009_alter_user_last_name_max_length
 [X] 0010_alter_group_name_max_length
 [X] 0011_update_proxy_permissions
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
database
 [X] 0001_initial
 [X] 0002_auto_20190129_2304
sessions
 [X] 0001_initial

gunicorn_django.log

[2021-02-17 13:13:14 +0000] [101] [INFO] Starting gunicorn 20.0.4
[2021-02-17 13:13:14 +0000] [101] [INFO] Listening at: http://0.0.0.0:8001 (101)
[2021-02-17 13:13:14 +0000] [101] [INFO] Using worker: gevent
[2021-02-17 13:13:14 +0000] [105] [INFO] Booting worker with pid: 105

rqworker.log

13:13:22 Worker rq:worker:6035a15da82b452ea490ab4747ba7b7e: started, version 1.6.1
13:13:22 Subscribing to channel rq:pubsub:6035a15da82b452ea490ab4747ba7b7e
13:13:22 *** Listening on default...
13:13:22 Cleaning registries for queue: default

image_similarity.log 2021-02-17 13:12:14,954 : main.py : <module> : 50 : INFO : starting server

these are empty: command_build_similarity_index.log command_createadmin.log gunicorn_image_similarity.log ownphotos.log

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:7 (4 by maintainers)

github_iconTop GitHub Comments

3reactions
jboeshcommented, Feb 17, 2021

ok wtf, it works now after adding these lines. sorry i’m stubborn sometimes

proxy: image: reallibrephotos/librephotos-proxy:dev ports: - 3000:80

if you want you can add this config in the documentation (its made for docker swarm)

version: "3.4"
services:
  proxy:
    image: reallibrephotos/librephotos-proxy:dev
    ports:
      - 3000:80

  librephotos-db:
    image: postgres
    environment:
      - POSTGRES_USER=libre
      - POSTGRES_PASSWORD=libre
      - POSTGRES_DB=libre
    volumes:
      - /share/docker/swarm/appdata/libre/db:/var/lib/postgresql/data
    command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0
    depends_on:
      - backend

  frontend:
    image: reallibrephotos/librephotos-frontend:dev
    depends_on:
      - backend

  backend:
    image: reallibrephotos/librephotos:dev
    volumes:
      - /share/media/afbeeldingen/test:/data
      - /share/docker/swarm/appdata/libre/media:/code/protected_media
      - /share/docker/swarm/appdata/libre/logs:/code/logs
      - /share/docker/swarm/appdata/libre/cache:/root/.cache
    environment:
      - SECRET_KEY=[random key]
      - BACKEND_HOST=backend
      - ADMIN_EMAIL=yourmail@gmail.com
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=admin
      - DEBUG=true
      - DB_BACKEND=postgresql
      - DB_NAME=libre
      - DB_USER=libre
      - DB_PASS=libre
      - DB_HOST=librephotos-db
      - DB_PORT=5432
      - REDIS_HOST=librephotos-redis
      - REDIS_PORT=6379
      - MAPBOX_API_KEY=[fill in please]
      - TIME_ZONE=Europe/Amsterdam
      - WEB_CONCURRENCY=1
      - WORKER_TIMEOUT=1800
      - SKIP_PATTERNS=
    depends_on:
      - librephotos-db
      - librephotos-redis

  librephotos-redis:
    image: redis:alpine
0reactions
derneuerecommented, Feb 17, 2021

It works if you add the proxy. The proxy is still missing.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Traefik vs Nginx for Reverse Proxy with Docker on ... - Alex Hyett
I prefer setting up my services this way anyway so that all traffic goes through the reverse proxy instead of having the port...
Read more >
Nginx vs Traefik: how slower one can be better? - Devforth
So considering requests per seconds we might conclude that Traefik is 15% slower then Nginx, at least in mentioned test.
Read more >
How to deploy Nginx instead of Traefik as your ingress ... - SUSE
This knowledge base article will provide the directions for deploying NGINX instead of Traefik as your Kubernetes ingress controller on K3s.
Read more >
From NGINX to Traefik (with Docker on DigitalOcean) - Medium
Traefik is an open-source HTTP reverse proxy and load balancer particularly suitable for dynamic environments: it supports service discovery, ...
Read more >
Limitations on Traefik versus Nginx - Reddit
Traefik is not a webserver, but u can use nginx on docker-compose that is using traefik to serve static sites etc.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found