Skip to content

Deploy on DigitalOcean

This guide takes you from nothing to a Geometer server on DigitalOcean. Geometer charges for assurance (Guard, the signed licence, alerts, the monthly report), not hosting: the server, its bill and your AI key and WhatsApp account are yours. The general steps and what the install does are in Deploy on your server.

  • A Basic Droplet with 2 vCPU and 4 GB of memory running Ubuntu 24.04 (or 22.04) x86_64, in the Bangalore (BLR1) region so your shops’ customers are close. That is the bundle’s stated size for about ten shops. See DigitalOcean’s pricing for what it costs; Geometer does not host it or bill for it.
  • A domain you control, where you can add an A record.
  • A Geometer account with a pairing code (step 1), and the release tag Geometer gave you.
  • Per shop and for the model, the keys listed in Deploy on your server.

Sign in at geometer.dev/account, choose Add a server and copy the one-time code (it starts gfp_). It works once and runs out after two hours, so make the server soon after you copy it. The page shows the code only once.

Download the cloud-init file, bundle/cloud-init.yaml, and fill in the four values marked FILL IN: your SSH public key, the release tag Geometer gave you, your domain, and the pairing code. It makes a user builder who logs in with your SSH key and runs the install with no questions.

  1. In the DigitalOcean control panel choose Create, then Droplets.
  2. Region: Bangalore. Image: Ubuntu 24.04 (LTS) x64. Size: Basic, 2 vCPU and 4 GB.
  3. Authentication: choose SSH Key and add yours (the line from ~/.ssh/id_ed25519.pub).
  4. Above Finalize Details, open Additional Options, turn on Startup scripts and paste the filled-in cloud-init file into the box. DigitalOcean calls this user data; it cannot be changed after the Droplet is created, so check the four values first.
  5. Name it and choose Create Droplet.

The install runs by itself when the server first starts and takes about ten minutes. Log in as builder after that.

Cloud Firewalls block everything that is not allowed. In Networking, then Firewalls, create a firewall with inbound rules for TCP 22 (SSH), TCP 80 and TCP 443, and apply it to the Droplet (by name or by a tag), ideally when you create it. Port 80 is needed for the certificate as well as for HTTPS on 443.

The address: The Droplet’s public IPv4 address is on its page in the control panel. It stays the same for the life of the Droplet.

Create an A record for your domain (for example shops.example.com) with the server’s public address, at whoever holds your domain’s DNS. HTTPS gets its certificate by itself once the record points at the server; the install keeps trying until it does. Check it with ping shops.example.com or dig +short shops.example.com.

  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.