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
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:
1 parent
ebf296542c
commit
1633b28c1a
10 files changed
+371
-9
No files matched your search
+15
-3
@@ -1,5 +1,8 @@
|
||||
# Развёртывание
|
||||
|
||||
> Пошаговая инструкция «с нуля до работающего сервера на домене» — [install-guide.md](install-guide.md).
|
||||
> Здесь — справочник: требования, каталоги, сервисы, переменные.
|
||||
|
||||
## Требования к серверу
|
||||
|
||||
- Linux x86_64 (нужен mount propagation для storage-agent), Docker 24+, Docker Compose v2.
|
||||
@@ -22,7 +25,8 @@
|
||||
├── models/ # модели Essentia (скачиваются при первом старте analyzer)
|
||||
├── updates/ # кэш APK релизов
|
||||
├── uploads/ # staging очереди на добавление (размер ≈ лимит очереди, по умолчанию 10 ГБ)
|
||||
└── backups/
|
||||
├── backups/
|
||||
└── caddy/ # сертификаты Let's Encrypt (если используется compose.tls.yaml)
|
||||
```
|
||||
|
||||
Перед первым запуском: `mkdir -p /srv/pipu/library && mount --bind /srv/pipu/library /srv/pipu/library && mount --make-rshared /srv/pipu/library`
|
||||
@@ -125,8 +129,16 @@ services:
|
||||
|
||||
## TLS
|
||||
|
||||
- Свой домен — Let's Encrypt (через отдельный certbot / acme.sh или Caddy перед nginx).
|
||||
- Локальная сеть — свой CA; сертификат CA нужно установить на устройства или включить пиннинг в мобильном (см. mobile.md).
|
||||
- **Свой домен (рекомендуется)** — `deploy/compose.tls.yaml` добавляет Caddy, который получает и продлевает сертификат
|
||||
Let's Encrypt для `DOMAIN` и проксирует на nginx; nginx тогда наружу не открыт. Включается строкой
|
||||
`COMPOSE_FILE=compose.yaml:compose.tls.yaml` в `.env`.
|
||||
- **Свой reverse proxy** (Traefik, NPM, nginx) — без `compose.tls.yaml`, прокси направляется на `HTTP_PORT`
|
||||
(например `127.0.0.1:8081`); нужны `X-Forwarded-*`, тело до 16 МБ, без буферизации ответов.
|
||||
- nginx внутри образа `web` берёт схему и IP клиента из `X-Forwarded-Proto` / `X-Forwarded-For`, если запрос пришёл
|
||||
из частной сети (docker, LAN).
|
||||
- Локальная сеть без домена — свой CA; сертификат CA нужно установить на устройства или включить пиннинг в мобильном (см. mobile.md).
|
||||
|
||||
Пошаговая установка на домен — [install-guide.md](install-guide.md).
|
||||
|
||||
## Бэкапы
|
||||
|
||||
|
||||
Reference in new issue
Block a user