docs(deploy): add install guide for a domain with HTTPS
ci / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 47s
ci / api (push) Successful in 53s
ci / recommender (push) Successful in 37s
ci / ts (packages + web) (push) Successful in 38s
ci / mobile (Metro-бандл Android) (push) Successful in 52s

- docs/install-guide.md: step-by-step server setup (DNS, Docker, install.sh,
  .env, launch, checks), web and Android client setup, own reverse proxy
  variant, updates, backups and troubleshooting
- deploy/compose.tls.yaml + Caddyfile: optional Caddy with automatic
  Let's Encrypt in front of nginx (enabled via COMPOSE_FILE in .env)
- nginx: honour X-Forwarded-Proto/For from private networks
- .env.example: DOMAIN, ACME_EMAIL, COMPOSE_FILE, bootstrap admin vars
- install.sh: create caddy data dirs; release.yml: ship TLS files as assets
- deployment.md, docs index and README link to the guide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-20 00:03:26 +03:00
1 parent ebf296542c
commit 1633b28c1a
10 files changed
+371 -9

No files matched your search

+12
View File
@@ -1,9 +1,17 @@
# Скопируйте в .env (install.sh делает это сам и генерирует секреты). Описание — docs/deployment.md.
# --- Образы ---
# Реестр Gitea: <хост>/<владелец>, например gitea.hsrv.site/mrleo1nid
REGISTRY=git.example.lan/owner
PIPU_VERSION=0.1.0
PIPU_DATA=/srv/pipu
# --- Домен и 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 заполнит случайными значениями) ---
@@ -11,6 +19,10 @@ POSTGRES_PASSWORD=
MEILI_MASTER_KEY=
INTERNAL_TOKEN=
# --- Первый администратор (необязательно; иначе пароль генерируется и выводится в лог api один раз) ---
#BOOTSTRAP_ADMIN_USERNAME=admin
#BOOTSTRAP_ADMIN_PASSWORD=
# --- api / recommender ---
# DATABASE_URL собирается в compose.yaml из POSTGRES_PASSWORD
REDIS_URL=redis://redis:6379/0