# Missing docker compose docs

**URL:** <https://community.vikunja.io/t/missing-docker-compose-docs/4479>\
**Category:** Support\
**Created:** [25 April 2026 13:50 UTC](https://community.vikunja.io/t/missing-docker-compose-docs/4479 "2026-04-25T13:50:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![melroy89](https://community.vikunja.io/user_avatar/community.vikunja.io/melroy89/32/2750_2.png) [@melroy89](https://community.vikunja.io/u/melroy89)\
**Post date:** [25 April 2026 13:50 UTC](https://community.vikunja.io/t/missing-docker-compose-docs/4479/1 "2026-04-25T13:50:34Z")

</div>

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](https://vikunja.io/docs/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](https://vikunja.io/docs/full-docker-example/#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:

```auto
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? 😖 ….

---

<div class="post-metadata">

**Author:** ![melroy89](https://community.vikunja.io/user_avatar/community.vikunja.io/melroy89/32/2750_2.png) [@melroy89](https://community.vikunja.io/u/melroy89)\
**Post date:** [25 April 2026 15:48 UTC](https://community.vikunja.io/t/missing-docker-compose-docs/4479/2 "2026-04-25T15:48:15Z")

</div>

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](https://github.com/go-vikunja/website/pull/338)

---

<div class="post-metadata">

**Author:** ![NA9D](https://community.vikunja.io/user_avatar/community.vikunja.io/na9d/32/2628_2.png) [@NA9D](https://community.vikunja.io/u/NA9D)\
**Post date:** [2 May 2026 16:10 UTC](https://community.vikunja.io/t/missing-docker-compose-docs/4479/3 "2026-05-02T16:10:22Z")

</div>

FWIW, here’s my compose file:

```auto
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.
