Fresh Install
For a genuinely first-time setup with no old server behind it — complete Machine Prep first. Everything below configures state that Migration brings over from an old server anyway (Coolify's database — services, env vars, and domains, so SSL/DNS settings are included — plus the rest of the settings below). Doing these on a server that's about to be restored is wasted effort; they'll be overwritten.
-
Tunnel to the setup wizard rather than opening port 8000 to the world — no infra change, nothing exposed publicly, gone the moment the SSH session closes:
pass-cli ssh-agent daemon start --vault-name Techexport SSH_AUTH_SOCK=~/.ssh/proton-pass-agent.sockssh -L 8000:localhost:8000 debian@<server-ip>Then browse
http://localhost:8000and create an admin account. -
Add DNS records at Infomaniak pointing
dashboard.<domain>to the server:- A record:
<ipv4> - AAAA record:
<ipv6>
For a migration instead, DNS isn't added fresh — see DNS → Migrating a subdomain for real for the OpenTofu-managed cutover.
- A record:
-
Configure
https://dashboard.<domain>in Coolify settings and let it issue an SSL cert via Let's Encrypt. If the cert fails, re-save the domain in settings or restart the proxy to retry:sudo docker restart coolify-proxy -
Enable server metrics in Servers → localhost → Metrics — toggle it on to get CPU, memory and disk stats per container.
-
Enable 2FA on the admin account in Coolify settings.
-
Set up shared SMTP variables at the team level (Team → Shared Variables) so they can be referenced across all services as
{{team.VAR_NAME}}:Variable Value DEFAULT_SMTP_HOSTyour SMTP host DEFAULT_SMTP_PORT587DEFAULT_SMTP_USERNAMEyour SMTP username DEFAULT_SMTP_PASSWORDyour SMTP password DEFAULT_SMTP_FROMyour from address -
Configure transactional email in Settings → Transactional Email:
Field Value Enabled ✓ (must check this box) Host your SMTP host Port 587Encryption STARTTLSUsername your SMTP username Password your SMTP password Test by sending a test email from the Notifications tab in the main interface.