Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Конфигурация

Fenfa конфигурируется через переменные окружения или файл config.json. Переменные окружения имеют приоритет над файлом конфигурации.

Переменные окружения

Основные настройки

ПеременнаяПо умолчаниюОписание
FENFA_PORT8000Порт HTTP-сервера
FENFA_DATA_DIR/dataДиректория для SQLite-базы данных
FENFA_PRIMARY_DOMAINhttp://localhost:8000Публичный URL (используется в iOS-манифестах)
FENFA_UPLOAD_DIR/app/uploadsДиректория для хранения файлов (без S3)

Аутентификация

ПеременнаяОписание
FENFA_ADMIN_TOKENТокен для административных операций
FENFA_UPLOAD_TOKENТокен для загрузки артефактов CI/CD

Безопасность токенов

Используйте криптографически случайные токены длиной не менее 32 символов. Храните их в секретах CI/CD, а не в коде.

bash
# Генерация безопасного токена
openssl rand -hex 32

S3-совместимое хранилище

ПеременнаяОписание
FENFA_S3_ENDPOINTURL эндпоинта S3 (например, https://s3.amazonaws.com)
FENFA_S3_BUCKETИмя S3-бакета
FENFA_S3_REGIONРегион S3 (например, us-east-1)
FENFA_S3_ACCESS_KEYAWS Access Key ID
FENFA_S3_SECRET_KEYAWS Secret Access Key

При установке FENFA_S3_ENDPOINT загруженные файлы хранятся в S3, а не локально.

Файл config.json

Альтернативно, создайте файл config.json:

json
{
  "port": 8000,
  "data_dir": "/data",
  "upload_dir": "/app/uploads",
  "primary_domain": "https://dist.example.com",
  "admin_token": "your-admin-token",
  "upload_token": "your-upload-token",
  "s3": {
    "endpoint": "https://s3.amazonaws.com",
    "bucket": "my-app-dist",
    "region": "us-east-1",
    "access_key": "AKIAIOSFODNN7EXAMPLE",
    "secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  }
}

Укажите путь к файлу при запуске:

bash
./fenfa --config /path/to/config.json

Важность FENFA_PRIMARY_DOMAIN

FENFA_PRIMARY_DOMAIN используется для генерации ссылок в iOS-манифестах plist. Если он установлен неверно, iOS OTA-установка не будет работать.

  • Должен начинаться с https:// (iOS требует HTTPS)
  • Должен быть полным публичным URL (без завершающего слэша)
  • Примеры: https://dist.example.com, https://apps.company.internal

Настройки S3 и CDN

Использование S3-совместимого хранилища (Cloudflare R2, MinIO, AWS S3):

bash
# AWS S3
FENFA_S3_ENDPOINT=https://s3.amazonaws.com
FENFA_S3_BUCKET=my-dist-bucket
FENFA_S3_REGION=us-east-1
FENFA_S3_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE
FENFA_S3_SECRET_KEY=...

# Cloudflare R2
FENFA_S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
FENFA_S3_BUCKET=fenfa-dist
FENFA_S3_REGION=auto
FENFA_S3_ACCESS_KEY=<r2-access-key>
FENFA_S3_SECRET_KEY=<r2-secret-key>

Следующие шаги

Released under the Apache-2.0 License.