ci / ts / ts (packages + web) (push) Canceled after 1m0s
ci / api / api (push) Successful in 46s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 56s
ci / db / db (push) Successful in 1m32s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m27s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m31s
Search hits omit album covers and artist images. The worker now reads the full song and artist, stores the description, and leaves Genius image URLs unchanged on mobile. Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
3.1 KiB
Bash
57 lines
3.1 KiB
Bash
# Скопируйте в .env (install.sh делает это сам и генерирует секреты). Описание — docs/deployment.md.
|
||
|
||
# --- Версия и данные ---
|
||
# PIPU_VERSION проставляет update.sh по git-тегу — вручную не менять
|
||
PIPU_VERSION=dev
|
||
PIPU_DATA=/srv/pipu
|
||
# Папка с музыкой на локальном диске сервера (источники type=local), например смонтированный диск.
|
||
# Пусто — $PIPU_DATA/library-host. NFS-хранилища сюда не относятся: их подключает админка.
|
||
LIBRARY_HOST=
|
||
# Владелец файлов, которые импорт загрузок пишет в хранилища (UID/GID владельца музыки на файловом сервере).
|
||
# -1 — не менять (файлы будут принадлежать root агента).
|
||
PIPU_FILE_UID=-1
|
||
PIPU_FILE_GID=-1
|
||
|
||
# --- Домен и HTTPS (docs/install-guide.md) ---
|
||
# Вариант А: встроенный Caddy с Let's Encrypt — оставьте строку COMPOSE_FILE и заполните DOMAIN, ACME_EMAIL.
|
||
# Вариант Б: свой reverse proxy — закомментируйте COMPOSE_FILE и направьте прокси на HTTP_PORT.
|
||
COMPOSE_FILE=compose.yaml:compose.tls.yaml
|
||
DOMAIN=music.example.com
|
||
ACME_EMAIL=admin@example.com
|
||
HTTP_PORT=80
|
||
|
||
# --- Секреты (install.sh заполнит случайными значениями) ---
|
||
POSTGRES_PASSWORD=
|
||
MEILI_MASTER_KEY=
|
||
INTERNAL_TOKEN=
|
||
# Ключ подписи access-токенов (Ed25519, base64 от 32 случайных байт). install.sh и update.sh
|
||
# создают его, если строки нет. Смена ключа разлогинит всех на ≤15 мин — старый можно оставить
|
||
# в JWT_PREVIOUS_KEYS (через запятую), пока не истекут выданные им токены.
|
||
JWT_PRIVATE_KEY=
|
||
# Подпись ссылок на обложки и аудио (base64 от 32 байт); создают install.sh / update.sh.
|
||
STREAM_SIGNING_KEY=
|
||
#JWT_PREVIOUS_KEYS=
|
||
|
||
# --- Первый администратор (необязательно; иначе пароль генерируется и выводится в лог api один раз) ---
|
||
#BOOTSTRAP_ADMIN_USERNAME=admin
|
||
#BOOTSTRAP_ADMIN_PASSWORD=
|
||
|
||
# --- api / recommender ---
|
||
# DATABASE_URL собирается в compose.yaml из POSTGRES_PASSWORD
|
||
REDIS_URL=redis://redis:6379/0
|
||
MEILI_URL=http://meilisearch:7700
|
||
LOG_LEVEL=info
|
||
SUPPORTED_LOCALES=ru,en
|
||
MIN_ANDROID_VERSION_CODE=0
|
||
|
||
# Genius: empty token disables enrichment. Queue and controls: Admin → Sources.
|
||
GENIUS_ACCESS_TOKEN=
|
||
GENIUS_REQUEST_INTERVAL=2s
|
||
|
||
# --- Самообновление Android (M5) ---
|
||
# Пусто — install.sh и update.sh возьмут из origin клона (например, https://gitea.example.com и owner/pipu-music).
|
||
# Если сервер не видит Gitea по внешнему адресу, укажите внутренний: GITEA_URL=http://10.0.0.5:3000
|
||
GITEA_URL=
|
||
GITEA_REPO=
|
||
GITEA_TOKEN=
|