Selega をインストール
Selega は Docker でセルフホストします。提供される docker-compose.yml は、2つのコンテナ — Selega とその専用 PostgreSQL — に加えてデータ用のボリュームを起動します。データベースを別途インストールまたはプロビジョニングする必要はありません。
- Compose プラグイン(
docker compose)付きの Docker。 - Web UI 用のホストポート(既定は
8088)。 - 本番環境向け:HTTPS/TLS 付きのリバースプロキシ(Caddy、nginx、またはお使いのパネルの組み込み TLS)。
コンテナイメージは node:22-slim をベースに構築され、スキャンされた PDF 向けに Tesseract OCR(スペイン語の言語パック付き)と poppler-utils を組み込んでいます。非 root ユーザーとして動作します。
1分インストール(Docker)
Section titled “1分インストール(Docker)”git clone https://github.com/diegoparras/selega.git && cd selegacp .env.example .env # POSTGRES_PASSWORD を編集(強力なものを使用)docker compose up -d --builddocker compose logs selega # 生成された管理者パスワードがここに表示されます(一度だけ)# → http://localhost:8088これだけです。2つのコンテナ(selega + selega-db)と、データ用のボリュームが1つです。
イメージの入手方法
Section titled “イメージの入手方法”Selega はプッシュのたびに ghcr.io/diegoparras/selega:latest として GHCR に公開され、docker-compose.yml にも build: . が宣言されています。したがって、リポジトリからビルドするか、公開イメージをプルするかのいずれかを選べます。
git clone https://github.com/diegoparras/selega.git && cd selegacp .env.example .envdocker compose up -d --buildお使いのパネルがリポジトリのクローンなしに compose ファイルの貼り付け しか許可しない場合は、このイメージのみのブロックを使用してください — GHCR から既に公開されているイメージをプルします。
services: db: image: postgres:16-alpine environment: POSTGRES_USER: selega POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set a strong password} POSTGRES_DB: selega volumes: [ "selega-pg:/var/lib/postgresql/data" ] healthcheck: test: ["CMD-SHELL", "pg_isready -U selega -d selega"] interval: 5s timeout: 3s retries: 12 restart: unless-stopped selega: image: ghcr.io/diegoparras/selega:latest ports: [ "8088:8080" ] environment: SELEGA_ADMIN_EMAIL: ${SELEGA_ADMIN_EMAIL:-admin@selega.local} SELEGA_ADMIN_PASS: ${SELEGA_ADMIN_PASS:-} SELEGA_SECURE_COOKIE: ${SELEGA_SECURE_COOKIE:-0} DATABASE_URL: "postgresql://selega:${POSTGRES_PASSWORD}@db:5432/selega" depends_on: db: { condition: service_healthy } restart: unless-stoppedvolumes: selega-pg:.env.example を .env にコピーし、実際の値を設定してください。.env を git にコミットしないでください。
| 変数 | 既定値 | 目的 |
|---|---|---|
POSTGRES_PASSWORD | — (必須) | データベースのパスワード。強力なものを使用してください。 |
SELEGA_ADMIN_EMAIL | admin@selega.local | 最初の superadmin のユーザー。 |
SELEGA_ADMIN_PASS | (空) | 空のままにする → パスワードが生成され、ログに一度だけ表示されます。 |
SELEGA_SECURE_COOKIE | 0 | HTTPS/TLS の背後では 1 に設定(セッションクッキーは HTTPS 経由でのみ送信)。 |
SELEGA_PORT | 8088 | ホストポート(アプリはコンテナ内部の 8080 でリッスンします)。 |
OPENROUTER_KEY | (空) | オプションのクラウド AI キー。Admin から読み込むことを推奨(書き込み専用で保存)。 |
POSTGRES_USER / POSTGRES_DB | selega | データベースのユーザー/名前。 |
docker compose logs selegaを実行(またはお使いのパネルのログを確認)し、生成された管理者パスワードをコピーします。これは一度だけ表示されます。SELEGA_ADMIN_EMAILとそのパスワードでサインインします。あなたはsuperadmin になりました。- ケバブメニュー(⋮)→ System を開きます。このインストールが対応する管轄を選択し、エンジンを設定します。
- ケバブメニュー(⋮)→ Administration を開きます。ユーザー(agent / supervisor / auditor / admin)を作成し、ルールを編集します。
パネルでのデプロイ
Section titled “パネルでのデプロイ”Dokploy、Easypanel、Coolify、Portainer はいずれも Docker Compose に対応しています。推奨される方法は、この GitHub リポジトリを接続することで、パネルがイメージをビルドしてくれます。お使いのパネルが貼り付けた compose しか受け付けない場合は、上記のイメージのみのブロックを使用してください。
唯一の必須変数は POSTGRES_PASSWORD です。SELEGA_ADMIN_PASS は空のままにして、Selega が管理者パスワードを生成し、コンテナのログに一度だけ表示するようにしてください。パネルが TLS を提供する場合(Dokploy、Easypanel、Coolify は自動で行います)、SELEGA_SECURE_COOKIE=1 を設定してください。
アップデート
Section titled “アップデート”git pull && docker compose up -d --build # リポジトリからビルド# または、公開イメージで:docker compose pull && docker compose up -d本番チェックリスト
Section titled “本番チェックリスト”- TLS:Selega を HTTPS 付きのリバースプロキシの背後に置き、
SELEGA_SECURE_COOKIE=1を設定してください。 .envに強力なシークレットを設定し、.envを絶対にコミットしないでください。SELEGA_ADMIN_PASSを空にする → 自動生成されます。- Postgres ポートを閉じる — 本番環境では
dbサービスをホストに公開しないでください。 selega-pgボリュームをバックアップしてください — それは legalización の記録です。
コンテナは非 root ユーザーとして動作し、CSP とセキュリティヘッダー、scrypt によるパスワードハッシュ化、HMAC セッション、ログインロックアウト、パラメータ化クエリを備えています。semgrep、OWASP ZAP、Trivy、gitleaks で監査されています。