Add a server manually
Use the IP address or domain server flow when you already have a Linux server. Coolify connects to it through SSH and prepares it to run applications, databases, and services.
To purchase and create a server from the Coolify dashboard instead, follow Provision a Cloud Server.
What you need
Before you start, make sure you have:
- a Linux server with an IP address or hostname that Coolify can reach
- console or password access to the server
- an open SSH port, usually port
22 - access to the Coolify dashboard
This guide uses the root account. To connect with another account, complete the Non-root User setup first.
If the server does not have a public IP address, or you do not want to expose SSH publicly, connect it through Server SSH Access via Cloudflare Tunnels.
Server validation can install Docker and restart the Docker service. Existing containers may be temporarily unavailable.
Create and authorize an SSH key
Coolify must have a private key whose public key is authorized for the server account.
Create the key in Coolify
- Open Keys & Tokens > Private Keys.
- Open New private key and select Generate ED25519.
- Select the generated key's Edit icon.
- Give it a recognizable name and select Save changes.
- Copy the complete Public key.
Do not add a passphrase. Coolify must use the private key without an interactive prompt.
Authorize the public key on the server
Connect to the server:
ssh root@<server-ip>If SSH uses a port other than 22, run:
ssh -p <ssh-port> root@<server-ip>Create the SSH directory and open the authorized-keys file:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keysPaste the complete public key on a new line, save the file, then run:
chmod 600 ~/.ssh/authorized_keysYou can also generate or import a private key from the New key menu beside Private key in the server form. The matching public key must still be present in the server user's ~/.ssh/authorized_keys file before validation.
Connect the server
Open the server form
- Select Servers in the Coolify sidebar.
- Select New server.
- Select IP address or domain.
Enter the connection details
| Field | What to enter |
|---|---|
| Name | A name you will recognize, such as production-server. |
| Description | Optional information about the server's purpose. |
| IP address or domain | A reachable IP address or hostname. Do not include http:// or https://. |
| Port | The SSH port, usually 22. |
| User | Enter root for this guide. |
| Private key | Select the key whose public key you authorized on the server. |
| Server role | Select Deployments and builds, Deployments only, or Builds only according to the server's purpose. |
Expand Advanced settings to access User, Port, and Server role. Choose Deployments and builds for a server that builds and runs resources, or Deployments only to keep builds on other servers. Choose Builds only for a dedicated build server. See Server roles.
Select Continue. Coolify creates the server record and opens its General page.
Validate the server
Select Validate connection to open the validation panel. After a successful validation, the action is Revalidate connection.
During validation, Coolify:
- tests the SSH connection
- checks the operating system and required tools
- installs or verifies Docker Engine and Docker Compose
- records server information
- starts the Coolify proxy
The process can take several minutes on a new server.
Confirm the server is ready
Wait until the General page reports that the server is reachable and validated. The server can then be selected as a deployment destination.
If validation reports an SSH error:
Set a wildcard domain
After validation, you can set Wildcard Domain under General.
For example, https://example.com lets Coolify suggest a domain such as https://<application-id>.example.com for a new resource. Create a DNS record for *.example.com that points to this server before using the generated domains.
The setting does not change existing resource domains, update DNS, or change how Coolify connects to the server.
Oracle Cloud (free ARM) notes
Oracle Cloud free ARM servers need a few extra steps before Coolify can use them, whether as the Coolify host or as a remote server.
Use the root user. Oracle images disable root login by default. To enable it:
- Switch to root:
sudo su - - In
/etc/ssh/sshd_config, setPermitRootLogintowithout-password. - Restart SSH:
service sshd restart - Add the public key of the SSH key configured in Coolify to
/root/.ssh/authorized_keys.
Or use a non-root user. A non-root user works with passwordless sudo (experimental). Add the Coolify SSH key to the user's ~/.ssh/authorized_keys, then follow Non-root User.
Open the firewall. Oracle ARM servers enable a firewall by default. If you self-host Coolify on the server, open the required ports — see Firewall.
