3.9 KiB
id, title, sidebar_label
| id | title | sidebar_label |
|---|---|---|
| first-server | Add your first server | Add your first server |
Enrolling a server means running one command on it. The control plane issues a short-lived token, the install script fetches the agent and writes a config, and the machine registers itself.
1. Create the enrolment
In the UI, go to Servers → Add server Then click the Generate Install Command button. This generates a server ID and a pre-registration token
:::warning The token is single-use and lives one hour It is the only credential in the flow, and it is spent the moment the agent registers. :::
2. Run the one-liner
Linux
Run the generated install script as root.
Here is an example of the install script:
curl -fsSL "https://vantage.example.com/install?server_id=<id>&token=<token>" | bash
What the script does:
- Detects architecture
x86_64andaarch64only; anything else exits. - Downloads the binary and
checksums.txt, and verifies the SHA-256, aborting on a mismatch. - Installs to
/usr/local/bin/vantage-agent, mode0755. - Writes the config file at
/etc/vantage/config.yaml- This contains the server ID, the pre-registration token and the gRPC host.
- Writes the systemd service file
/etc/systemd/system/vantage-agent.serviceand starts the agent.
Windows
irm "https://vantage.example.com/install.ps1?server_id=<id>&token=<token>" | iex
Run from an elevated PowerShell.
What the script does:
- Creates the config at
%ProgramData%\vantage\config.yaml.- This contains the server ID, the pre-registration token and the gRPC host.
- Downloads the agent MSI from Gitea.
- Installs the MSI and creates the Windows service.
- Starts the agent.
:::info Windows agents do not manage authorized_keys as this is a Linux-only function.
:::
3. Watch it come up
The server appears immediately as pending. Within one poll interval, 30 seconds it becomes active.
Check the systemd logs using the following commands:
systemctl status vantage-agent
journalctl -u vantage-agent -f
4. Confirm it works
Open the server's detail page. Within a minute or two you should see:
- Status
active, with a recent last-seen timestamp. - Inventory CPU, memory, swap, partitions, kernel. Metrics refresh every 30 seconds; the full static snapshot every 15 minutes.
- Pending OS updates, checked hourly.
If it does not appear
| Symptom | Cause |
|---|---|
| Script exits at "Unsupported architecture" | Not amd64 or arm64 |
| "Checksum mismatch!" | Interrupted download, or a proxy rewriting the body. Re-run |
| "Could not determine latest agent version" | The host cannot reach gitea.hostxtra.co.uk, or no agent/v* release exists |
Service runs, server stays pending |
The machine cannot reach GRPC_HOST. Test it from that machine |
Registers once then goes offline |
Reachable for Register but not for the poll usually a firewall that permits the initial connection but drops the long-lived one |
A server is marked offline when its last-seen time passes the threshold; that
sweep runs every two minutes, so allow for it before concluding anything.