guides
Server Commissioning
How ServOS sets up your servers and what happens during the commissioning process.
Server Commissioning
Commissioning is the process by which ServOS takes a “vanilla” Linux server and prepares it to host your applications. This process uses a lightweight agent that is automatically provisioned via SSH.
What happens during Commissioning?
When you click the Commission button, ServOS performs the following steps in sequence:
- SSH Connection: ServOS establishes a secure SSH connection to the server using the provided IP and Private Key.
- System Audit: ServOS checks the OS version (Ubuntu 22.04+ recommended) and architecture.
- Dependency Installation:
- Installs
docker.ioanddocker-compose-v2. - Installs
wireguardfor the mesh network (falls back to userspacewireguard-goas a systemd unit when the kernel module is missing). - Installs
nixpacks, so repository builds work without a Dockerfile.
- Installs
- Firewall: ServOS does not touch the host firewall. Open SSH (22/tcp), HTTP (80/tcp), HTTPS (443/tcp) and WireGuard (51820/udp) yourself — see Firewall Rules.
- Infrastructure Setup:
- Creates the
servos-infraDocker network. - Deploys the Traefik Ingress Proxy.
- Deploys the Docker Socket Proxy (for secure, restricted access to the Docker API).
- Creates the
- Mesh Networking & Agent:
- Creates a non-privileged system user and group named
servos. - Installs the servos-agent binary and sets up a systemd service.
- Generates WireGuard keys for the server.
- Configures the WireGuard interface (
wg0). - Starts the agent, which pulls the initial
MeshStatevia HTTP.
- Creates a non-privileged system user and group named
- Health Check: ServOS verifies that Docker is responsive and Traefik is reachable.
Troubleshooting Commissioning
Permission Denied (Public Key)
- Cause: The Ed25519 or ECDSA private key provided does not match any authorized keys on the server. RSA and DSA keys are intentionally unsupported.
- Fix: Ensure your public key is in
/root/.ssh/authorized_keys(if using root) or the appropriate user’s folder.
Firewall Lockout
- Cause: You have an external firewall (AWS Security Group, etc.) that is blocking the ports ServOS is trying to use.
- Fix: Ensure ports 22, 80, 443, and 51820 are open in your cloud provider’s console.
Docker Installation Failure
- Cause: Existing package manager locks or broken repositories.
- Fix: Run
apt-get updatemanually on the server to check for errors.
Post-Commissioning
Once a server is commissioned, it is marked as Ready. You can then:
- Link it to one or more Environments (in Advanced Mode).
- Deploy Services or Databases to it.
- View real-time Metrics (CPU, RAM, Disk).
- Access the SSH Terminal directly from the ServOS dashboard.