Docker
推奨される方法です。同梱の docker compose がアプリと Postgres を一緒に起動します。
Arcanum は、ひとつの Docker イメージと Postgres データベースとして提供されます。すべて — WSAA 署名、暗号化された秘密鍵、ARCA への SOAP トラフィック — は コンテナ内 で行われます。第三者を経由した認証は一切ありません。
Docker
推奨される方法です。同梱の docker compose がアプリと Postgres を一緒に起動します。
2 つのシークレット
API キー(REST 面を保護します)とマスターキー(秘密鍵を保存時に暗号化します)。openssl で生成します。
ARCA 証明書
CUIT ごとに、ホモロゲーションまたは本番環境向けに。Arcanum が CSR を生成するので、それを ARCA にアップロードし、.crt を貼り戻します。
まず 2 つのシークレットを生成します。
openssl rand -hex 24 # ARCANUM_API_KEY (protects the API)openssl rand -hex 32 # ARCANUM_MASTER_KEY (encrypts the private keys — keep it safe)git clone https://github.com/diegoparras/arcanum.git && cd arcanumcp .env.example .env# edit .env: set ARCANUM_API_KEY and ARCANUM_MASTER_KEYdocker compose up -dcompose ファイルは Postgres とアプリを一緒に起動し、ポート 8094 をマッピングし、停止されない限り再起動します。次に http://localhost:8094 を開きます。
GHCR に公開されたイメージを、自分の Postgres とともに使います。
docker run -d -p 8094:8094 \ -e ARCANUM_ENV=homo \ -e ARCANUM_API_KEY="$(openssl rand -hex 24)" \ -e ARCANUM_MASTER_KEY="$(openssl rand -hex 32)" \ -e DATABASE_URL="postgres://arcanum:arcanum@your-db:5432/arcanum" \ ghcr.io/diegoparras/arcanum:latesthttp://localhost:8094 を開いてサインインします(ARCANUM_ADMIN_USER / ARCANUM_ADMIN_PASS、または空のままにした場合はログに一度だけ表示されるパスワード)。.crt を貼り戻します。秘密鍵は暗号化して保存されます。すべての設定は .env にあります(.env.example からコピーします)。
| Variable | Default | 説明 |
|---|---|---|
PORT | 8094 | アプリが待ち受けるポート。 |
ARCANUM_ENV | homo | デフォルトの ARCA 環境: homo(テスト)または prod。UI で切り替え可能。 |
ARCANUM_API_KEY | (empty) | REST API 用のキー(X-API-Key)。空 → 生成されてログに一度だけ表示されます。 |
ARCANUM_MASTER_KEY | (empty) | 秘密鍵を保存時に暗号化する 32 バイトの 16 進キー。 |
DATABASE_URL | (compose) | PostgreSQL の接続文字列。compose ファイルはこれを同梱の arcanum-db に接続します。 |
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB | arcanum | 同梱の Postgres の認証情報。 |
ARCANUM_ADMIN_USER | (empty) | Web パネルの管理者ユーザー名。 |
ARCANUM_ADMIN_PASS | (empty) | 管理者パスワード。空 → 生成されてログに一度だけ表示されます。 |
ARCANUM_OIDC_ISSUER | (empty) | Lockatus の issuer URL — ログインを連携させる場合に設定します(オプションの SSO)。 |
ARCANUM_OIDC_CLIENT_ID | (empty) | 連携時の Lockatus におけるアプリのスラッグ(arcanum)。 |
ARCANUM_OIDC_CLIENT_SECRET | (empty) | 連携時の OIDC クライアントシークレット。 |