ByteBite Docs
Infrastructure

Dokploy

Dokploy project configuration, deployment flow, and responsibility split.

Dokploy

Dokploy manages Git-based deployments, environment variables, domain routing, and managed PostgreSQL on BYTEBITE-APP-01.

Verified: 2026-09-08

What Dokploy owns

ResponsibilityOwner
Git checkout and build triggersDokploy
Environment variable injectionDokploy
Managed PostgreSQL serviceDokploy
Explicit domain → service routing (Traefik labels via UI)Dokploy
dokploy-network attachment for domain-enabled servicesDokploy
Preview Compose generationDokploy
Application containers from compose.deploy.ymlDokploy (build + run)

What Dokploy does not own

ComponentManaged elsewhere
Traefik container (dokploy-traefik)Dokploy platform (host-level config)
Wildcard tenant routingcompose.deploy.yml Traefik labels
DNS-01 wildcard TLS wiringHost filesystem + Traefik static config
Cloudflare DNS recordsCloudflare dashboard
Mail serverBYTEBITE-MAIL-01 (separate VM)

Project configuration

SettingValue
Dokploy versiondokploy/dokploy:v0.30.5
ProjectByteBite
Environmentstaging
Compose applicationByteBite Staging
App name / prefix (observed)bytebite-staging
Generated runtime project (example)bytebite-staging-oc5ach
RepositoryByteBite
Branchmain
Compose pathcompose.deploy.yml
GitHub connectionGitHub-ByteBiteCo
TriggerOn Push
SubmodulesOff
Watch pathsEmpty

Generated suffixes (oc5ach, etc.) are Dokploy-generated and not stable. Do not hardcode them in documentation or automation.

Checkout path

Dokploy uses a generated checkout directory, for example:

/etc/dokploy/compose/bytebite-staging-oc5ach/code/

The suffix changes if the project is recreated.

Preview Compose vs repository

Dokploy's Preview Compose may contain Traefik labels and network attachments not literally present in the repository's compose.deploy.yml. Dokploy injects:

  • Traefik labels for domains configured through the UI
  • dokploy-network for services with UI-managed domains

The repository file adds manual wildcard HostRegexp labels on storefront and api. Both sources combine at runtime.

Explicit staging domains (Dokploy UI)

DomainServicePort
staging.getbytebite.costorefront3000
luigi.staging.getbytebite.costorefront3000
mario.staging.getbytebite.costorefront3000
dashboard.staging.getbytebite.codashboard8080
api.staging.getbytebite.coapi3001
docs.staging.getbytebite.codocs3002
dokploy.getbytebite.coDokploy

Same-origin /api routes on explicit hosts (StripPrefix /api):

HostPathTarget
luigi.staging.getbytebite.co/api/*api:3001
mario.staging.getbytebite.co/api/*api:3001
dashboard.staging.getbytebite.co/api/*api:3001

Wildcard domains — why not Dokploy UI

Dokploy's domain UI rejected *.staging.getbytebite.co. Wildcard tenant routing is implemented manually through Traefik labels in compose.deploy.yml. This is a deliberate architecture decision.

See Traefik for wildcard router details.

PostgreSQL service

SettingValue
Imagepostgres:18
Display name (observed)bytebite-staging-postgres
Generated hostname (example)bytebite-staging-postgres-vmg94p
Databasebytebite
Userbytebite
Port5432 (internal only)

DATABASE_URL is set in Dokploy and passed to the api service. Never document the password or full credential-bearing URL.

Upgrade considerations

Dokploy upgrades may recreate the dokploy-traefik container. Custom Traefik wiring for DNS-01 wildcard TLS (secret mount, CF_DNS_API_TOKEN_FILE, letsencrypt-cloudflare resolver) lives outside normal Compose deployment and may be lost on recreate.

See Operations and Disaster recovery.

On this page