Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

設定リファレンス

Fenfaはconfig.jsonファイル、環境変数、または管理パネル(ストレージやApple APIなどのランタイム設定)を通じて設定できます。

設定の優先順位

  1. 環境変数 -- 最高優先度、すべてを上書き
  2. config.jsonファイル -- 起動時に読み込まれる
  3. デフォルト値 -- 何も指定されていない場合に使用

設定ファイル

作業ディレクトリにconfig.jsonを作成します(またはDockerでマウント):

json
{
  "server": {
    "port": "8000",
    "primary_domain": "https://dist.example.com",
    "secondary_domains": [
      "https://cdn1.example.com",
      "https://cdn2.example.com"
    ],
    "organization": "Your Company Name",
    "bundle_id_prefix": "com.yourcompany.fenfa",
    "data_dir": "data",
    "db_path": "data/fenfa.db",
    "dev_proxy_front": "",
    "dev_proxy_admin": ""
  },
  "auth": {
    "upload_tokens": ["your-upload-token"],
    "admin_tokens": ["your-admin-token"]
  }
}

サーバー設定

キータイプデフォルト説明
server.portstring"8000"HTTPリッスンポート
server.primary_domainstring"http://localhost:8000"マニフェスト、コールバック、ダウンロードリンクで使用される公開URL
server.secondary_domainsstring[][]追加ドメイン(CDN、代替アクセス)
server.organizationstring"Fenfa Distribution"iOSモバイル設定プロファイルに表示される組織名
server.bundle_id_prefixstring""生成されたプロファイルのバンドルIDプレフィックス
server.data_dirstring"data"SQLiteデータベース用ディレクトリ
server.db_pathstring"data/fenfa.db"明示的なデータベースファイルパス
server.dev_proxy_frontstring""公開ページ用Vite開発サーバーURL(開発時のみ)
server.dev_proxy_adminstring""管理パネル用Vite開発サーバーURL(開発時のみ)

プライマリドメイン

primary_domain設定はiOS OTA配布にとって重要です。エンドユーザーがアクセスするHTTPS URLでなければなりません。iOSマニフェストファイルはダウンロードリンクにこのURLを使用し、UDIDコールバックはこのドメインにリダイレクトします。

認証

キータイプデフォルト説明
auth.upload_tokensstring[]["dev-upload-token"]アップロードAPIのトークン
auth.admin_tokensstring[]["dev-admin-token"]管理APIのトークン(アップロード権限を含む)

デフォルトトークンを変更する

デフォルトトークン(dev-upload-tokendev-admin-token)は開発用のみです。プロダクションにデプロイする前に必ず変更してください。

各スコープで複数のトークンがサポートされており、異なるCI/CDパイプラインやチームメンバーに異なるトークンを発行し、個別に取り消せます。

環境変数

環境変数で任意の設定値を上書きします:

変数設定の同等物説明
FENFA_PORTserver.portHTTPリッスンポート
FENFA_DATA_DIRserver.data_dirデータベースディレクトリ
FENFA_PRIMARY_DOMAINserver.primary_domain公開ドメインURL
FENFA_ADMIN_TOKENauth.admin_tokens[0]管理トークン(最初のトークンを置き換え)
FENFA_UPLOAD_TOKENauth.upload_tokens[0]アップロードトークン(最初のトークンを置き換え)

例:

bash
FENFA_PORT=9000 \
FENFA_PRIMARY_DOMAIN=https://dist.example.com \
FENFA_ADMIN_TOKEN=secure-random-token \
./fenfa

ストレージ設定

ローカルストレージ(デフォルト)

ファイルは作業ディレクトリに対する相対パスuploads/{product_id}/{variant_id}/{release_id}/filename.extに保存されます。追加設定は不要です。

S3互換ストレージ

管理パネルの設定 > ストレージでS3ストレージを設定するか、APIを通じて設定します:

bash
curl -X PUT http://localhost:8000/admin/api/settings \
  -H "X-Auth-Token: YOUR_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "storage_type": "s3",
    "s3_endpoint": "https://account-id.r2.cloudflarestorage.com",
    "s3_bucket": "fenfa-uploads",
    "s3_access_key": "your-access-key",
    "s3_secret_key": "your-secret-key",
    "s3_public_url": "https://cdn.example.com"
  }'

サポートされるプロバイダー:

  • Cloudflare R2 -- 外部転送料金なし、S3互換
  • AWS S3 -- 標準S3
  • MinIO -- セルフホスト型S3互換ストレージ
  • その他のS3互換プロバイダー

アップロードドメイン

プライマリドメインにファイルサイズのCDN制限がある場合は、大容量ファイルのアップロード時にCDN制限をバイパスする別ドメインとしてupload_domainを設定します。

Apple Developer API

デバイスの自動登録のためにApple Developer APIの認証情報を設定します。管理パネルの設定 > Apple Developer APIまたは管理APIを通じて設定します:

フィールド説明
apple_key_idApp Store ConnectのAPIキーID
apple_issuer_id発行者ID(UUID形式)
apple_private_keyPEM形式の秘密鍵コンテンツ
apple_team_idApple DeveloperチームID

セットアップ手順についてはiOS配布を参照してください。

データベース

FenfaはGORMを通じてSQLiteを使用します。データベースファイルは設定されたdb_pathに自動的に作成されます。マイグレーションは起動時に自動的に実行されます。

バックアップ

Fenfaをバックアップするには、SQLiteデータベースファイルとuploads/ディレクトリをコピーします。S3ストレージの場合、ローカルバックアップが必要なのはデータベースファイルのみです。

開発設定

ホットリロードを使用したローカル開発の場合:

json
{
  "server": {
    "dev_proxy_front": "http://localhost:5173",
    "dev_proxy_admin": "http://localhost:5174"
  }
}

dev_proxy_frontまたはdev_proxy_adminが設定されている場合、FenfaはVite開発サーバーへのリクエストをプロキシし、組み込みフロントエンドを提供する代わりにホットモジュール置換を使用します。

次のステップ

Released under the Apache-2.0 License.