docs: clarify migrator data mount
This commit is contained in:
@@ -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).
|
Для каталога тарифов используется `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:
|
В compose-примерах `/app/data` монтируется из папки `./data` рядом с `docker-compose.yml`. Заранее создайте каталог и отдайте его пользователю контейнера. Это нужно для сохранения `data/tariffs.json`, каталога тем `data/themes` и кеша логотипа Web App:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p data/themes data/webapp-logo
|
mkdir -p data/themes data/webapp-logo data/tariffs
|
||||||
touch data/locales-overrides.json
|
touch data/locales-overrides.json
|
||||||
chown -R 10001:10001 data
|
chown -R 10001:10001 data
|
||||||
chmod -R u+rwX data
|
chmod -R u+rwX data
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Эта папка хранит только рабочие compose-примеры и конфиги. Подробное описание не дублируется здесь, чтобы сайт документации и навигация из README использовали один источник.
|
Эта папка хранит только рабочие compose-примеры и конфиги. Подробное описание не дублируется здесь, чтобы сайт документации и навигация из README использовали один источник.
|
||||||
|
|
||||||
Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml`. Для кастомных тем создайте `data/themes`.
|
Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml` в `migrate`, `backend` и `worker`. Для кастомных тем создайте `data/themes`; для ручного каталога тарифов используйте `data/tariffs.json`.
|
||||||
|
|
||||||
| Папка | Документация |
|
| Папка | Документация |
|
||||||
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
JSON-каталог может содержать несколько тарифов разных моделей: подписки на срок, пакеты трафика без срока действия, разные наборы Internal Squads, лимиты устройств и пакеты докупки. Пример формата: [data/tariffs.example.json](https://github.com/3252a8/remnawave-minishop/blob/main/data/tariffs.example.json).
|
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 поверх месячного лимита;
|
- `period` - подписка на срок с месячным лимитом трафика и опциональной докупкой GB поверх месячного лимита;
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ openssl rand -hex 32
|
|||||||
|
|
||||||
В compose-примерах данные монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml`. Внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения.
|
В 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
|
```bash
|
||||||
@@ -91,6 +93,7 @@ mkdir -p data/themes data/webapp-logo data/tariffs
|
|||||||
touch data/locales-overrides.json
|
touch data/locales-overrides.json
|
||||||
chown -R 10001:10001 data
|
chown -R 10001:10001 data
|
||||||
chmod -R u+rwX data
|
chmod -R u+rwX data
|
||||||
|
docker compose run --rm migrate
|
||||||
docker compose up -d --force-recreate backend worker
|
docker compose up -d --force-recreate backend worker
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -381,6 +381,8 @@ distributed lock; код подготовлен к нескольким репл
|
|||||||
Файлы приложения монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml` в
|
Файлы приложения монтируются из локальной папки `./data` рядом с выбранным `docker-compose.yml` в
|
||||||
`/app/data`; внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения.
|
`/app/data`; внутри нее лежат тарифы, темы, логотипы и прочие файловые данные приложения.
|
||||||
|
|
||||||
|
Тот же `/app/data` должен быть смонтирован в `migrate`, `backend` и `worker`. Это важно для `data/tariffs.json`: `docker compose run --rm migrate` читает тот же каталог тарифов, что и приложение. В текущих compose-файлах этот mount уже есть у всех трех сервисов.
|
||||||
|
|
||||||
Перед первым запуском на сервере заранее дайте права пользователю контейнера `10001`:
|
Перед первым запуском на сервере заранее дайте права пользователю контейнера `10001`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -388,6 +390,7 @@ mkdir -p data/themes data/webapp-logo data/tariffs
|
|||||||
touch data/locales-overrides.json
|
touch data/locales-overrides.json
|
||||||
chown -R 10001:10001 data
|
chown -R 10001:10001 data
|
||||||
chmod -R u+rwX data
|
chmod -R u+rwX data
|
||||||
|
docker compose run --rm migrate
|
||||||
docker compose up -d --force-recreate backend worker
|
docker compose up -d --force-recreate backend worker
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user