Missing docker compose docs

Maybe it’s just me, but this documentation doesn’t show or link to a full blown docker compose example as stated in the introduction: Full docker example

Do I miss something or?

This docker compose configuration will run Vikunja with a postgres database. It uses a proxy configuration to make it available under a domain.

Maybe I got confused.. and then add a link behind “This docker compose configuration” text.. to this “Example without any proxy” section? Since maybe its just me, but it was very confusing.


Also. I notice the following warning in the log, using the latest docker compose example:

time=2026-04-25T15:22:23.354Z level=INFO msg="No config file found, using default or config from environment variables."
time=2026-04-25T15:22:23.355Z level=WARN msg="config: both service.secret and service.jwtsecret are set. Using service.secret. Please remove service.jwtsecret, it is deprecated and will be removed in a future release."

Should I use VIKUNJA_SERVICE_JWTSECRET or not? :confounded_face: ….

I created a PR to address the second issue: Replace VIKUNJA_SERVICE_JWTSECRET with VIKUNJA_SERVICE_SECRET by melroy89 · Pull Request #338 · go-vikunja/website · GitHub

FWIW, here’s my compose file:

services:
  vikunja:
    image: vikunja/vikunja:latest
    stdin_open: true
    tty: true
    user: "0:0"
    dns: 192.168.0.4
    environment:
      VIKUNJA_SERVICE_PUBLICURL: http://192.168.0.3:3456
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_PASSWORD: changeme
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_SERVICE_JWTSECRET: <a super secure random secret>
      VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: true
      VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: true
      VIKUNJA_MAILER_ENABLED: true
      VIKUNJA_MAILER_AUTHTYPE: login
      VIKUNJA_MAILER_FORCESSL: false
      VIKUNJA_MAILER_SKIPTLSVERIFY: true
      VIKUNJA_MAILER_HOST: 50.******
      VIKUNJA_MAILER_PORT: 587
      VIKUNJA_MAILER_USERNAME: ******
      VIKUNJA_MAILER_PASSWORD: *****
      VIKUNJA_MAILER_FROMEMAIL: ******
      VIKUNJA_SERVICE_TIMEZONE: America/Chicago
    ports:
      - 3456:3456
    volumes:
      - /share/Container/vikunja/files:/app/vikunja/files
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped
    
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: supersecret
      MYSQL_USER: vikunja
      MYSQL_PASSWORD: changeme
      MYSQL_DATABASE: vikunja
    volumes:
      - /share/Container/vikunja/db:/var/lib/mysql
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u $$MYSQL_USER --password=$$MYSQL_PASSWORD"]
      interval: 2s
      start_period: 30s

I just left all the passwords as were in the examples. My container is not exposed to the internet so I don’t really care what the passwords are or if anyone else knows them! I was able to get most of this from what is called out on Docker Hub. It worked right away. The only problem I have is the email host. I have to use my server’s IP address as the container is using an IP of 127.0.0.11 that I didn’t set for the DNS host and no one has been able to answer my question as to why.

I’m running my container on a QNAP NAS, FYI.