Skip to content

First Deployment

  • Auberge installed (cargo install auberge)
  • A VPS with root access and an SSH key
Terminal window
auberge host add my-vps 203.0.113.10
Terminal window
auberge ssh keygen --host my-vps

Key is written to ~/.ssh/identities/my-vps/root.

Terminal window
auberge config init --output "$(auberge config path)"
auberge config set admin_user_name yourname
auberge config set admin_user_email you@example.com
auberge config set ssh_port 22022
Terminal window
auberge ansible bootstrap my-vps --ip 203.0.113.10

Bootstrap names the server after your hosts.toml entry (my-vps), creates an admin user, disables root SSH login, and changes the SSH port.

Terminal window
auberge config set domain example.com
auberge config set cloudflare_dns_api_token your-token
auberge config set baikal_admin_password your-password
auberge config set gokapi_admin_user admin
auberge config set gokapi_admin_password your-password
Terminal window
auberge deploy --all --host my-vps

Runs hardening, infrastructure (Caddy, DNS), and all applications. Bootstrap is excluded — it was run in Step 4.

Terminal window
auberge dns status

To manually re-sync records: auberge dns set-all --host my-vps

Terminal window
ssh user@my-vps 'systemctl status caddy php*-fpm freshrss'
Terminal window
auberge backup create --host my-vps
Symptom Fix
SSH refused after bootstrap Allow custom port in VPS provider firewall
Services not starting ssh user@my-vps 'journalctl -u php*-fpm -n 50'
DNS records missing Verify token has Zone:DNS:Edit and Zone:Zone:Read