docs: update deployment examples

This commit is contained in:
3252a8
2026-05-29 15:33:09 +03:00
parent 1329eb4fe2
commit 3186be1e3e
10 changed files with 27 additions and 29 deletions
+1 -1
View File
@@ -96,7 +96,7 @@ docker compose logs -f backend worker frontend
Для каталога тарифов используется `TARIFFS_CONFIG_PATH` со значением по умолчанию `data/tariffs.json`. Пример формата лежит в [data/tariffs.example.json](data/tariffs.example.json), подробности - в [docs/features/tariffs.md](docs/features/tariffs.md).
Если в Docker Compose включаете bind mount `./data:/app/data`, заранее создайте каталог и отдайте его пользователю контейнера. Это нужно для сохранения `data/tariffs.json`, каталога тем `data/themes`, кеша логотипа Web App и animated emoji:
В compose-примерах `/app/data` монтируется из папки `./data` рядом с `docker-compose.yml`. Заранее создайте каталог и отдайте его пользователю контейнера. Это нужно для сохранения `data/tariffs.json`, каталога тем `data/themes`, кеша логотипа Web App и animated emoji:
```bash
mkdir -p data/themes data/webapp-logo data/webapp-emoji
+1
View File
@@ -1,4 +1,5 @@
**/.env
**/data/
nginx/ssl/*
!nginx/ssl/README.md
+2
View File
@@ -4,6 +4,8 @@
Эта папка хранит только рабочие compose-примеры и конфиги. Подробное описание не дублируется здесь, чтобы сайт документации и навигация из README использовали один источник.
Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml`. Для кастомных тем создайте `data/themes`.
| Папка | Документация |
| --- | --- |
| `caddy` | [Развертывание с Caddy](../../docs/getting-started/deployment.md#caddy-рекомендуемый-вариант) |
+3 -5
View File
@@ -48,7 +48,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
networks:
- remnawave-shop
depends_on:
@@ -66,7 +66,7 @@ services:
WEBAPP_ENABLED: ${WEBAPP_ENABLED:-true}
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.1,::1,172.16.0.0/12}
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:${COMPOSE_RESTORE_MODE:-rw}
networks:
- remnawave-shop
@@ -91,7 +91,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:ro
networks:
- remnawave-shop
@@ -149,8 +149,6 @@ volumes:
name: remnawave-minishop-db-data
redis-data:
name: remnawave-minishop-redis-data
shop-data:
name: remnawave-minishop-shop-data
caddy-data:
name: remnawave-minishop-caddy-data
caddy-config:
+3 -5
View File
@@ -48,7 +48,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
networks:
- remnawave-shop
depends_on:
@@ -66,7 +66,7 @@ services:
WEBAPP_ENABLED: ${WEBAPP_ENABLED:-true}
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.1,::1,172.16.0.0/12}
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:${COMPOSE_RESTORE_MODE:-rw}
networks:
- remnawave-shop
@@ -91,7 +91,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:ro
networks:
- remnawave-shop
@@ -144,5 +144,3 @@ volumes:
name: remnawave-minishop-db-data
redis-data:
name: remnawave-minishop-redis-data
shop-data:
name: remnawave-minishop-shop-data
+3 -5
View File
@@ -48,7 +48,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
networks:
- remnawave-shop
depends_on:
@@ -66,7 +66,7 @@ services:
WEBAPP_ENABLED: ${WEBAPP_ENABLED:-true}
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.1,::1,172.16.0.0/12}
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:${COMPOSE_RESTORE_MODE:-rw}
networks:
- remnawave-shop
@@ -91,7 +91,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:ro
networks:
- remnawave-shop
@@ -148,5 +148,3 @@ volumes:
name: remnawave-minishop-db-data
redis-data:
name: remnawave-minishop-redis-data
shop-data:
name: remnawave-minishop-shop-data
+3 -5
View File
@@ -48,7 +48,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
networks:
- remnawave-shop
depends_on:
@@ -68,7 +68,7 @@ services:
ports:
- "${WEB_SERVER_BIND:-0.0.0.0:8080}:8080"
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:${COMPOSE_RESTORE_MODE:-rw}
networks:
- remnawave-shop
@@ -93,7 +93,7 @@ services:
environment:
<<: *app_environment
volumes:
- shop-data:/app/data
- ./data:/app/data
- ${COMPOSE_BACKUP_SOURCE:-.}:/app/compose-source:ro
networks:
- remnawave-shop
@@ -132,5 +132,3 @@ volumes:
name: remnawave-minishop-db-data
redis-data:
name: remnawave-minishop-redis-data
shop-data:
name: remnawave-minishop-shop-data
+6 -1
View File
@@ -49,6 +49,8 @@ WEBAPP_DEFAULT_THEME=
`WEBAPP_DEFAULT_THEME` опционален. Если он задан и совпадает с ключом темы, он переопределяет `default: true` в `theme.json`. Если переменная пустая, дефолт выбирается из дескрипторов тем.
В compose-примерах `data/themes` - это локальная папка рядом с выбранным `docker-compose.yml`; она монтируется в контейнер как `/app/data/themes`. Правки в `backend/bot/app/web/themes` попадают в прод только при сборке собственного образа; опубликованный образ их не видит.
Важно: `WEBAPP_PRIMARY_COLOR`, `WEBAPP_LOGO_URL`, `WEBAPP_LOGO_USE_EMOJI`, `WEBAPP_LOGO_EMOJI` и `WEBAPP_LOGO_EMOJI_FONT` больше не являются рабочим способом первичной настройки через `.env`. Эти значения редактируются в админке и сохраняются как overrides в базе. Тема при этом может использовать сохраненный primary color как fallback accent.
## Контракт `theme.json`
@@ -266,7 +268,7 @@ CSS можно писать для пользовательской части
2. Создайте папку в `WEBAPP_THEMES_DIR`.
В Docker по умолчанию это `data/themes`. Если включен bind mount `./data:/app/data`, убедитесь, что контейнер может писать в `data`.
В Docker это `data/themes` рядом с выбранным `docker-compose.yml`, внутри контейнера путь будет `/app/data/themes`. Убедитесь, что контейнер может писать в `data`.
```bash
mkdir -p data/themes/neon
@@ -314,6 +316,8 @@ CSS можно писать для пользовательской части
Начинайте с переопределения CSS-переменных на `.theme-key-neon.app-shell`, затем переходите к конкретным компонентам. Проверяйте минимум: главная, `/install`, публичная `/s/<token>`, оплата, настройки, модалки, админский дашборд, таблица пользователей, редактор тарифов.
После ручного изменения CSS поднимите `assets_version` в `theme.json` или сделайте жесткую перезагрузку страницы: тема подключается с `?v=<assets_version>`, и браузер может держать старую версию.
9. Добавьте ассеты при необходимости.
Положите картинки в подпапку темы и ссылайтесь на них через `/webapp-theme-assets/<key>/...`. Не используйте относительные пути вроде `url("icons/x.png")`, если CSS может быть подключен с другого URL-уровня; явный `/webapp-theme-assets/neon/icons/x.png` надежнее.
@@ -357,6 +361,7 @@ CSS можно писать для пользовательской части
Если CSS не применился:
- проверьте `css_file` и URL `/webapp-theme-css/<key>/<css_file>`;
- если CSS уже был открыт в браузере, увеличьте `assets_version` в `theme.json` или очистите кеш;
- убедитесь, что файл меньше 512 KiB;
- начинайте селекторы с `.theme-key-<key>`;
- откройте `/home?theme_preview=<key>` в новом окне, чтобы исключить сохраненный старый выбор.
+2 -2
View File
@@ -82,9 +82,9 @@ openssl rand -hex 32
## Файловые данные
В штатном `docker-compose.yml` данные хранятся в named volume `shop-data`. Внутри него лежат тарифы, темы, логотипы и прочие файловые данные приложения.
В compose-примерах данные монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml`. Внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения.
Если для локальной разработки включаете bind mount `./data:/app/data`, заранее создайте каталоги и отдайте их пользователю контейнера:
Перед первым запуском создайте каталоги и отдайте их пользователю контейнера:
```bash
mkdir -p data/themes data/webapp-logo data/webapp-emoji data/tariffs
+3 -5
View File
@@ -331,14 +331,12 @@ distributed lock; код подготовлен к нескольким репл
- `postgres-data`;
- `redis-data`;
- `shop-data`;
В Caddy-варианте также используются `caddy-data` и `caddy-config`.
`shop-data` монтируется целиком в `/app/data`; внутри него лежат тарифы, темы, логотипы и прочие
файловые данные приложения.
Файлы приложения монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml` в
`/app/data`; внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения.
Если вместо именованного volume включаете bind mount `./data:/app/data`, на сервере заранее дайте права
пользователю контейнера `10001`:
Перед первым запуском на сервере заранее дайте права пользователю контейнера `10001`:
```bash
mkdir -p data/themes data/webapp-logo data/webapp-emoji data/tariffs