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.

Use a fresh server when possible

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

  1. Open Keys & Tokens > Private Keys.
  2. Open New private key and select Generate ED25519.
  3. Select the generated key's Edit icon.
  4. Give it a recognizable name and select Save changes.
  5. 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_keys

Paste the complete public key on a new line, save the file, then run:

chmod 600 ~/.ssh/authorized_keys

You 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

  1. Select Servers in the Coolify sidebar.
  2. Select New server.
  3. Select IP address or domain.

Enter the connection details

FieldWhat to enter
NameA name you will recognize, such as production-server.
DescriptionOptional information about the server's purpose.
IP address or domainA reachable IP address or hostname. Do not include http:// or https://.
PortThe SSH port, usually 22.
UserEnter root for this guide.
Private keySelect the key whose public key you authorized on the server.
Server roleSelect 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:

  1. tests the SSH connection
  2. checks the operating system and required tools
  3. installs or verifies Docker Engine and Docker Compose
  4. records server information
  5. 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:

  • confirm the IP address or domain, port, and user
  • confirm the selected private key matches the public key in the user's ~/.ssh/authorized_keys file
  • confirm the SSH port is open in the firewall
  • follow OpenSSH to check the SSH service

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:

  1. Switch to root: sudo su -
  2. In /etc/ssh/sshd_config, set PermitRootLogin to without-password.
  3. Restart SSH: service sshd restart
  4. 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.

On this page