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.