Skip to content

Requirements

Before installing Copula self-hosted, make sure the target server meets the requirements below. The provisioning wizard verifies most of them during its pre-flight step, but checking them upfront saves a failed run.

Server

  • A Linux host reachable over SSH. The installer connects to the server over SSH (default port 22) and deploys the stack with Docker.
  • An SSH user with passwordless sudo. During provisioning, files are staged into the SSH user's home directory over SFTP and then installed with sudo -n install. The deployment directory is /root/copula, which is not writable without sudo — so passwordless sudo is mandatory, not optional.
  • Docker. The wizard installs Docker automatically (the install_docker deploy step), but the pre-flight check inspects the host before the deploy starts.

Network

  • Ports 80 and 443 must be free and reachable from the internet. In a provisioned installation, Caddy is the only service that publishes these ports. Let's Encrypt issues the TLS certificate via the HTTP-01 challenge, which requires port 80 to be reachable and the domain's DNS to already resolve to the server.

Domain

A domain is mandatory. You have two options:

  1. Custom FQDN — your own domain with an A record pointing at the server's public IP. The record must exist before provisioning, otherwise certificate issuance fails.
  2. Auto-generated subdomain — the cabinet can assign an inst-<slug>.copul4.com subdomain and manage its Cloudflare DNS record for you.

Next step

Get a license →