3.2 KiB
Dokploy First-Time Walkthrough
This is a first-use setup guide for Dokploy in your environment.
0) Important Port Constraint
Dokploy installation expects ports 80, 443, and 3000 available on the host where Dokploy is installed.
If your Nginx Proxy Manager already uses 80/443 on that same machine, install Dokploy on a separate VM/host (recommended).
1) Install Dokploy (Operator Step)
On the target Dokploy server (Linux, root):
curl -sSL https://dokploy.com/install.sh | sh
Then open:
http://<dokploy-host>:3000
Create your admin account.
2) Create the Web App in Dokploy (Image-Based)
Create an Application service for Fiddy Web and configure:
- Source type: Docker image
- Image:
git.nicosaya.com/nalalangan/fiddy/web:main - Internal app port:
3000 - Health endpoint:
/api/health/ready
Set environment variables:
DATABASE_URLDATABASE_SSLALLOWED_DB_NAMESSESSION_COOKIE_NAMESESSION_TTL_DAYSDEBUG_API=0
3) Create the Scheduler App in Dokploy (Image-Based)
Create a second Application service for Scheduler and configure:
- Source type: Docker image
- Image:
git.nicosaya.com/nalalangan/fiddy/scheduler:main - No public port required
Set environment variables:
DATABASE_URLDATABASE_SSLALLOWED_DB_NAMESSCHEDULER_POLL_MS(optional, default60000)SCHEDULER_BATCH_SIZE(optional, default100)
4) Configure Registry Credentials in Dokploy
Add your registry credentials in Dokploy registry settings for:
- registry host:
git.nicosaya.com - username/password (or token)
Use the registry in the application configuration so image pulls succeed.
5) Configure Auto Deploy Hooks
In both Dokploy applications (Web + Scheduler), enable Auto Deploy and copy each Webhook URL.
Set this value in Gitea repo secrets as:
DOKPLOY_DEPLOY_HOOKDOKPLOY_SCHEDULER_DEPLOY_HOOK
Set health URL secret too:
DOKPLOY_HEALTHCHECK_URL=https://<public-domain>/api/health/ready
6) Wire Gitea Secrets
In Gitea repository secrets, add:
REGISTRY_USERREGISTRY_PASSDOKPLOY_DEPLOY_HOOKDOKPLOY_SCHEDULER_DEPLOY_HOOKDOKPLOY_HEALTHCHECK_URL
The workflow in .gitea/workflows/deploy-dokploy.yml will:
- build + push web and scheduler images
- call Dokploy deploy hook(s)
- wait for web ready health via
scripts/wait-for-health.sh
7) First Deployment Test
- Push
main. - Confirm Gitea workflow succeeds.
- In Dokploy, verify both Web and Scheduler show successful pull/start logs.
- Run smoke check:
scripts/smoke-public-launch.sh https://<domain>
Expected:
200for/api/health/liveand/api/health/readyX-Request-Idpresentrequest_idpresent in response JSON
8) Rollback Test (Required Before Public Launch)
In Dokploy, trigger rollback for Web and Scheduler to previous successful releases, then run smoke check again.
Record outcome and reason in your runbook/checklist.
9) Troubleshooting Fast Path
- Hook fires but no deploy:
- verify Auto Deploy enabled in Dokploy app
- verify hook URL in Gitea secret
- Image pull fails:
- verify Dokploy registry credentials
- verify image path/tag exists
- Health gate fails:
- check app logs in Dokploy
- verify DB connectivity/env vars
- verify NPM route and TLS