Devpilot
Servers

Connecting an Existing Server

Add a Linux server you already own to Devpilot by providing SSH credentials. Works with any hosting provider.

Connecting an Existing Server

If you already have a Linux server running — a VPS from any hosting provider, a bare-metal dedicated server, or a virtual machine anywhere on the internet — you can connect it to Devpilot and manage it alongside your provisioned servers. This is the right path for servers hosted on providers that aren't in Devpilot's direct provisioning list (for example Hetzner, Linode, Namecheap, or an in-house data center).

Prerequisites

Before connecting a server, make sure the following are true:

  • Reachable over SSH. The server must be reachable from the internet on its SSH port (default 22). Devpilot initiates the connection — the server does not call out.
  • A user with sudo access. You need a username and either a password or a private key for an account with root or passwordless sudo privileges.
  • A supported Linux OS. Devpilot's agent supports common distributions such as Ubuntu, Debian, CentOS, AlmaLinux, and Rocky Linux.

Devpilot needs elevated privileges to install its management agent and to run some operations (software installs, firewall changes, backups). Use root directly, or a sudoer configured with NOPASSWD.

Connection Flow

Open Add Server

In your workspace, open Servers, click Add Server, and choose Connect Existing Server.

Enter the server details

Provide:

  • Host — The server's public IP address or hostname, for example 203.0.113.45 or server.example.com.
  • Port — The SSH port, 22 by default. If your SSH daemon listens on a custom port, enter it here.
  • Username — The SSH user Devpilot should log in as. Common values are root, ubuntu, debian, or a dedicated sudoer like deploy.
  • Provider (optional) — Tag the server with the hosting provider (for example Digital Ocean, Namecheap, Others) so you can filter it in the UI. This is a label — it does not give Devpilot API access to that provider.
  • Server name — A descriptive label unique within the workspace.

Choose an authentication method

Devpilot supports three authentication modes:

  • Password — Enter the SSH password for the user. Convenient for bringing a server online quickly.
  • Uploaded keys — Paste or upload your own SSH private key. OpenSSH-format RSA and ED25519 keys are supported. If the key has a passphrase, provide it so Devpilot can decrypt the key during connection.
  • Generated keys — Let Devpilot generate a fresh SSH key pair specifically for this server. Devpilot shows you the public key and you add it to ~/.ssh/authorized_keys on the server once.

Password authentication is easier to set up but more exposed to brute-force attacks. For any production server, prefer uploaded keys or generated keys and then disable password login in sshd_config. See SSH and Connectivity for guidance.

Test the connection

Click Test Connection. Devpilot attempts an SSH login with the credentials you provided and verifies:

  • The host and port are reachable.
  • The credentials are accepted.
  • The user has the required privilege level.
  • The OS is detectable and supported.

If the test fails, Devpilot displays the underlying error so you can correct it. See Troubleshooting for common issues.

Connect and install the agent

Once the test succeeds, confirm the connection. Devpilot then:

  1. Saves the connection details securely in your workspace.
  2. Installs the Devpilot management agent on the server.
  3. Reads the server's hostname, OS, kernel, uptime, CPU, memory, storage, network, and load average to populate the dashboard.
  4. Marks the server as Active with a live connection.

This typically takes 1–3 minutes.

Troubleshooting

If testing or connecting fails, work through these in order.

Connection refused or timed out

  • Firewall — Make sure the server's firewall allows inbound TCP on the SSH port. Check both the OS-level firewall (ufw, firewalld, iptables) and any cloud provider security groups.
  • Port — Verify you entered the right SSH port. Devpilot uses exactly what you type here.
  • Server state — Confirm the server is powered on and the SSH daemon is running.

Authentication failed

  • Password — Passwords are case-sensitive and cannot contain unsupported control characters. Re-check for typos.
  • Key — When using uploaded keys, paste the full private key including the -----BEGIN and -----END lines. PuTTY .ppk format must be converted to OpenSSH format first.
  • Passphrase — If your key is passphrase-protected, make sure the passphrase is correct.
  • Authorized keys — For generated keys, the public key must actually be present in the target user's ~/.ssh/authorized_keys.

Permission denied running sudo

The connection may succeed but privileged operations fail if sudo prompts for a password. Add the user to sudoers with NOPASSWD, or connect as root directly.

Unsupported operating system

FreeBSD, macOS, and unrecognized distributions are not supported by the Devpilot agent. Re-deploy on a supported Linux distribution.

What Devpilot Changes on Your Server

When you connect a server, Devpilot:

  • Installs its management agent — A small binary that runs under systemd, reports metrics, and executes tasks dispatched from the dashboard. Agent versions and releases are tracked centrally so Devpilot can upgrade agents over time.
  • Stores an SSH public key in ~/.ssh/authorized_keys when you chose Generated keys (so Devpilot keeps access if you rotate your own key).
  • Reads basic system info — hostname, OS, kernel, disks, network interfaces, load — to populate the dashboard.

Devpilot does not remove your existing software, wipe files, reconfigure services you didn't ask it to touch, or close ports unless you configure a firewall rule yourself. Your running applications keep operating as before.

Provisioned vs Connected — Feature Differences

Once the server is connected, most features work the same way whether it was provisioned or added manually. The key differences:

AspectProvisioned ServerConnected Server
CreationDevpilot creates the cloud instance on your behalf.You provide SSH credentials to a server you already own.
Cost trackingDevpilot shows an estimated monthly cost and can track it against a workspace payment method.Devpilot does not track provider billing.
DeletionDestroy in Devpilot tears down the cloud resources via the provider API.Delete in Devpilot only removes the server from your workspace — the actual machine keeps running.
Cloud volumesAvailable for supported providers via the Storage tab.Only available if the connected server is on a supported provider and you've supplied cloud credentials. Otherwise you see local disk metrics only.