go-vikunja/vikunja

Problems with single-container version: 502, Migration failed, no live upstreams

daniel86 opened this issue · 1 comments

Description

I have problems updating to the latest docker version of vikunja, i.e. the one that merges API and frontend.
I did not have time before, so was left with a broken instance for some time now. It was running nicely with the separate containers.

My setup involves nginx running on my host, and vikunja running in docker with docker-compose (with watchtower always keeping it up to date).

The issue is that I cannot connect to the frontend anymore. The browser reports a 502. Looking at the nginx log there are entries of the form:

[error] 965481#965481: *3477933 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: REDACTED, server: REDACTED, request: "GET /sw.js HTTP/2.0", upstream: "http://127.0.0.1:6080/sw.js", host: "REDACTED", referrer: "https://REDACTED/sw.js"

and

[error] 965491#965491: *3477595 no live upstreams while connecting to upstream, client: REDACTED, server: REDACTED, request: "GET /favicon.ico HTTP/2.0", upstream: "http://localhost/favicon.ico", host: "REDACTED", referrer: "https://REDACTED/"

The only error that appears in the vikunja logs is the following one:

2024-04-05T13:01:22.300862447+02:00: CRITICAL	▶ migration/Migrate 003 Migration failed: dial tcp 172.28.0.2:3306: connect: connection refused

So before I had two sections in the docker-compose, which I merged into one:

  vikunja-db:
    image: mariadb:10
    restart: unless-stopped
    container_name: vikunja-db
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    networks:
      - tasks
    environment:
      MYSQL_ROOT_PASSWORD: "vikunja"
      MYSQL_USER: REDACTED
      MYSQL_PASSWORD: REDACTED
      MYSQL_DATABASE: REDACTED
    volumes:
      - ./vikunja/db:/var/lib/mysql
  
  vikunja:
    image: vikunja/vikunja
    restart: unless-stopped
    container_name: vikunja
    networks:
      - tasks
    environment:
      VIKUNJA_DATABASE_HOST: vikunja-db
      VIKUNJA_DATABASE_PASSWORD: REDACTED
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: REDACTED
      VIKUNJA_DATABASE_DATABASE: REDACTED
      VIKUNJA_SERVICE_JWTSECRET: REDACTED
      VIKUNJA_SERVICE_PUBLICURL: https://REDACTED/
      VIKUNJA_SERVICE_ENABLECALDAV: true
      VIKUNJA_SERVICE_ENABLEREGISTRATION: false
      VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: true
      VIKUNJA_SERVICE_TIMEZONE: "Europe/Berlin"
      VIKUNJA_METRICS_ENABLED: false
      VIKUNJA_MAILER_ENABLED: 1
      VIKUNJA_MAILER_FORCESSL: 1
      VIKUNJA_MAILER_HOST: "${EMAIL_HOST}"
      VIKUNJA_MAILER_PORT: "${EMAIL_PORT}"
      VIKUNJA_MAILER_USERNAME: "${EMAIL_HOST_USER}"
      VIKUNJA_MAILER_PASSWORD: "${EMAIL_HOST_PASSWORD}"
      VIKUNJA_MAILER_FROMEMAIL: "${EMAIL_DEFAULT_FROM}"
      VIKUNJA_API_URL: https://REDACTED/api/v1
      PUID: 1000
      PGID: 1000
      TZ: Europe/Berlin
    ports:
      - 3456:3456
      - 6080:80
    volumes:
      - ./vikunja/files:/app/vikunja/files
      - ./vikunja/config:/etc/vikunja
    depends_on:
      - vikunja-db

The nginx reverse proxy has following entry:

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	server_name REDACTED;

	ssl_certificate /etc/letsencrypt/live/REDACTED/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/REDACTED/privkey.pem;
	include /etc/letsencrypt/options-ssl-nginx.conf;
	
	client_max_body_size 100M;
	charset utf-8;
	
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header X-Forwarded-Protocol $scheme;
	proxy_set_header X-Forwarded-Host $http_host;
	proxy_redirect off;
	
	location / {
		proxy_pass http://localhost:6080;
	}
	
	location ~* ^/(api|dav|\.well-known)/ {
		proxy_pass http://localhost:3456;
	}
}

I am a bit lost, any idea what is going wrong?

Vikunja Version

vikunja/vikunja:latest

Browser and version

No response

Can you reproduce the bug on the Vikunja demo site?

No

Screenshots

No response

It seems I got it working again with simplified entry for nginx:

	location / {
		proxy_pass http://localhost:3456;
	}