Upgrade Temps

Temps includes a self-upgrade command that downloads the latest release from GitHub, verifies its checksum, and replaces the binary atomically. Database migrations run automatically on the next restart.


Check your current version

temps --version

Output:

v1.0.0 (abc1234) built 2026-01-15 12:34:56 UTC

Check for updates

See if a newer version is available without installing it:

temps upgrade --check

Or use the health check command, which includes an update check along with other system diagnostics:

temps doctor

If a newer version exists, you will see:

WARN Update: v1.1.0 available - run 'temps upgrade' to update

Back up before upgrading

Before any upgrade, create a backup of your data:

If you have S3 backup storage configured:

Trigger a manual backup from the dashboard (Settings > Backups > Run Backup) or via the API.

If you do not have S3 configured:

At minimum, back up the Temps data directory and database:

# Back up the data directory (contains encryption key, auth secret, GeoLite2 DB)
cp -r ~/.temps ~/.temps-backup-$(date +%Y%m%d)

# Back up the PostgreSQL database
docker exec temps-timescaledb pg_dumpall -U postgres | gzip > temps-db-backup-$(date +%Y%m%d).sql.gz

Run the upgrade

Upgrade to the latest version

temps upgrade

If the binary is in a root-owned location (e.g. /usr/local/bin/temps):

sudo temps upgrade

The upgrade process:

  1. Detects your platform (Linux/macOS, x86_64/ARM64)
  2. Fetches the latest release from GitHub
  3. Compares versions — exits if already up to date
  4. Shows the upgrade plan (current version, target version, download size)
  5. Asks for confirmation
  6. Downloads the release tarball
  7. Verifies the SHA-256 checksum (if available)
  8. Replaces the binary atomically (write to temp file, then rename)

Options

# Upgrade to a specific version
temps upgrade --version v1.1.0

# Skip the confirmation prompt
temps upgrade --yes

# Only consider stable releases (skip pre-releases)
temps upgrade --stable

# Upgrade a binary at a different path
temps upgrade --path /opt/temps/bin/temps

Restart Temps

The upgrade replaces the binary but does not restart the running process. You need to restart manually.

If running under systemd (typical server setup)

sudo systemctl restart temps

If you run the proxy as a separate process:

sudo systemctl restart temps-proxy

If running in a terminal

Stop the current process (Ctrl+C) and start it again:

temps serve

Database migrations

Migrations run automatically when temps serve starts. There is no separate migration command. When the server boots, it:

  1. Connects to PostgreSQL
  2. Runs all pending migrations (120-second timeout)
  3. Backfills any new TimescaleDB continuous aggregates
  4. Starts serving traffic

If migrations fail, the server will not start. Check the logs for the specific migration error.


Verify the upgrade

After restarting:

# Check the version
temps --version

# Run diagnostics
temps doctor

The doctor command checks:

  • Data directory integrity
  • Encryption key presence
  • Database connectivity and version
  • TimescaleDB extension
  • Migration count
  • Docker daemon availability
  • External connectivity (GitHub API, Docker Hub, Let's Encrypt)
  • Git providers and DNS providers

If everything passes, your upgrade is complete. Visit the dashboard to confirm it loads correctly.

Was this page helpful?