セルフホスト構成
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 が立ち上がる構成です。
含まれるサービス:
| サービス | イメージ / ビルド元 | 役割 |
|---|---|---|
postgres | pgvector/pgvector:pg17 | DB。app_user(RLS 用)は init スクリプトで作成、以降のマイグレーションは backend 起動時の Flyway が担当 |
minio / minio-init | minio/minio | S3 互換オブジェクトストレージ。minio-init が documents バケットをバージョニング有効で作成 |
kreuzberg | ghcr.io/kreuzberg-dev/kreuzberg:4.7.4 | ドキュメントのテキスト抽出(OCR/Markdown化) |
ndlocr | infrastructure/ndlocr/ | 日本語最適化 OCR(NDLOCR-Lite) |
doc-export | packages/doc-export/ | HTML → PDF/PNG エクスポートレンダラー |
doc-converter | infrastructure/gcp/docker/doc-converter/ | 旧 Office 形式 (.doc/.xls) の LibreOffice 変換 |
backend | infrastructure/gcp/docker/backend/Dockerfile.production | Spring Boot API。SPRING_PROFILES_ACTIVE=selfhost |
frontend | frontend/Dockerfile | Nuxt 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.yaml→secret.yaml→configmap.yaml→ 各サービスの順にkubectl apply)
サービス構成は Compose 版と近いものの、deploy/k8s/ には ndlocr と doc-converter が含まれず(postgres / minio / kreuzberg / doc-export / backend / frontend の 6 つ)、認証も SPRING_PROFILES_ACTIVE=local(モック認証)固定です。frontend/backend の Docker イメージは ghcr.io に push される専用ビルド(release.yml の build-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に載っている実際のシークレット値とは無関係です。混同しないこと。