Vikunja doesn't have permission to 'files'

Hi Team,

Thank you for making this amazing app!

I tried to set it up last weekend but I encountered issues and I couldn’t find any solution on docs/forums/AI. Could you help me out here?

I’ve installed on Unraid barematal server but encountered some permission issues. I thought maybe unraid is bit restrictive so I tried setting it up on my Debian VPS but I still have the same problem. Let’s assume I’ll use VPS from now on.

I used this doc page mainly.

my compose.yaml:

services:
   vikunja:
       image: vikunja/vikunja
       environment:
           VIKUNJA_SERVICE_PUBLICURL: https://host.domain.org
           VIKUNJA_DATABASE_HOST: db
           VIKUNJA_DATABASE_PASSWORD: password
           VIKUNJA_DATABASE_TYPE: postgres
           VIKUNJA_DATABASE_USER: vikunja
           VIKUNJA_DATABASE_DATABASE: vikunja
           VIKUNJA_SERVICE_JWTSECRET: password
       ports:
           - 6060:3456
       volumes:
           - ./files:/app/vikunja/files
       depends_on:
           db:
               condition: service_healthy
       restart: unless-stopped
   db:
       image: postgres:18
       environment:
           POSTGRES_PASSWORD: password
           POSTGRES_USER: vikunja

       volumes:
           - ./db:/var/lib/postgresql
       restart: unless-stopped
       healthcheck:
           test: ["CMD-SHELL", "pg_isready -h localhost -U $$POSTGRES_USER"]
           interval: 2s
           start_period: 30s 

I’m trying to add vikunja to komodo stack. I don’t think this is causing any problems.

I have also run these commands before starting the stack:

mkdir $PWD/files
chown 1000 $PWD/files

this is what comes up:

root@vps:/opt/komodo/stacks/vikunja# docker compose up
[+] Running 3/3
 ✔ Network vikunja_default      Created                                                                                                    0.1s 
 ✔ Container vikunja-db-1       Created                                                                                                    0.1s 
 ✔ Container vikunja-vikunja-1  Created                                                                                                    0.0s 
Attaching to db-1, vikunja-1
db-1       | 
db-1       | PostgreSQL Database directory appears to contain a database; Skipping initialization
db-1       | 
db-1       | 2026-02-04 23:03:09.275 UTC [1] LOG:  starting PostgreSQL 18.1 (Debian 18.1-1.pgdg13+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
db-1       | 2026-02-04 23:03:09.275 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db-1       | 2026-02-04 23:03:09.275 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db-1       | 2026-02-04 23:03:09.278 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db-1       | 2026-02-04 23:03:09.285 UTC [32] LOG:  database system was shut down at 2026-02-04 23:02:37 UTC
db-1       | 2026-02-04 23:03:09.292 UTC [1] LOG:  database system is ready to accept connections
vikunja-1  | 2026/02/04 23:03:14 failed to create modcache index dir: mkdir /.cache: permission denied
vikunja-1  | time=2026-02-04T23:03:14.975Z level=INFO msg="No config file found, using default or config from environment variables."
vikunja-1  | time=2026-02-04T23:03:14.977Z level=INFO msg="Running migrations…"
vikunja-1  | time=2026-02-04T23:03:15.063Z level=INFO msg="Ran all migrations successfully."
vikunja-1  | time=2026-02-04T23:03:15.067Z level=INFO msg="Mailer is disabled, not sending reminders per mail"
vikunja-1  | time=2026-02-04T23:03:15.067Z level=INFO msg="Mailer is disabled, not sending overdue per mail"
vikunja-1  | time=2026-02-04T23:03:15.067Z level=INFO msg="Vikunja version v1.0.0"
vikunja-1  | time=2026-02-04T23:03:15.068Z level=INFO msg="CORS enabled with origins: http://127.0.0.1:*, http://localhost:*, https://xxx.xxx.xxx"
vikunja-1  | time=2026-02-04T23:03:15.071Z level=INFO msg="HTTP server listening on :3456"

I can access the frontend and add tasks and projects.

The problems are:
1 - files directory is empty on my host file system (I want to back it up)
db directory is filled in.

2 - docker directories are not reachable from vscode
db directories are reachable

3 - export is not possible

I requested export from this dashboard
/user/settings/data-export

vikunja-1  | time=2026-02-04T23:10:26.756Z level=INFO component=http method=GET uri=/assets/DataExport-CG5jHfCh.css status=200 latency=1.19093ms
vikunja-1  | time=2026-02-04T23:10:26.772Z level=INFO component=http method=GET uri=/assets/DataExport-Di8raW_M.js status=200 latency=1.269501ms
vikunja-1  | time=2026-02-04T23:10:26.793Z level=INFO component=http method=GET uri=/assets/dataExport-SSVTr7NQ.js status=200 latency=4.380526ms
vikunja-1  | time=2026-02-04T23:10:26.980Z level=INFO component=http method=GET uri=/api/v1/user/export status=200 latency=1.908076ms
vikunja-1  | time=2026-02-04T23:10:33.177Z level=INFO component=http method=GET uri="/api/v1/notifications?page=1" status=200 latency=3.586006ms
vikunja-1  | time=2026-02-04T23:10:39.745Z level=INFO component=http method=POST uri=/api/v1/user/export/request status=200 latency=180.725748ms
vikunja-1  | time=2026-02-04T23:10:42.123Z level=INFO component=http method=GET uri="/api/v1/notifications?page=1" status=200 latency=3.538451ms
vikunja-1  | time=2026-02-04T23:10:44.173Z level=ERROR msg="Error while handling message 92275958-4225-4645-b209-af83367a7026, handler_poisoned=user.export.requested.handle.user.data.export, subscriber_poisoned=gochannel.GoChannel, reason_poisoned=error creating temp file: open /tmp/vikunja-export-1432039538.zip: no such file or directory, topic_poisoned=user.export.requested,  payload={\"user\":{\"id\":1,\"name\":\"\",\"username\":\"Burak\",\"created\":\"2026-02-04T23:05:00Z\",\"updated\":\"2026-02-04T23:05:01Z\"}}"

Could you please help me on this?
Thank you!

I forgot to mention I also tried adding this to my compose.

user: "0:0"

I can go into individual container’s logs from vscode if that is needed.