Skip to content

Environment Variables

Rumia Channel edited this page Sep 30, 2026 · 6 revisions

Environment-Variables

環境変数・CI の値を 置き場と読み手で整理した一覧。

まずここ: 設定には CI が使う値 と アプリが使う値 の 2 系統がある。

  • CI が使う値 → GitHub の Environment (SORAHOST / Cloudflare) に置く
  • アプリが使う値 → SORAHOST はサーバー上の .env、Worker は secret / [vars] に置く

手順つきの案内は Deploy-SORAHOST / Deploy-Cloudflare-Workers を先に読む。 このページは「名前が分かっているが、どこに置くか知りたい」ときの索引。

同じ名前でも読み手によって意味が違うものがある (例: S3_* は native の環境変数でもあり、 Worker の binding 名でもある) ので、まず置き場で分ける。

置き場の分け方

置き場 読み手 例
GitHub Repository variables CI の分岐 SORAHOST, SORAHOST_RELAY_START
GitHub Environment SORAHOST deploy-sorahost.yml SORAHOST_ENDPOINT, SORAHOST_TOKEN, SORAHOST_*, CLOUDFLARE_*
GitHub Environment Cloudflare platform.yml の worker-deploy-* CLOUDFLARE_*, NAROU_*, SORAHOST_PROXY_*, CF_ACCESS_*, *_DOMAIN
GitHub Environment CodeSining release.yml の署名 CERTUM_*
SORAHOST サーバー .env start.sh → narou_rs NAROU_WEB_*, NAROU_RS_*, S3_*, NAROU_CONNECTOR_*, NAROU_PUBLIC_HOST
Worker secret / [vars] wrangler deploy で焼き込み / Worker 実行時 NAROU_ADMIN_TOKEN, NAROU_RS_LOGIN_KEY, S3_*
.dev.vars (Worker ローカル) wrangler dev NAROU_ADMIN_TOKEN, NAROU_AUTH_REQUIRED

1. リポジトリ変数 (Repository variables)

名前 必須 効果
SORAHOST ✅ (T で有効) T で SORAHOST 配備を有効にし、Workers CI を止める
SORAHOST_RELAY_START リレー同居時 リレーの起動コマンドを narou 側に寄せる

2. Environment SORAHOST (deploy-sorahost.yml)

詳細は Deploy-SORAHOST §3.2。

種類 名前 必須 用途
secret SORAHOST_ENDPOINT ✅ PteWorker のエンドポイント
secret SORAHOST_TOKEN ✅ sorahost-cli deploy の Authorization: Bearer
secret SORAHOST_SMOKE_URL 任意 配備後の確認先
secret CLOUDFLARE_API_TOKEN §2-A を使うとき コネクタ / DNS / Access を作る
secret CLOUDFLARE_ACCOUNT_ID 同上 アカウント ID
secret SORAHOST_PUBLIC_HOSTNAME 同上 公開ホスト名
secret SORAHOST_SERVICE_PORT 同上 コネクタの向き先ポート (既定 18080)
secret SORAHOST_CONNECTOR_NAME 同上 既定 narou-sorahost
secret SORAHOST_ACCESS_EMAIL / _DOMAIN / _SESSION 同上 Access の許可範囲・期限

3. SORAHOST サーバー側 .env (アプリ)

詳細は Deploy-SORAHOST §3.1。start.sh が起動時に読み、既に環境にある値が優先される。 ひな形は sorahost/narou.env.example。

名前 必須 何のため
NAROU_WEB_PASSWORD ✅ 素の公開。コネクタ時は任意 basic 認証パスワード
NAROU_WEB_USER 任意 basic 認証ユーザ名 (既定 admin)
NAROU_ALLOW_NO_PASSWORD 任意 1 で認証なし起動を許可 (コネクタなし時)
NAROU_RS_ASSET_BACKEND S3 時 s3 で挿絵だけ S3
S3_ENDPOINT / S3_REGION / S3_BUCKET / S3_PREFIX S3 時 S3 接続先 (native の読み名)
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY S3 時 S3 資格情報
NAROU_RS_LOGIN_KEY 任意 Cookie 暗号鍵 (既定 .narou/login.key)
NAROU_RS_MIRROR_FILES 任意 0 で 小説データ/ に実ファイルを書かない
NAROU_RS_SECTION_CACHE 任意 0 で話ごとの変換キャッシュを作らない
NAROU_RS_KEEP_TXT 任意 0 で変換済みテキストを残さない (EPUB は都度再変換)
NAROU_RS_LEGACY_YAML 任意 1 で YAML 管理に戻す
NAROU_RS_EPUB_ENGINE 任意 EPUB エンジン
NAROU_RS_APP / NAROU_RS_LIBRARY / NAROU_RS_PORT / NAROU_RS_ENV_FILE 任意 配置・ポート・env パス (自動)
NAROU_RELAY / SORAHOST_PROXY_KEY リレー同居時 取得リレーの起動・合言葉
NAROU_CONNECTOR_TOKEN / NAROU_CONNECTOR_TOKEN_FILE / NAROU_PUBLIC_HOST コネクタ使用時 コネクタ起動・公開 Host 固定

4. Worker (Cloudflare 環境 + Worker 実行時)

詳細は Deploy-Cloudflare-Workers。

GitHub → CI → Worker の見え方

  • [vars] … S3_ENDPOINT / S3_REGION / S3_BUCKET / S3_PREFIX / NAROU_AUTH_REQUIRED
  • Worker secret … NAROU_ADMIN_TOKEN / NAROU_RS_LOGIN_KEY / S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY
  • Secrets Store … <NAME>_STORE binding (b モード)
  • env.var → env.secret の順に解決

Environment Cloudflare の secret

名前 必須 用途
CLOUDFLARE_API_TOKEN ✅ wrangler 用トークン
CLOUDFLARE_ACCOUNT_ID (CLOUDFLARE_ACCOUT_ID でも可) ✅ アカウント ID
SERVICE_DOMAIN production production の custom domain
DEVELOP_DOMAIN 任意 develop の custom domain
NAROU_ADMIN_TOKEN Zero Trust が境界なら不要 Worker API Bearer
NAROU_RS_LOGIN_KEY 任意 Cookie 暗号鍵 (base64)
NAROU_S3_ACCESS_KEY_ID / NAROU_S3_SECRET_ACCESS_KEY 任意 S3 資格情報
CF_ACCESS_CLIENT_ID / CF_ACCESS_CLIENT_SECRET 任意 Access service token

Environment Cloudflare の var

名前 必須 用途
NAROU_AUTH_REQUIRED 任意 Bearer 検査の on/off (既定 true)
NAROU_WORKERS_DEV 任意 workers.dev の開閉 (route があれば false)
NAROU_S3_ENDPOINT / NAROU_S3_REGION / NAROU_S3_BUCKET (a) で必須 S3 接続先
NAROU_S3_PREFIX 任意 キー前置 (既定 narou/<target>。設定しない)
NAROU_SECRETS_STORE_ID (b) で必須 Secrets Store ID
NAROU_S3_*_SECRET_NAME (5 つ) (b) で必須 Cloudflare 側の secret 名
NAROU_ADMIN_TOKEN_SECRET_NAME / NAROU_RS_LOGIN_KEY_SECRET_NAME 任意 ストアに置くとき
NAROU_D1_BASE_NAME / NAROU_JOB_QUEUE_BASE 任意 リソース名の接頭辞
NAROU_DEPLOY_URL 任意 smoke の宛先
NAROU_SMOKE 任意 0 で smoke 省略 (既定 1)

5. Worker が読む環境変数 (実行時)

worker_entry が実行時に参照する値:

名前 必須 意味
NAROU_ADMIN_TOKEN Bearer 認証時 Bearer 照合 (定数時間比較)。auth 有効で未設定なら 500 authentication_not_configured
NAROU_RS_LOGIN_KEY 任意 Cookie AEAD 鍵。native の .narou/login.key と同値で共有できる
NAROU_AUTH_REQUIRED 任意 true で Bearer 必須 (既定)。false は Zero Trust 前提
S3_ENDPOINT / S3_REGION / S3_BUCKET / S3_PREFIX (a) モード時 S3 接続先
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY (a) モード時 S3 資格情報
NAROU_S3_*_STORE (b) モード時 Secrets Store 経由のバインディング名
SORAHOST_PROXY_ENDPOINT / SORAHOST_PROXY_KEY 任意 取得リレー (fetch を弾くサイト向け)
NAROU_D1_* / NAROU_JOB_* — (自動) provision_resources.py が算出するリソース名

6. native (CLI / narou web) が読む環境変数

名前 必須 意味
NAROU_RS_LEGACY_YAML 任意 1 で SQLite を無効化して YAML 管理に戻す
NAROU_RS_EPUB_ENGINE 任意 EPUB エンジン (convert.epub-engine を上書き)
NAROU_RS_LOGIN_KEY 任意 Cookie 暗号鍵
NAROU_ADMIN_TOKEN — Worker 系の値 (native では通常使わない)

参照