Connecting your first server
Register a reachable Linux server, verify the SSH connection and provision the toolchain used by Deploy Bridge. Connection secrets are encrypted and the first observed host key is pinned.
Procedure
Open Servers and add a server
Select Add Server, then enter a label, host or IP address, SSH user and SSH port.
Choose an authentication method
Select SSH Key and paste the private key, adding its passphrase when required, or select Password and enter the SSH password.
Save the server record
Submit the form and open the newly listed server. Its initial status is unverified until a connection check succeeds.
Test the SSH connection
Select Test Connection and review the reported distribution, Docker, Compose and Nginx state or the explicit connection error.
Provision the Linux toolchain
If the server is not provisioned, select Provision Docker and follow the tracked run until Docker, Compose and Nginx are verified.
A server record tells Deploy Bridge where a deployment may run and how to establish SSH. The current console registers Linux targets with a descriptive label, host or IP address, SSH port and SSH user. Authentication can use a password or a private key, with an optional passphrase for encrypted keys. The API refuses a password record without a password and a key record without a private key. Credentials and passphrases are encrypted before they are stored; the list and detail views show the connection address, not the secret used to authenticate.
Prepare access before registration
The SSH endpoint must be reachable from Deploy Bridge and the supplied account must have enough authority for the requested operations. Provisioning refreshes the operating-system package index, installs and enables Docker and Nginx, creates directories under /etc for Nginx and certificate material, and may adjust HTTP and HTTPS rules through ufw or firewalld. Deployments create directories beneath /opt/deploy-bridge and run Docker commands. The console defaults the SSH user to root, but the implementation records whatever user is entered. A restricted account that cannot perform these operations will produce a tracked command failure rather than being elevated by the product.
Register the exact endpoint
From Servers, select Add Server and enter the address used by SSH rather than an application hostname that may later move. Port 22 is the default, but another numeric SSH port can be saved. For key authentication, paste the private key itself, not its public counterpart; add the key passphrase only where one exists. For password authentication, enter the SSH account password. Saving creates an unverified record. It does not run package installation and does not infer that the machine is safe to alter merely because the credentials were accepted by the form.
Verify identity and capability
Test Connection opens a short-lived SSH session and records the first host fingerprint presented by the server. Later connections expect that fingerprint; a different host key aborts before credentials are sent. The check reads the operating-system description, kernel, processor count, memory, root-filesystem usage, uptime and versions of Docker, Compose and Nginx. It also lists containers known to Docker. A reachable server without the complete toolchain is marked online, while a previously provisioned server with Docker and Nginx is ready. Failed checks mark it offline and retain a human-readable SSH error.
Provision through a tracked run
Automatic provisioning currently accepts Linux servers only. Selecting Provision Docker creates a deployment-style run whose steps connect, inspect the distribution, refresh packages, install Docker Engine and the Compose plugin, install and enable Nginx, handle a recognised firewall and verify the toolchain. Debian-family machines use apt; Fedora, RHEL, CentOS, Rocky and Alma variants select dnf or yum where detected. Existing Docker or Nginx installations are inspected rather than deliberately removed. If neither ufw nor firewalld is found, the runner leaves network rules untouched and records that outcome.
Read the result rather than the button state
Provisioning runs appear with ordered steps and logs. Success marks the server provisioned and ready after Docker, Compose, Nginx and their services pass verification. A failed run records the failing step, skips later steps and sets the server status to error with the reported cause. Return to the server detail page and run Test Connection after correcting network policy, credentials or host configuration. Editing the host, port, user or credential deliberately resets the server to unverified and clears its pinned host key, because those changes may identify a different machine.
Treat removal as an inventory operation
Removing a server deletes its Deploy Bridge record. The console warns that deployments targeting it may fail, but removal is not presented as decommissioning the machine and does not describe a remote cleanup. Containers and files on the host require separate operational decisions. Deletion remains available when a server is over a downgraded plan ceiling, allowing the team to return within its allowance. Before removal, confirm which projects and database volumes use the machine, because the product record is the link between later deployments and those server-local resources.
Common questions
Can a server use a non-standard SSH port?
Yes. The server form accepts an SSH port and defaults it to 22. Checks and deployments use the saved port.
What does Test Connection inspect?
It reads basic host telemetry, installed Docker, Compose and Nginx versions, and the Docker container list. It also records reachability, latency and an error when the connection fails.
Why did a server become unverified after editing it?
Changing the host, SSH port, user or credential clears the previous verification and pinned host fingerprint. Run Test Connection again to establish the identity and current state of the endpoint.
Deploying something unusual?
If your stack does not fit what is documented here, describe it. The platform handles more than the defaults, and where it does not, we would like to know.
