Skip to content

Naming conventions

This is the canonical naming policy for new DoWEB repositories and deployments. Existing names remain valid unless they are changed as part of planned work.

Product identifiers

Use the same product identifier in GitHub and Dokploy. Everything must be lowercase, whitespace must be avoided, and words must be separated with hyphens (-) where appropriate.

Type Pattern Example
Customer products cus-<customer-slug>-<project-slug> cus-acme-crm
Internal projects int-<project-slug> int-wordpress
External or shared services ext-<service-slug> ext-mailing-service

For a new product, this identifier is used as the GitHub repository name and the Dokploy Project name. A component within the product has a short, role-based name such as web, api, worker, postgres, or redis.

For example, the product cus-acme-crm may contain Dokploy applications called web, api, and worker. Do not create a second Dokploy project for each component.

Customer slugs

Choose a customer slug that is easy to find and recognise.

  • A single-word customer name is normally used directly.
  • For a multi-word customer name, combine the words: ATC Footwear becomes atcfootwear.
  • Do not use obscure abbreviations: IRS Pierre Fastlane should be irspierrefastlane, not irspf.
  • If a name is very long, a recognisable first part is acceptable: IRS Pierre Fastlane may become irs.
  • A country suffix may be shortened where that remains intuitive: Jordvarme Danmark may become jordvarmedk.
  • Customer slugs must never contain hyphens.

Only <project-slug> and <service-slug> use hyphens, for example email-service and search-engine.

Technical names

Item Convention Example
GitHub repository Product identifier cus-acme-crm
Monorepo application directory Short lowercase kebab-case role apps/customer-portal
Shared package directory Lowercase kebab-case noun packages/api-client
Dockerfile Role-specific only when needed apps/api/Dockerfile
Environment variable Uppercase snake case DATABASE_URL
Branch <type>/<short-description> feat/customer-import
Commit Conventional Commit format feat(api): add customer import

Do not encode credentials, server IP addresses, implementation technologies, or dates in names. Environments are handled by Dokploy configuration, not by creating a separate copy of the repository.