# Network QU_HOST=127.0.0.1 QU_PORT=8967 QU_PUBLIC_BASE_URL=https://catalog.example.org # Storage: database, git archives, SDK zips, build cache, assets, logs QU_DATA_DIR=/var/lib/qunleashed-catalog # Secrets QU_SHARED_SECRET=change-me-long-random-string # HMAC key the app signs /api/v1/builds with QU_CI_TOKEN=change-me-too # Bearer for the catalog CI (bundle submit, delete, source check) QU_ADMIN_TOKEN= # Bearer for /api/v1/admin/*; empty = admin endpoints disabled QU_SIGNING_KEY_HEX= # 32-byte Ed25519 seed in hex; empty = artifacts unsigned QU_SIGNING_KID=k1 QU_APP_NAME=qUnleashed # must appear in the User-Agent of signed requests # Uploads. Your catalog's CI sends source zips to POST /api/v1/sources/upload # with QU_CI_TOKEN; one request without a valid token bans the address. QU_BAN_DAYS=1 QU_TRUST_PROXY=1 # take the client address from X-Forwarded-For (behind nginx) QU_RATE_LIMIT_PER_MIN=600 # requests per minute per address on /api/; 0 = off # CORS for browser clients: comma-separated origins, * for any, empty = off QU_CORS_ORIGINS= # Repositories the server reads itself once a day. Empty = disabled. QU_OFW_CATALOG_REPO=https://github.com/flipperdevices/flipper-application-catalog.git QU_MENUSTYLES_REPO= QU_ANIMATIONS_REPO= QU_SOURCE_CHECK_HOUR_UTC=0 # daily pass: SDK index, then the repositories above # Archive mirror (git push --mirror after every publish), e.g. ssh://git@git.example.org/catalog QU_ARCHIVE_MIRROR_BASE= QU_ARCHIVE_GIT_USER=qUnleashed catalog QU_ARCHIVE_GIT_EMAIL=catalog@example.org # SDK QU_SDK_INDEX_URL=https://up.unleashedflip.com/directory.json QU_SDK_CHANNELS=release,dev # release builds are held; dev builds live QU_CACHE_TTL_DAYS QU_SDK_ACTIVE_DAYS=30 # APIs requested within this window are "active" QU_SDK_DEPLOY_TIMEOUT_SEC=1800 # Builds QU_CACHE_TTL_DAYS=7 # dev and superseded releases; the current release never expires QU_JOB_TTL_HOURS=24 QU_QUEUE_LIMIT=256 QU_BUILD_TIMEOUT_SEC=600 QU_MAX_BUNDLE_MB=128 QU_MAX_UNPACK_MB=512 QU_BUILD_COMMAND_PREFIX= # sandbox wrapper, e.g. "bwrap --unshare-net --ro-bind / / --dev /dev --tmpfs /tmp" QU_WORKERS=1 QU_TOP_KEEP_WARM=50 # how many of the month's top stay built under the latest API QU_ALLOWED_BUNDLE_HOSTS=catalog.flipperzero.one # bundle_url hosts for /api/v1/builds besides this server # Push QU_FCM_SERVICE_ACCOUNT= # path to the Firebase service account JSON; empty = dry run (log only) QU_PUSH_DIGEST_THRESHOLD=3 QU_PUSH_DEBOUNCE_SEC=300