Guide
Self-host Zeqqat on Dokploy.
Zeqqat is one app and a Postgres database, shipped as a Docker image. On Dokploy it’s a single Docker Compose service. It applies its own database migrations when it starts.
1. Create the compose service
- Create a project called zeqqat, and in it a Docker Compose service.
- Use the docker-compose.yml from the Zeqqat repository (github.com/zeqqat/zeqqat), either by pointing the service at the repository or by pasting the file.
2. Set the environment and domain
- Set the environment variables below on the compose service.
- Add your domain (for example zeqqat.example.com) to the zeqqat service on port 3000 with HTTPS on. Its DNS must point at this Dokploy server.
- Deploy, then open the domain and sign in.
Environment
ZEQQAT_PUBLIC_URL=https://zeqqat.example.com POSTGRES_PASSWORD=<openssl rand -hex 24> BETTER_AUTH_SECRET=<openssl rand -base64 32> ZEQQAT_ENCRYPTION_KEY=<openssl rand -base64 32> ENABLED_AUTH_PROVIDERS=github GITHUB_CLIENT_ID=<your GitHub OAuth app> GITHUB_CLIENT_SECRET=<your GitHub OAuth app secret>
Generate the secrets once and keep them. A new ZEQQAT_ENCRYPTION_KEY makes stored Dokploy keys unreadable. In your GitHub OAuth app, set the callback URL to https://zeqqat.example.com/api/auth/callback/github. Google sign-in works the same way with GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.
3. Connect your agents
- Sign in to your new Zeqqat and connect your Dokploy there.
- Copy the connection URL it gives you into each agent, in place of any URL it used before, and sign in again.
- Optionally, remove your Dokploy keys from the Zeqqat you used before.