メインコンテンツへ

セルフホスト構成

docker-compose.selfhost.yml(リポジトリルート)と deploy/helm/ / deploy/k8s/ は、顧客が自分のインフラに Astar をデプロイするための配布物です。日々の開発ループとは別物です。

コードを書きながら動作確認したいだけなら、このページではなく はじめに / dev-loop を使ってください。docker-compose.selfhost.yml は本番相当のビルド済みイメージを使う想定で、コード変更のたびにフルビルドが走るため開発ループには向きません。

docker-compose.selfhost.yml

ルート README.md の Self-Hosted セクションが示す通り、.env に必須シークレット(APP_ENCRYPTION_KEY / SESSION_PASSWORD / JWT_SECRET、いずれも顧客側で openssl rand 等で新規生成するローカル値 — infrastructure/secrets/secrets.json とは無関係)を用意してから docker compose -f docker-compose.selfhost.yml up -d を叩くだけで http://localhost:3000 が立ち上がる構成です。

含まれるサービス:

サービスイメージ / ビルド元役割
postgrespgvector/pgvector:pg17DB。app_user(RLS 用)は init スクリプトで作成、以降のマイグレーションは backend 起動時の Flyway が担当
minio / minio-initminio/minioS3 互換オブジェクトストレージ。minio-initdocuments バケットをバージョニング有効で作成
kreuzbergghcr.io/kreuzberg-dev/kreuzberg:4.7.4ドキュメントのテキスト抽出(OCR/Markdown化)
ndlocrinfrastructure/ndlocr/日本語最適化 OCR(NDLOCR-Lite)
doc-exportpackages/doc-export/HTML → PDF/PNG エクスポートレンダラー
doc-converterinfrastructure/gcp/docker/doc-converter/旧 Office 形式 (.doc/.xls) の LibreOffice 変換
backendinfrastructure/gcp/docker/backend/Dockerfile.productionSpring Boot API。SPRING_PROFILES_ACTIVE=selfhost
frontendfrontend/DockerfileNuxt Web UI

認証は組み込みモード(NUXT_PUBLIC_AUTH_MODE: builtin)で、本番 SaaS の Auth0 は使いません。

Collabora(ブラウザ内 Office 編集)は本番 SaaS では専用 GCE VM として動いていますが、現時点の docker-compose.selfhost.yml には含まれていません。self-host 環境でこの機能が必要な場合は個別に構成が必要です。

Kubernetes 版(deploy/helm・deploy/k8s)

より大規模な顧客向けに、Compose の代わりに Kubernetes へデプロイする経路も用意されています。

  • deploy/helm/astar/ — Helm チャート
  • deploy/k8s/ — Helm を使わないプレーンな YAML マニフェスト一式(namespace.yamlsecret.yamlconfigmap.yaml → 各サービスの順に kubectl apply

サービス構成は Compose 版と近いものの、deploy/k8s/ には ndlocrdoc-converter が含まれず(postgres / minio / kreuzberg / doc-export / backend / frontend の 6 つ)、認証も SPRING_PROFILES_ACTIVE=local(モック認証)固定です。frontend/backend の Docker イメージは ghcr.io に push される専用ビルド(release.ymlbuild-frontend-docker ジョブ等)で、本番 SaaS の Cloudflare Pages / GCE デプロイとは別系統です。

この構成を触るときの注意

  • 顧客のセルフホスト環境そのものには通常アクセスしません。動作確認はローカルで docker compose -f docker-compose.selfhost.yml up -d を実行して行います。
  • Compose・Helm・k8s マニフェストのいずれかに新しいサービスや環境変数を足すときは、3 経路すべてdocker-compose.selfhost.yml / deploy/helm/astar/values.yaml / deploy/k8s/*.yaml)の整合を確認してください。放置すると経路ごとに構成がずれます。
  • ここでの環境変数名・デフォルト値は配布物の一部であり公開情報ですが、本番の infrastructure/secrets/secrets.json に載っている実際のシークレット値とは無関係です。混同しないこと。