Docker image fails at startup

2025/11/11 17:17:32 failed to create modcache index dir: mkdir /.cache: permission denied

time=2025-11-11T17:17:32.524Z level=INFO msg=“No config file found, using default or config from environment variables.”

time=2025-11-11T17:17:32.524Z level=ERROR msg=“service.publicurl is required when cors.enable is true”

I’m trying to get started self-hosting on Mac OS. I got this same error using the Docker Desktop application and also using the command line script from the getting started documentation

1 Like

I’ve basically ran into similar problems with the latest docker image, still trying to figure out what the heck is going on and how to resolve it.

2025-11-21T07:54:34.424298479Z 2025/11/21 07:54:34 failed to create modcache index dir: mkdir /.cache: permission denied

2025-11-21T07:54:34.428906455Z time=2025-11-21T07:54:34.428Z level=INFO msg="No config file found, using default or config from environment variables."
2025-11-21T07:54:34.429431497Z time=2025-11-21T07:54:34.429Z level=INFO msg="Running migrations…"
2025-11-21T07:54:34.431463349Z time=2025-11-21T07:54:34.431Z level=ERROR msg="could not check for paradedb extension: dial tcp: lookup db on 127.0.0.11:53: server misbehaving"
2025-11-21T07:54:34.432422059Z time=2025-11-21T07:54:34.432Z level=ERROR msg="Migration failed: dial tcp: lookup db on 127.0.0.11:53: server misbehaving"

This sounds like Vikunja can’t reach your database. The server misbehaving indicates something is wrong with the docker dns resolution.

1 Like

Okay, at least I was able to figure out the last two log snippets:
I’ve crated my own docker-compose.yaml fiule as I don’t like to map the container ports to 127.0.0.1, I use dedicated virtual networks for the containers. And I dont bind host folders into the containers, I use persistent docker volumes.

As I have quite a large number of containers already running on my docker instance I also renamed the containers for better differenciation - and of course I changed the name of the postgres container for vikunja, but I forgot to adapt the environment variable for the vikunja container pointing vikunja to it’s datanbase.

I just corrected the configuration, deleted the two vikunja related containers AND the volumes, just to make sure everything is now created correctly from scratch - and voilà, now everything is working as expected.

Only THIS error remains:

2025-11-21T08:03:21.683175432Z 2025/11/21 08:03:21 failed to create modcache index dir: mkdir /.cache: permission denied



Sometimes the only thing I need to do as an AuDHD person is to write the damn thing down once.
It often helps enough to get my thoughts back on track again. After I wrote my comment here it struck me hard: damn, I renamed the db container but forgot to adapt the environment variables for vikunja.

Thank you for time and effort to reply. I really appreciate your help.

If you have the containers in different compose projects and don’t set a custom container_name, they already get the compose project name as prefix applied but are still visible to each other using the compose name. That means for a config like this:

service:
  vikunja:
    image: vikunja/vikunja
    # ...
  db:
    image: postgres
    # ...

the vikunja container will be able to talk to the db container using just db as hostname, but it will be called vikunja-db-1 if you run docker ps.

1 Like

Yeah, I know that the project name gets prefixed to the container name. I’ts just a personal preference that I didn’t like “db”, I just called it “postgres-db”. It’s just pure cosmetics, everything would have been fine technically if I just didn’t have fiddled around with the proposed container names. :face_with_peeking_eye: