Skip to content

Servers

A Server is a registered machine that Tragwerk deploys to. You add the connection details and credentials once; Tragwerk then provisions the machine and runs your applications on it.

Register a server

In the UI, create a new server and provide:

  • A name to identify the server.
  • Connection details — the host (IP or hostname) and SSH port.
  • A credential — the SSH key, login user, and privilege level used to authenticate and run commands.

Manage reusable SSH credentials under Registries & Credentials, then select one when registering the server.

Once registered, run Server Setup to provision the Docker environment before deploying.

How credentials are used

Credentials authenticate Tragwerk's SSH connection to the server. They are used for:

  • The automated server setup job.
  • Every deploy and management action (build, start/stop containers, blue/green switches, cleanup).

A separate kind of credential — a registry — lets the server pull private container images during builds and deploys. See Registries & Credentials.

TIP

Reuse a single credential across servers that share an SSH key. Prefer a dedicated non-root user in sudo mode over a root login where your setup allows it.

Edit and delete

  • Edit a server to update its host, port, or selected credential — for example after rotating an SSH key or moving the server.
  • Delete a server to remove it from Tragwerk. Removing a server detaches it from any projects/environments that targeted it; remove or repoint those deployments first.

Relationship to projects and environments

A server is the deploy target for your environments. When an environment deploys, Tragwerk connects to the assigned server over SSH, generates the per-application Docker configuration, and brings up the containers there. Multiple applications and environments can share the same server — each is routed by its own hostname through Traefik.

Tragwerk — self-hosted PHP application hosting.