diff --git a/README.md b/README.md index 374e55a..e1e3d8b 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,12 @@ 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 этот файл должен быть доступен не только `backend` и `worker`, но и одноразовому сервису `migrate`: мигратор читает каталог тарифов при привязке существующих подписок к тарифу по умолчанию. В текущих compose-файлах весь `/app/data` уже смонтирован в `migrate`, `backend` и `worker`; если переносите compose вручную, сохраните одинаковый mount для всех трех сервисов. + В compose-примерах `/app/data` монтируется из папки `./data` рядом с `docker-compose.yml`. Заранее создайте каталог и отдайте его пользователю контейнера. Это нужно для сохранения `data/tariffs.json`, каталога тем `data/themes` и кеша логотипа Web App: ```bash -mkdir -p data/themes data/webapp-logo +mkdir -p data/themes data/webapp-logo data/tariffs touch data/locales-overrides.json chown -R 10001:10001 data chmod -R u+rwX data diff --git a/deploy/examples/README.md b/deploy/examples/README.md index 4324672..c329761 100644 --- a/deploy/examples/README.md +++ b/deploy/examples/README.md @@ -4,7 +4,7 @@ Эта папка хранит только рабочие compose-примеры и конфиги. Подробное описание не дублируется здесь, чтобы сайт документации и навигация из README использовали один источник. -Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml`. Для кастомных тем создайте `data/themes`. +Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml` в `migrate`, `backend` и `worker`. Для кастомных тем создайте `data/themes`; для ручного каталога тарифов используйте `data/tariffs.json`. | Папка | Документация | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/docs/features/tariffs.md b/docs/features/tariffs.md index 8780c26..4ed0aee 100644 --- a/docs/features/tariffs.md +++ b/docs/features/tariffs.md @@ -7,6 +7,8 @@ JSON-каталог может содержать несколько тарифов разных моделей: подписки на срок, пакеты трафика без срока действия, разные наборы Internal Squads, лимиты устройств и пакеты докупки. Пример формата: [data/tariffs.example.json](https://github.com/3252a8/remnawave-minishop/blob/main/data/tariffs.example.json). +Важно для Docker: `TARIFFS_CONFIG_PATH` обычно указывает на файл внутри `/app/data`, и этот каталог должен быть доступен `migrate`, `backend` и `worker`. Мигратор тоже читает каталог тарифов, когда привязывает существующие активные подписки без `tariff_key` к тарифу по умолчанию и заполняет тарифные лимиты. В штатных compose-файлах это уже настроено: корневой compose использует `shop-data:/app/data`, а production-примеры - `./data:/app/data` для всех трех сервисов. + Коротко по моделям: - `period` - подписка на срок с месячным лимитом трафика и опциональной докупкой GB поверх месячного лимита; diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md index 93230c7..5165fc2 100644 --- a/docs/getting-started/configuration.md +++ b/docs/getting-started/configuration.md @@ -84,6 +84,8 @@ openssl rand -hex 32 В compose-примерах данные монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml`. Внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения. +Папка `./data` монтируется в `/app/data` для `migrate`, `backend` и `worker`. Если вы меняете compose-файл вручную, не убирайте этот mount у `migrate`: иначе `docker compose run --rm migrate` не увидит `data/tariffs.json` из `TARIFFS_CONFIG_PATH`. + Перед первым запуском создайте каталоги и отдайте их пользователю контейнера: ```bash @@ -91,6 +93,7 @@ mkdir -p data/themes data/webapp-logo data/tariffs touch data/locales-overrides.json chown -R 10001:10001 data chmod -R u+rwX data +docker compose run --rm migrate docker compose up -d --force-recreate backend worker ``` diff --git a/docs/getting-started/deployment.md b/docs/getting-started/deployment.md index e6969de..7ebd905 100644 --- a/docs/getting-started/deployment.md +++ b/docs/getting-started/deployment.md @@ -381,6 +381,8 @@ distributed lock; код подготовлен к нескольким репл Файлы приложения монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml` в `/app/data`; внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения. +Тот же `/app/data` должен быть смонтирован в `migrate`, `backend` и `worker`. Это важно для `data/tariffs.json`: `docker compose run --rm migrate` читает тот же каталог тарифов, что и приложение. В текущих compose-файлах этот mount уже есть у всех трех сервисов. + Перед первым запуском на сервере заранее дайте права пользователю контейнера `10001`: ```bash @@ -388,6 +390,7 @@ mkdir -p data/themes data/webapp-logo data/tariffs touch data/locales-overrides.json chown -R 10001:10001 data chmod -R u+rwX data +docker compose run --rm migrate docker compose up -d --force-recreate backend worker ```