Folio Writer
近日公開

Folio Writer Cloud をセルフホスト

docker compose ファイル一つで、cloud.foliowriter.app を支えているのと同じサーバーを自分のマシンで動かせます。ライブ共同編集、エンドツーエンド暗号化プロジェクト、組版プレビュー、PDF/Word/LaTeX への書き出し——Pandoc と Typst はイメージに同梱されています。個人利用は無料です。

まだご利用いただけません

公開用の foliowriter/folio-web イメージはまだ仕上げの段階にあるため、以下のコマンドを実行しても現時点では何も取得されません。このページは、セルフホスティングがどのように動くかのプレビューです。公開日にお知らせを受け取りたい方は、ご連絡ください。メールでお知らせします。

クイックスタート

mkdir folio && cd folio
curl -fsSLO https://foliowriter.app/selfhost/docker-compose.yml
FOLIO_DOMAIN=folio.example.com docker compose up -d

同梱の Caddy が、ドメイン用の Let’s Encrypt 証明書を取得・更新し、HTTPS とコラボレーション用の WebSocket をプロキシします。あとは https://folio.example.com を開くだけです。ドメインがまだない場合は、docker compose up folio-web を実行して http://localhost:8787 を開いてください。

必要なもの

最初の(管理者)アカウント

FOLIO_ADMIN_EMAILS に自分のメールアドレスを入れてサーバーを起動します。

FOLIO_DOMAIN=folio.example.com FOLIO_ADMIN_EMAILS=you@example.com \
  docker compose up -d

ここに列挙したアドレスは常に管理者になります——容量制限はなく、/admin ダッシュボード(アカウント、プロジェクト、ストレージ、トラフィック)も使えます。そのメールアドレスでサインインしてください。SMTP を設定していない場合、マジックサインインリンクはメールで送られる代わりにサーバーのログに出力されます。

docker compose logs folio-web | grep -i http

出力されたリンクを開けば、サインイン完了です。実際にメールを配信するには、SMTP_* 変数(どのリレーでも構いません)と、メール内のリンクが自分のドメインを使うよう PUBLIC_BASE_URL を設定してください。

設定

設定はすべて環境変数で行います。docker-compose.yml の隣の .env ファイルに書いておけば、Compose が自動的に読み込みます。

FOLIO_DOMAIN=folio.example.com
PUBLIC_BASE_URL=https://folio.example.com
FOLIO_ADMIN_EMAILS=you@example.com
FOLIO_LIMIT_PROJECTS=0        # 0 = unlimited
FOLIO_LIMIT_STORAGE_MB=0      # 0 = unlimited
FOLIO_ENC_KEY=…               # openssl rand -hex 32
変数役割
FOLIO_DOMAINCaddy が配信し、証明書を取得するドメイン(デフォルトは localhost)。
PUBLIC_BASE_URLサインインメールと共有リンクで使う絶対オリジン。
FOLIO_ADMIN_EMAILS常に管理者となるメールアドレス(カンマ区切り)。容量制限の対象外で、/admin を使えます。
SMTP_HOST / PORT / USER / PASS / SECURE / FROMマジックリンクによるサインイン用の送信メール。未設定の場合 → リンクはコンテナのログに出力されます。
FOLIO_LIMIT_PROJECTSアカウントごとのプロジェクト数(デフォルトは 2)。0 = 無制限——セルフホストする人の多くはこれを設定します。
FOLIO_LIMIT_STORAGE_MBアカウントごとのストレージ容量(MB、デフォルトは 50)。0 = 無制限。
FOLIO_DEMOS自動リセットされるデモ用サンドボックスとして提供するプロジェクト ID(カンマ区切り)。
FOLIO_ALLOW_GUEST_PROJECTS1 に設定すると、訪問者がサインインせずにプロジェクトを作成できます(デフォルトでは作成にアカウントが必要です。デモは常に公開されています)。
FOLIO_ENC_KEY保存済みの認証アプリのシークレットを、保存時に暗号化するための 16 進 64 文字の鍵。

アップデート、バックアップと復元

アップデート:docker compose pull && docker compose up -d。latest を追うよりバージョンを固定したい場合は、タグ付きのバージョン(foliowriter/folio-web:0.2.0)もあります。

すべて——プロジェクト、アカウント、セッション——は compose ファイルの隣の ./data にあります。バックアップするのはその一つのフォルダだけです。

docker compose stop folio-web
tar czf folio-backup-$(date +%F).tgz data
docker compose start folio-web

復元(あるいはサーバーの移行)は、data/ を元に戻して docker compose up -d を実行するだけです。

ライセンス

個人利用は無料です。イメージはプロプライエタリですが、自分自身、家族、個人的な共同執筆者のためにセルフホストする分には費用はかかりません。

チームや組織には商用ライセンスが必要です。企業、学校、その他の組織のために、あるいはその内部で運用する場合、または商用で運用する場合にはライセンスが必要です。無料枠はそれによって支えられています。お問い合わせください。すぐに対応します。

再配布、リブランディング、派生物の作成はできません。完全な条項はイメージのドキュメントに同梱されています。サーバーを運用したくない場合は、cloud.foliowriter.app がホスト版です——無料で始められます。