Skip to content

Platform Overview

This page covers the core concepts in Clank. Each section links to a detailed reference page for deeper information.

A project is a logical group of related services. A web application with a frontend, an API, and a database would live in one project. Projects are deployed to a single server and share a private Docker network, so services within a project can reach each other by name (e.g., http://api:3000 from the frontend container).

Learn more about projects and services

A service is a single deployable unit inside a project. There are three types:

  • Git service — built from a GitHub repository. Clank clones the repo, generates or uses a Dockerfile, builds an image, and deploys the container.
  • Docker image service — pulled from a registry (Docker Hub, GHCR, or a private registry) and deployed directly. No build step.
  • Template service — created from a one-click template with pre-configured settings, companion databases, and volumes.

Each service has its own deployment history, environment variables, volumes, and endpoint configuration.

Learn more about projects and services

A deployment is an immutable snapshot of a service at a point in time. Each deploy creates a new deployment record with its own container, build logs, and status. Deployments progress through stages: Building (for git services), Deploying, Health Checking, and finally Active or Failed. Previous deployments are retained so you can roll back to any earlier version with one click.

Learn more about deployments

A server is a machine running the Clank agent. The agent is a lightweight Go binary that connects outbound to the Clank control plane over gRPC. It manages Docker containers, configures the Traefik reverse proxy, reports resource usage (CPU, memory, disk), and handles agent updates. You can connect any Linux server, macOS machine, or WSL instance — the agent installer handles dependencies automatically.

Learn more about servers and the agent

An endpoint defines how a service is accessed from outside its container. Clank supports five access modes:

ModeDescription
Public DirectDNS points to your server’s public IP. Traefik terminates TLS with a Let’s Encrypt certificate.
Cloudflare TunnelTraffic routes through a Cloudflare Tunnel. No public IP needed.
Tailscale HTTPSPrivate access over your Tailscale network with HTTPS.
LAN-onlyAccessible only on the local network. No TLS.
BYO ProxyYou provide your own reverse proxy (nginx, Caddy, etc.) in front of the container.

Each service can have one endpoint configured. The access mode determines how DNS, TLS, and routing are set up.

Learn more about endpoint access modes

Volumes provide persistent storage for services. When a service is redeployed, the old container is replaced with a new one — but volumes survive across deployments. Clank uses named Docker volumes (e.g., clank-myproject-postgres-data) mounted at the paths you specify. Template services come with volumes pre-configured for their data directories.

Learn more about persistent volumes

Environment variables configure your services at runtime. Set database URLs, API keys, feature flags, and other configuration without modifying your code. Variables marked as secret are encrypted at rest in the database and masked in the dashboard UI. Each service has its own set of variables, and changes take effect on the next deployment.

Learn more about environment variables

Teams let you collaborate with other users on your projects. Each team member has a role that controls what they can do:

RolePermissions
OwnerFull access. Manage billing, delete the team, transfer ownership.
AdminManage servers, projects, services, and team members. Cannot delete the team.
DeveloperCreate and deploy services. Cannot manage servers or team settings.
ViewerRead-only access to projects, services, and deployment logs.

Learn more about teams and permissions