本文へスキップ

ガイド

セルフホスティング

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/health

migrate サービスが、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/oloproof

backup.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 を待ち、公開ページを取得してから削除します。