docs: refactor docs structure
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Caddy
|
||||
|
||||
Вариант `deploy/examples/caddy` подходит, если нужен самый простой публичный HTTPS. Caddy сам выпускает и продлевает сертификаты Let's Encrypt.
|
||||
|
||||
## Требования
|
||||
|
||||
- На сервере открыты входящие `80/tcp` и `443/tcp`.
|
||||
- DNS-записи `WEBHOOK_HOST` и `MINIAPP_HOST` смотрят на этот сервер.
|
||||
- В `.env` заполнены домены, токены, секреты и доступы к Remnawave.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
cd deploy/examples/caddy
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Минимально поменяйте:
|
||||
|
||||
- `WEBHOOK_HOST` и `MINIAPP_HOST`;
|
||||
- `BOT_TOKEN`, `ADMIN_IDS`;
|
||||
- `POSTGRES_PASSWORD`;
|
||||
- `WEBAPP_SESSION_SECRET`, `WEBHOOK_SECRET_TOKEN`;
|
||||
- `PANEL_API_URL`, `PANEL_API_KEY`, `PANEL_WEBHOOK_SECRET`.
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
docker compose logs -f caddy backend worker frontend
|
||||
```
|
||||
|
||||
Если нужна нестандартная логика Caddy, правьте `deploy/examples/caddy/Caddyfile` и перезапускайте:
|
||||
|
||||
```bash
|
||||
docker compose up -d --force-recreate caddy
|
||||
```
|
||||
@@ -0,0 +1,39 @@
|
||||
# Deploy examples
|
||||
|
||||
В `deploy/examples` лежат самодостаточные Compose-варианты для разных способов публикации Minishop. Каждый пример запускается из своей директории и содержит собственный `docker-compose.yml`, `.env.example` и README.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
После старта проверяйте:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
docker compose logs -f backend worker frontend
|
||||
```
|
||||
|
||||
## Какой вариант выбрать
|
||||
|
||||
| Вариант | Когда использовать | Где лежит |
|
||||
| --- | --- | --- |
|
||||
| [Caddy](caddy.md) | Нужен самый простой публичный HTTPS с автоматическими сертификатами Let's Encrypt. | `deploy/examples/caddy` |
|
||||
| [Nginx](nginx.md) | Уже используете Nginx и готовы положить TLS-сертификаты рядом с примером. | `deploy/examples/nginx` |
|
||||
| [Pangolin/Newt](newt.md) | Публикуете сервисы через туннель без входящих портов на сервере приложения. | `deploy/examples/newt` |
|
||||
| [No proxy](no-proxy.md) | Нужно напрямую открыть порты backend/frontend или проверить стек без reverse proxy. | `deploy/examples/no-proxy` |
|
||||
|
||||
## Два публичных URL
|
||||
|
||||
Для production обычно нужны два домена:
|
||||
|
||||
- webhook/backend URL для Telegram, платежных систем и Remnawave webhooks;
|
||||
- Mini App/frontend URL для Telegram Mini App, Web App и админки.
|
||||
|
||||
Пример:
|
||||
|
||||
```text
|
||||
https://webhooks.example.com -> backend:8080
|
||||
https://app.example.com -> frontend:80
|
||||
```
|
||||
@@ -0,0 +1,38 @@
|
||||
# Pangolin / Newt
|
||||
|
||||
Вариант `deploy/examples/newt` подходит, если сервер приложения не должен принимать входящие соединения. Newt подключается к Pangolin, а публичные домены настраиваются ресурсами в панели Pangolin.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
cd deploy/examples/newt
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
В `.env` заполните:
|
||||
|
||||
- `WEBHOOK_HOST` и `MINIAPP_HOST` - публичные домены ресурсов в Pangolin;
|
||||
- `PANGOLIN_ENDPOINT`, `NEWT_ID`, `NEWT_SECRET` - значения из настроек site/client в Pangolin;
|
||||
- обычные переменные приложения: `BOT_TOKEN`, `ADMIN_IDS`, `POSTGRES_PASSWORD`, секреты и доступ к Remnawave.
|
||||
|
||||
## Ресурсы Pangolin
|
||||
|
||||
Создайте два HTTP-ресурса для Newt site:
|
||||
|
||||
| Публичный домен | Upstream |
|
||||
| --- | --- |
|
||||
| `https://webhooks.example.com` | `http://backend:8080` |
|
||||
| `https://app.example.com` | `http://frontend:80` |
|
||||
|
||||
Домены в Pangolin должны совпадать с `WEBHOOK_HOST` и `MINIAPP_HOST`.
|
||||
|
||||
Официальная инструкция Pangolin по установке Newt site: <https://docs.pangolin.net/manage/sites/install-site>.
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
docker compose logs -f newt backend worker frontend
|
||||
```
|
||||
@@ -0,0 +1,44 @@
|
||||
# Nginx
|
||||
|
||||
Вариант `deploy/examples/nginx` поднимает Nginx в той же Docker-сети, что и приложение. Он подходит, если у вас уже есть TLS-сертификаты или нужен ручной контроль Nginx-конфига.
|
||||
|
||||
## Маршрутизация
|
||||
|
||||
- `WEBHOOK_HOST` проксируется в `backend:8080`.
|
||||
- `MINIAPP_HOST` проксируется в `frontend:80`.
|
||||
- `frontend` сам проксирует внутренние `/api`, `/auth` и ассеты тем в `backend:8081`.
|
||||
|
||||
## Подготовка
|
||||
|
||||
```bash
|
||||
cd deploy/examples/nginx
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
Положите TLS-сертификаты в `ssl/`:
|
||||
|
||||
```text
|
||||
ssl/
|
||||
webhooks.example.com/
|
||||
fullchain.pem
|
||||
privkey.pem
|
||||
app.example.com/
|
||||
fullchain.pem
|
||||
privkey.pem
|
||||
```
|
||||
|
||||
Имена папок должны совпадать с `WEBHOOK_HOST` и `MINIAPP_HOST` в `.env`.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
docker compose logs -f nginx backend worker frontend
|
||||
```
|
||||
|
||||
Если нужно поменять заголовки, лимиты или TLS-настройки, правьте `deploy/examples/nginx/nginx.conf.template` и перезапускайте:
|
||||
|
||||
```bash
|
||||
docker compose up -d --force-recreate nginx
|
||||
```
|
||||
@@ -0,0 +1,35 @@
|
||||
# Без reverse proxy
|
||||
|
||||
Вариант `deploy/examples/no-proxy` напрямую публикует HTTP-порты backend и frontend. Он удобен для локальной проверки, внутренней сети или ситуации, когда HTTPS завершается внешней платформой.
|
||||
|
||||
## Порты
|
||||
|
||||
- backend/webhooks: `WEB_SERVER_BIND`, по умолчанию `0.0.0.0:8080`;
|
||||
- frontend/Mini App: `FRONTEND_BIND`, по умолчанию `0.0.0.0:8082`.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
cd deploy/examples/no-proxy
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Важно про HTTPS
|
||||
|
||||
Контейнеры приложения сами не выпускают TLS-сертификаты. Для реального Telegram webhook и Mini App публичные URL должны быть HTTPS.
|
||||
|
||||
Используйте этот вариант, если:
|
||||
|
||||
- проверяете стек локально;
|
||||
- публикуете сервисы только во внутренней сети;
|
||||
- TLS уже завершается внешним reverse proxy, load balancer или платформой.
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:8080/healthz
|
||||
curl http://127.0.0.1:8082/health
|
||||
docker compose logs -f backend worker frontend
|
||||
```
|
||||
Reference in New Issue
Block a user