Skip to content

Deploy on any Ubuntu server

Any host works if it gives you an Ubuntu 22.04 or 24.04 server (Intel or AMD, or ARM) that you can log in to over SSH with sudo, with a public address. Geometer charges for assurance, not hosting: the server and its bill are yours.

  • An Ubuntu 22.04 or 24.04 server with 2 vCPU and 4 GB of memory for about ten shops, and a few GB of free disk. Docker Engine and Node are installed for you if they are missing.
  • A normal user with sudo (not root). To make one as root: adduser builder && usermod -aG sudo builder, then log in as builder.
  • A domain with an A record pointing at the server’s public address.
  • Ports 22, 80 and 443 open to the server in the host’s firewall and on the server (sudo ufw status shows whether Ubuntu’s own firewall is on; allow 80/tcp and 443/tcp if it is). Port 80 is needed for the certificate.
  • A pairing code from geometer.dev/account, Add a server. It works once and runs out after two hours.
  • The release tag Geometer gave you.

Log in over SSH as a normal user with sudo (not root), and run the two lines the account page shows after you choose Add a server (the second one already carries your pairing code), with the release tag Geometer gave you in place of <release tag>:

Terminal window
git clone --branch <release tag> https://github.com/GeometerLabs/agents.git ~/geometer/agents
bash ~/geometer/agents/install.sh --pairing-code-file <(printf '%s\n' '<your pairing code>')

It asks for your domain, says what it will do and asks before it changes anything. It takes about ten minutes. (The account page’s lines already carry your pairing code, so it is not asked for again.)

Preview it first with bash ~/geometer/agents/install.sh --dry-run, which prints each step and changes nothing.

If your host has a user data or cloud-init field, paste bundle/cloud-init.yaml there with its four FILL IN values filled. The per-host guides show where: DigitalOcean, Hetzner.

  1. Log in to the server as builder (cloud-init path) or your own user, and run geometer status. It lists each shop (none yet), the Guards and the last backup.
  2. Run geometer invite builder and open the one-time sign-in link it prints. The panel opens at https://<your domain>.
  3. On geometer.dev/account the server appears under your servers once it is paired.
  4. Finish the panel’s first run: the model and its key, the backup bucket and its key, and Google if your shops use a calendar. Then add a shop.

If something is wrong: geometer server logs shows the server’s containers, and Deploy on your server has the rest. For a cloud-init install, the install’s own log is /var/log/cloud-init-output.log on the server.