Skip to main content
DigitalOcean offers two deployment paths for Hyperterse: App Platform for managed container hosting, and Droplets for full server control. App Platform is recommended for most teams.

App Platform

App Platform is DigitalOcean’s managed platform-as-a-service. It builds, deploys, and manages your container with automatic scaling, SSL, and monitoring.
1

Build the artifact

hyperterse build -o dist
2

Push to a container registry

Push your Docker image to DigitalOcean Container Registry or Docker Hub:
doctl registry create hyperterse
doctl registry login
docker build -t registry.digitalocean.com/hyperterse/server:latest .
docker push registry.digitalocean.com/hyperterse/server:latest
3

Create the app

Create an app spec file:
name: hyperterse
services:
  - name: server
    image:
      registry_type: DOCR
      repository: hyperterse/server
      tag: latest
    http_port: 8080
    instance_count: 2
    instance_size_slug: basic-xxs
    health_check:
      http_path: /heartbeat
    envs:
      - key: DATABASE_URL
        value: "${db.DATABASE_URL}"
        type: SECRET
databases:
  - name: db
    engine: PG
    production: true
Deploy it:
doctl apps create --spec app-spec.yaml
App Platform can provision a managed PostgreSQL database as part of the app spec. The connection string is automatically injected as an environment variable.

Droplet deployment

For full server control, deploy to a Droplet and manage the process directly. This follows the same pattern as the bare metal deployment guide.
1

Create a Droplet

doctl compute droplet create hyperterse \
  --image ubuntu-22-04-x64 \
  --size s-1vcpu-1gb \
  --region nyc3 \
  --ssh-keys <key-fingerprint>
2

Transfer the artifact

hyperterse build -o dist
scp -r dist/ root@<droplet-ip>:/opt/hyperterse/
3

Configure and start

SSH into the Droplet and set up a systemd service as described in the bare metal guide. Set environment variables in the service file:
[Service]
Environment=DATABASE_URL=postgresql://user:pass@host:5432/db
ExecStart=/opt/hyperterse/hyperterse serve

Managed databases

DigitalOcean Managed Databases provide PostgreSQL, MySQL, MongoDB, and Redis clusters. Create one from the dashboard or CLI:
doctl databases create hyperterse-db --engine pg --region nyc3 --size db-s-1vcpu-1gb
Retrieve the connection string and use it in your .terse configuration or as an environment variable.

Load balancer

For multi-instance App Platform deployments, traffic is load-balanced automatically. For Droplet deployments, create a DigitalOcean Load Balancer:
doctl compute load-balancer create \
  --name hyperterse-lb \
  --region nyc3 \
  --forwarding-rules "entry_protocol:https,entry_port:443,target_protocol:http,target_port:8080" \
  --health-check "protocol:http,port:8080,path:/heartbeat"