Binding & managing your own servers
The Servers page is the management hub for your own servers: bind servers, activate licenses, watch health status and site counts, and change or unbind servers when needed. This page covers the server itself; the full site-building flow on a bound server is in Build on your own server (SSH + BaoTa).
Prerequisites
Section titled “Prerequisites”- Your own cloud server / VPS, 2 cores or more recommended.
- A mainstream OS: Ubuntu 22.04+/24.04, Debian 12+, or Rocky / AlmaLinux 9+. CentOS 7/8 are EOL and not recommended — old systems fail builds/publishes due to glibc / OpenSSL incompatibilities.
- The BaoTa panel installed (for site directories and domain binding). Build deploys only write the site root and leave your nginx vhost alone; only SSL issuance / renewal writes the certificate via the panel and reloads nginx, and onboarding writes an SSH keep-alive snippet — all rollback-safe, self-contained snippets.
- SSH login details: host IP, SSH port, username, and a password or an OpenSSH private key.
- The SSH port allowed through the server’s firewall / security group.
Adding a server
Section titled “Adding a server”-
Open the Servers page and click “Add server”
Section titled “Open the Servers page and click “Add server””Fill in the basic info: name (an identifier for the list, e.g. us-west-1), host (IP or domain), port, and SSH user.
-
Fill in the SSH connection
Section titled “Fill in the SSH connection”Pick one auth method: password, or SSH private key (paste the full
-----BEGIN OPENSSH PRIVATE KEY-----…-----END-----block). Credentials are hidden after save; when editing later, leaving them blank keeps the current values. -
Click “Test connection”
Section titled “Click “Test connection””A passing test shows the server probe result: OS, kernel, CPU, memory, root disk, control panel, server IPs, and whether the GOCO build program is installed. Testing is required before submitting — you can’t add the server if it fails (unless you tick “I understand the risk, save anyway”).
If the probe says the configured host isn’t among the detected IPs, it’s likely a typo or the server’s IP changed — you can switch to the detected external egress IP in one click.
-
Click “Add” and activate a license
Section titled “Click “Add” and activate a license”After adding, a “license setup” dialog offers three options:
- Free trial: auto-activates a free license, drawing on your account-wide pool of 10 free build credits (shared by SSH and managed-hosting Starter — no longer a fresh 10 per server); once the pool is used up, buy a full license to keep building.
- Buy a license online: pay in USDT; it binds to this server automatically once received.
- I have a license code: redeem a purchased or received code; the 366-day validity starts at binding.
Every server needs a valid license before it can build sites and publish.
Health monitoring
Section titled “Health monitoring”Each row in the server list carries three different signals:
- Status: Active / Offline / Error / Verifying / Maintenance. “Offline” means GOCO can’t SSH into the server — not that the host is down; “Auth failed” means the SSH password / key was rejected, so update the credentials instead of chasing an outage.
- Health check: the result of your configured server monitoring (Reachable / Warning / Unreachable / Not monitored). Checks include “primary IP reachability” and “SSH port alive”, plus an optional “other server IPs reachability”. The muted line below is the SSH-heartbeat probe time (roughly every 30 min) — a different signal.
- Live state: servers with the goco agent installed report every 10 seconds (Online / Degraded / Offline / Awaiting beat), refreshed in near real time.
Click “Not monitored” on a row to enable monitoring; the row’s ⋯ menu has “Recheck”, and the detail page has “Detect now”. Monitoring is read-only — it never changes your server’s config. Alerts and the notification center are covered in Site & server monitoring.
Capacity and site counts
Section titled “Capacity and site counts”- The Sites column shows how many sites are built on each server.
- Free license: doesn’t consume the server’s capacity cap, but is limited by your account-wide pool of 10 free build credits (shared by SSH and managed-hosting Starter); once the pool is used up, buy a full license to keep building (existing sites keep running).
- Full (paid) license: lifts the credit limit; valid for 366 days and renewable before expiry.
- Per server you can also buy the GOCO AI add-on (unlocks built-in AI for building and article rewriting) or extra build credits (1 credit = 1 build/rebuild, never expires).
Changing or unbinding a server
Section titled “Changing or unbinding a server”These three actions each draw on their own independent rolling-365-day quota (they do not share — 3 uses each per 12 months by default; a slot frees only when the oldest use rolls out of the window):
- Change server (transfer the license): on the license card click “Migrate” and pick a target server. The license, the GOCO AI add-on, and this server’s site and batch records all move; remaining validity is preserved. The target must be one of your own servers without an active license. Consumes the “transfer license” quota.
- Change IP: if the server’s public IP changed, update it via “Change IP” on the edit page. Consumes the “Change IP” quota (independent of migrate / transfer).
- Transfer to another user: the row’s ⋯ menu can transfer the server (with its license, optionally sites / spider / visitor / schedule data) to another GOCO account; it takes effect once accepted and is irreversible. Consumes the “transfer to another user” quota.
- Maintenance mode: before manual reinstalls or disk cleanup, “enter maintenance” — new deploys are rejected while running tasks are unaffected.
- Delete server: irreversible; you must type the server name to confirm. Deletion is blocked while sites / batches are still bound to the server — first transfer the license to another server, rebind the batch in Bulk Builder, or delete those sites / batches. After deletion the site data stays, but nothing can deploy to that server anymore.
Troubleshooting connection failures
Section titled “Troubleshooting connection failures”When “Test connection” or a health probe fails, match the error message:
| Message | Meaning and fix |
|---|---|
| Authentication failed: wrong user / password / key | Check the SSH user, password or key; if you changed them on the server, update the credentials on GOCO’s edit page and run “Test connection” again. |
| Cannot reach host: network or firewall blocking | Confirm the server is powered on, the SSH port is right, and the firewall / security group allows it. |
| SSH handshake timeout (15s) / Probe timeout (15s) | Usually an unstable network or an overloaded server — retry later; if it persists, check the server’s bandwidth and load. |
| Host reachable, but shown “offline” | GOCO can reach the host but can’t SSH in. Common causes: the server’s fail2ban / firewall is blocking GOCO’s probe IP, or the SSH port / password / key changed. Allow GOCO’s egress IP or re-check the credentials. |
| Auth failed (badge) | The SSH password / key was rejected or expired — update the SSH credentials on the server’s detail page, then click “Detect now”. |
| Older OS detected | Old systems may fail builds or publishing — migrate to Ubuntu 22.04+, Debian 12+, or Rocky / AlmaLinux 9+. |
After fixing, use “Recheck” from the row’s ⋯ menu, or “Detect now” on the detail page, to refresh the status.
With the server bound and licensed, you’re ready to build in bulk.
