Install

Three supported paths: curl pipe, manual docker compose, or one-click Render Blueprint.

Option A — curl pipe (recommended)

curl -fsSL install.openbitum.pw | bash

Flags:

| Flag | Effect | |---|---| | -y, --yes | non-interactive — reads everything from env, no prompts | | --dry-run | print every command that would run, change nothing |

Useful environment overrides:

| Var | Default | Note | |---|---|---| | OPENBITUM_REF | main | git ref to check out | | OPENBITUM_DIR | /opt/openbitum or ~/openbitum | install dir | | OPENBITUM_DOMAIN | (prompted) | public domain | | OPENBITUM_ADMIN_EMAIL | (prompted) | seeds Logto + Bitcart admin | | BITCART_ADMIN_PASSWORD | random | Bitcart admin bootstrap | | GITHUB_PAT | empty | enables GitHub entitlement | | DISCORD_BOT_TOKEN | empty | enables Discord entitlement |

The script is POSIX-ish bash with set -euo pipefail. It only writes inside the install dir and is safe to re-run — it will not overwrite an existing .env.

Option B — manual docker compose

git clone https://github.com/openbitum/openbitum
cd openbitum
cp .env.example .env
# edit .env: set OPENBITUM_DOMAIN, POSTGRES_PASSWORD, LOGTO_ADMIN_*,
#            MINIO_ROOT_PASSWORD, BITCART_ADMIN_PASSWORD, GLUE_*_SECRET
docker compose pull
docker compose up -d
docker compose ps   # all services healthy

Open https://<your-domain>/setup to finish onboarding.

Option C — Render Blueprint

render.yaml at the repo root provisions Postgres, KeyValue (Redis), Logto, Bitcart, glue, and web in one click:

Deploy to Render

After first deploy you'll need to set the two *_ENDPOINT env vars on the Logto service and BITCART_HOST on the Bitcart service to the auto-assigned *.onrender.com URLs (the Blueprint marks them sync: false).

Upgrades

cd /opt/openbitum
scripts/upgrade.sh

The upgrade script: takes a backup → git pulldocker compose pull → rolling restart of app containers with --no-recreate for data containers (Postgres, Redis, MinIO, bitcart-btc). If the post-upgrade boot fails, you get rollback instructions referencing the previous SHA and the freshest backup in backups/.

Backups

scripts/backup.sh             # → backups/openbitum-YYYY-MM-DD-HHMM.tar.gz
scripts/restore.sh backups/openbitum-2026-05-11-1900.tar.gz

The archive contains: openbitum.sql, logto.sql, bitcart.sql (pg_dump --clean --if-exists), minio.tar.gz (raw volume), and infrastructure.tar.gz (Caddyfile + bitcart configs).