Migration failed. Permission denied
Hello! I'm trying to run zitadel from the example but I got this migration permission error. I'm using the exact compose file as provided on a newly created LXC with fresh docker installation. How do I solve this? Thanks!

36 Replies
hey @R7FX what doc did you followed? Welcome to the server, I will help you here 🙂
Hello! Thanks for the reply! I follow the docs from the website. Here's the url: https://zitadel.com/docs/self-hosting/deploy/compose
ZITADEL Docs
The setup is tested against Docker version 28.3.2 and Docker Compose version v2.38.2
I ran the exact command that it tells me
I'm running on a fresh Debian LXC container (on Proxmox), updated docker, and then I ran those command and get that error
Is my setup has anything to do with this?
hey @R7FX we fixed a lot of sisues around the docker compose example
https://github.com/zitadel/zitadel/pull/10407
can you down your contaienrs again and try from start
GitHub
docs: simplify compose example by eliobischof · Pull Request #1040...
Which Problems Are Solved
Using the compose configuration with for existing installation doesn't work.
It is not appreciated in the whole community, that we use Traefik for the deployment e...
I do run the simplified version of the compose that has been merged a few hours ago and still got the same issue. Yesterday I ran the old version with multiple files and got that error. Then when the compose update arrives I got excited and immediately tries that new version but still same error.
I tried again on a new LXC container, this is the full command outpu
hey @R7FX checking with my engineers, we had an issue on mac that was causing it to fail but not on linux
Ahh I see, but I'm using linux too tho
yeah that's why it shouldve not happened, I am on mac and it was failing yesterday but today it works
yeah this is weird, it's obviously my setup or something cuz I don't see any other people mentioning it on github afaik. but again, it's a fresh linux installation so idk
yes it could be a LXC specific issue
hey @Rajat I found the issue. after I create a regular user it runs perfectly! maybe it has something to do with me running the docker as a root user
oh wow
okay
thank you for your help tho!
yeah no priblem
🎉 Looks like you just helped out another community member! Thanks for being so helpful <@660089283159523369>! You're now one step closer to leveling up—keep up the amazing peer support! 🚀
oh my god if thats it ... im gonna scream
Try that!
Or just set the user: "0" on both the zitadel and the login on compose
did create a user ... didnt work
??? how is the compose setup for zitadel so awful
cant do there is no user defined in the zitadel section
should i create one
Yes try adding one
oh my god after 2 hours into this awful compose file it finally works
why in gods holy name is this needed and or not default
(doesnt show the login page like in docs that describe it)
oh my god... im gonna try keycloak now
Yeah the defaults is sucks
I got the login working, just make sure you do https and do a reverse proxy
the most frustrating thing is that zitadel is a good project but if the docs are useless its not
I hope keycloak is as light as this, my hardware is limited so I try a bit hard to get this working
Yeah the docs is bad, I barely understand what to do, maybe I'm just too dumb lol
yeah you are not, whoever wrote the docs (and the composefile) is barely on the 2 digit iq i think
Lol
i dont want to be mean BECAUSE its a competent project but the docs ... oh my god why
yeah, it's the docs that's too bad, once you get it working, it's good
maybe I can share my config & setup here if maybe someone needs it in the future
Here's my working compose file
Replace yourdomain with your own domain
Setup reverse proxy with virtual directory / path prefix / whatever that's called like this:
- Main url to port 8080
- /ui/v2/login/* to 3000
I'm using zoraxy btw, you can use any reverse proxy like nginx, caddy, whatever

keycloak doesnt work with caddy that well :/
Yeah..I can agree
It’s compose that never works
Some guy managed to get it working with CF tunnel
And yet the docs Dont have it
Only gh issues
Authentik is good
It’s easiest for me
I deployed by dokploy (because I have to manage 7 applications so yeah)
and it works
I can share you my compose.yaml if u are interested
true i use Authentik now, seriously just works ❤️ thans
Yw