A1: иконки Umbrel тянутся пофайлово с GitHub Pages CDN в пуле из 16 потоков (<app-id>/icon.svg) вместо тяжёлого tarball галереи со скриншотами. Синк Umbrel: ~7.5 мин → ~13-17с, 379/379 иконок. Настройка UMBREL_APPSTORE_GALLERY_CDN заменяет UMBREL_APPSTORE_GALLERY_REPO. 404/сетевой сбой отдельного запроса просто пропускает иконку, не роняя синк. A2: на свежем деплое каталог пуст, а IntervalTrigger впервые сработает лишь через сутки. Теперь при пустом каталоге планировщик ставит разовый синк немедленно (trigger=date) — каталог наполняется на старте без ручной кнопки. Проверено на стенде: стартовый синк наполнил каталог 644 (runtipi 265 + umbrel 379) за 16.5с; эндпоинт логотипа отдаёт 200 image/svg+xml. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
68 lines
3.0 KiB
Plaintext
68 lines
3.0 KiB
Plaintext
# ============================================
|
||
# Server Panel Backend Configuration
|
||
# ============================================
|
||
|
||
# Application
|
||
PANEL_NAME=Server Panel
|
||
DEBUG=false
|
||
LOG_LEVEL=INFO
|
||
|
||
# Database (matches docker-compose)
|
||
DB_HOST=db
|
||
DB_PORT=5432
|
||
DB_USER=serverpanel
|
||
DB_PASSWORD=serverpanel_secure_password
|
||
DB_NAME=serverpanel
|
||
DATABASE_URL=postgresql://serverpanel:serverpanel_secure_password@db:5432/serverpanel
|
||
|
||
# JWT Authentication
|
||
SECRET_KEY=your-very-secure-secret-key-change-this-in-production-minimum-32-chars
|
||
ALGORITHM=HS256
|
||
ACCESS_TOKEN_EXPIRE_MINUTES=1440
|
||
|
||
# SSH Configuration
|
||
SSH_TIMEOUT=10
|
||
DEFAULT_SSH_USER=root
|
||
DEFAULT_SSH_PORT=22
|
||
# Reject SSH connections to hosts with unknown/changed host keys (mitigates MITM).
|
||
# Enable in production once your servers' host keys are in known_hosts.
|
||
SSH_REJECT_UNKNOWN_HOSTS=false
|
||
|
||
# Security
|
||
# In production set to your actual domain(s), e.g.: https://panel.example.com
|
||
CORS_ORIGINS=*
|
||
ALLOWED_HOSTS=localhost,127.0.0.1
|
||
# IMPORTANT: Change this before first deployment!
|
||
ADMIN_PASSWORD=admin123
|
||
|
||
# Fernet encryption key for sensitive DB fields (Proxmox passwords, cloud-init passwords).
|
||
# Generate with: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
|
||
# WARNING: Keep this key safe — losing it means losing access to encrypted passwords.
|
||
# If not set, passwords are stored as plaintext (insecure).
|
||
FERNET_KEY=
|
||
|
||
# Update Check Configuration
|
||
# Note: DISABLE_UPDATE_CHECK and GITHUB_TOKEN are managed via root .env
|
||
# (see ../.env.example) and passed in docker-compose. Uncomment below only
|
||
# if running backend standalone without compose.
|
||
# DISABLE_UPDATE_CHECK=false
|
||
# GITHUB_TOKEN=
|
||
|
||
# App Store (модуль каталога self-hosted приложений)
|
||
# Золотой LXC-шаблон (vztmpl) с предустановленным Docker — из него клонируются
|
||
# контейнеры приложений. Обязателен для установки. Подготовка: docs/golden-template.md.
|
||
APPSTORE_GOLDEN_TEMPLATE=local:vztmpl/golden-docker_12_amd64.tar.zst
|
||
# Архитектура целевых нод (amd64|arm64) — для пометки неподдерживаемых приложений.
|
||
APPSTORE_HOST_ARCH=amd64
|
||
#
|
||
# Источники каталога (через запятую): runtipi, umbrel. По умолчанию только
|
||
# runtipi. Umbrel включается явно — тогда при синхронизации подтянутся ~380
|
||
# приложений из getumbrel/umbrel-apps + их иконки из галереи.
|
||
# APPSTORE_SOURCES=runtipi,umbrel
|
||
APPSTORE_SOURCES=runtipi
|
||
# Репозитории Umbrel (нужны только если включён источник umbrel):
|
||
# UMBREL_APPSTORE_REPO=getumbrel/umbrel-apps
|
||
# UMBREL_APPSTORE_REF=master
|
||
# Иконки Umbrel лежат отдельно (<app-id>/icon.svg) — тянутся пофайлово с CDN:
|
||
# UMBREL_APPSTORE_GALLERY_CDN=https://getumbrel.github.io/umbrel-apps-gallery
|