Files
pvemanager/backend/.env.example
markmorado aebb726231
All checks were successful
Backend Tests / pytest (Python 3.12) (push) Successful in 56s
Deploy to Production / Trigger production update (push) Successful in 7s
perf(appstore): быстрый синк Umbrel — иконки с CDN параллельно + стартовый синк
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>
2026-07-09 01:40:39 +05:00

68 lines
3.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================
# 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