DinD HostingManual
Overview/Manual/Build & deploy
CHAPTER 03

Projects & sites

A project is the unit you deploy. It bundles one web app with its databases, domains, variables and backups — and gives all of them a stable name.

Creating a project#

On the Projects page press + new project and fill in three fields.

hosting.example.com/
new project
The new-project dialog. (1) the slug becomes the first label of the site name, (2) the base domain is the suffix. Display name defaults to the slug.
bash
curl -fsS -X POST "$BASE/api/v1/projects" \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"slug":"blog","display_name":"Blog","base_domain":"example.com"}'

Answers 201 with the project (including its numeric id, status and domains). A duplicate slug is 409; an invalid slug or domain is 422.

create_project(slug="blog", display_name="Blog", base_domain="example.com")

The reply includes the automatic domain; a best-effort pre-check starts in the background.

hosting.example.com/
Projects
The Projects page. (1) create a project, (2) the automatic domain, (3) delete removes the project and everything attached to it.
Field Rule
slug 2–40 characters, a-z, 0-9 and -, starting with a letter or digit. Unique per user — two users can both have blog.
display name Free text up to 120 characters; shown in the console.
base domain A real domain with a top-level domain (example.com, not localhost). It is the suffix of every automatic site name.

How site names are built#

Every project gets an automatic domain the moment it is created:

<slug>.<alias>.<base_domain>          blog.alex.example.com

The alias is yours (set by the admin when your account was created), so two users can use the same slug under the same base domain without clashing. If the name is already taken — a hostname belongs to exactly one project platform-wide — the creation fails with 409 … pick another slug or base domain and nothing is left behind.

DNS is outside the project

The name only works on the Internet when DNS points it at the platform's ingress. Ask your administrator how automatic names are published — typically one wildcard record for the base domain. For your own names see Domains & TLS.

One project, one app#

In this version a project owns exactly one web app. Need a second service? Create a second project — projects are cheap, share your user daemon and can use the same database or S3 bucket credentials.

Belongs to a project Shared by all your projects
the app and its deployments · project variables · databases · domains · project backups your app daemon · your S3 bucket <alias>-files · your API tokens

Deleting a project#

The red delete button asks for confirmation and then tears down, in this order:

  1. every database of the project (container and data volume);
  2. every backup of the project, including its database dumps;
  3. the app container;
  4. the project's routes and, in dev TLS mode, its certificates;
  5. the app's port reservation, the project variables, and finally the deployment, app and domain rows.

Deletion is final

Backups are deleted together with the project, so they cannot bring it back. Dump your databases and download what you need first — see Backups & restore.