ガイド
セルフホスティング
Oloproof のワークベンチは自社のサーバーで動かせます。オンプレミス、プライベートクラウド、カナダのクラウド事業者のいずれでも構いません。deploy/self-hosted/ のバンドルは oloproof.com と同じ 2 つのイメージ(web と worker)と PostgreSQL を、ダイジェスト指定で取得して動かします。データは動かしている場所に留まり、Oloproof には何も送られません。
要件
- Docker Engine と Compose プラグインを備えた Linux ホスト 1 台。チームには 4 GB のメモリと 2 CPU で足ります。worker の上限は 1.5 GB、web は 768 MB です。
- PostgreSQL 用のディスク。プッシュしたすべての実行がそこに保存されます。
- HTTPS 用のリバースプロキシ(Caddyfile.example は動作する例です。nginx でも構いません)。
- ghcr.io/etobicoke/oloproof へのアクセス、または自社レジストリにコピーしたイメージ。
インストール
cd deploy/self-hosted
sh generate-env.sh # writes .env and fills every secret.env に OLOPROOF_WEB_IMAGE、OLOPROOF_WORKER_IMAGE(どちらも ...@sha256: ダイジェスト)と OLOPROOF_PUBLIC_URL を設定し、サインイン手段を少なくとも 1 つ用意します。パスワードアカウント用のメール(OLOPROOF_MAIL_FROM と OLOPROOF_SMTP_URL または OLOPROOF_RESEND_API_KEY)か、 OAuth プロバイダーです。どちらもなければ web は起動しません。続いて起動します。
docker compose --env-file .env up -d
curl -fsS http://127.0.0.1:3000/api/healthmigrate サービスが、web と worker の起動前にデータベースを最新にします。サインアップは招待制で、招待は OLOPROOF_OPERATOR_TOKEN で発行します(deploy/README.md の「Signup」)。
設定
.env.example には web と worker が読むすべての変数が、必須、生成、任意のいずれかの印付きで並んでいます。空の任意変数はその機能を無効にします。生成されたシークレットは保持してください。データベースのパスワードを新しくするとデータベースに入れなくなり、署名鍵を新しくすると新しい署名者が始まります。セルフホストのバンドルには課金がないため、すべてのワークスペースに無料プランの月間ケース数が適用されます。チームに合わせて OLOPROOF_FREE_TIER_PUSHED_MONTHLY と OLOPROOF_FREE_TIER_MANAGED_MONTHLY を引き上げてください。
既定では外向き通信なし
スタックはテレメトリを送らず、Oloproof のどのサービスも呼びません。ネットワークに出るのは有効にしたものだけです。メール(ネットワーク内の SMTP リレー、または Resend)、OAuth サインイン、 Turnstile、そしてワークスペースが鍵を保存したモデルプロバイダーです。どれも設定しなければ、外への経路なしで動きます。エアギャップ環境のホストでは、3 つのイメージを自社レジストリにコピーし、イメージ変数をそこに向けてください。パスワードアカウントにはメールが必要なので、エアギャップネットワークでは OLOPROOF_SMTP_URL をその内部のリレーに設定します。
バックアップ
sh backup.sh /srv/backups/oloproofbackup.sh は圧縮した pg_dump を指定したディレクトリに書き出します。cron か systemd タイマー で定期実行し、ディレクトリはご自身でホストの外へコピーしてください。スクリプトは復元コマンドを表示します。
ダンプには .env が含まれません。.env には OLOPROOF_CONTENT_KEY などの生成された秘密が入っており、これがないと復元したデータベースは暗号化された内容を読めません。.env は作成時と変更のたびに、ダンプとは別にオフライン(パスワードマネージャーや暗号化ドライブ)でバックアップし、決してダンプと同じ場所に置かないでください。
アップグレード
新しいリリースの 2 つのダイジェストを .env に書き込み、次を実行します。
sh upgrade.sh /srv/backups/oloproofバックアップ、取得、マイグレーションを行い、web と worker を再起動します。短い中断があります。ロールバックするには、以前のダイジェストを書き戻し、取得したバックアップを復元します。
サポート範囲
- ホストは 1 台です。高可用性はありません。スタックの可用性はそのマシンと同じです。
- データの所在地は動かしている場所です。Oloproof はお客様のデータを一切保持しません。
- ゼロダウンタイムのリリースはありません。それはホスト型サービスだけのものです。
- バンドルは deploy/self-hosted/check.sh で検査されます。独自のプロジェクト名で起動し、 /api/health を待ち、公開ページを取得してから削除します。