Put GoRun on your domain
This path is for a new, single-host site. You need Linux root access, Python 3, curl, rootful Docker Engine and Docker Compose v2. You do not need Go or a GitHub container-registry login. The helper uses verified public release downloads. The helper is included in the 0.5.0 release documentation; runtime features depend on the version installed.
Prepare the domain
Point every A record to this server, and every AAAA record to its working IPv6 address. Allow incoming TCP 80 and 443 and keep both ports free. Disable CDN proxying for this direct-host path. If Coolify or another proxy already manages the host, use the existing-proxy guide instead.
Inspect, plan, then deploy
curl -fsSL https://raw.githubusercontent.com/zadstack/gorun/main/deploy/server-setup.py -o gorun-server-setup.py
python3 gorun-server-setup.py --dry-run
sudo python3 gorun-server-setup.pyReview the downloaded script before the root invocation. It asks for the domain, a new absolute installation directory and all public IP addresses. Dry run prints a plan without creating files or credentials. The real run refuses an existing installation directory; it does not change DNS, firewalls or another website.
Finish in your browser
The helper reports success only after HTTPS and public-page, health and admin sign-in checks. It reports your URL and paths; persistent site data is under the chosen installation directory’s data folder. Enter the setup token from the root-private secrets.env directly in the setup browser page, then choose your admin credentials. Keep tokens and passwords out of chat.
Services restart unless explicitly stopped, provided Docker itself starts at boot. Keep deployment secrets and TLS storage private. --resume retries the same pinned deployment; it is not an upgrade. Read the matching helper version’s documentation before retrying. An assistant can carry out these steps only when it has terminal access to that server.