128 lines
8.2 KiB
Markdown
128 lines
8.2 KiB
Markdown
# RAA deployment
|
|
|
|
Last updated: 2026-08-04.
|
|
|
|
RAA is not a separate code project anymore. The source of truth for code and
|
|
documentation is:
|
|
|
|
- local workspace: `D:\DEVELOPMENT\new_vk_parser`
|
|
- canonical Gitea repo: `http://192.168.1.135:3000/exostring/new_vk_parser.git`
|
|
- branch: `main`
|
|
|
|
The old local copy `D:\DEVELOPMENT\raa-parser_poster` and old Gitea repo
|
|
`exostring/raa-parser_poster.git` are not the deployment source of truth. Do not
|
|
continue feature work there.
|
|
|
|
## Runtime
|
|
|
|
- Public admin URL: `https://raa.panel.f-n8.ru`
|
|
- Coolify project/environment: `n8_parser` / `production`
|
|
- Coolify app: `RAA admin`
|
|
- Coolify app UUID: `korokrhpoyqxf0nw2y8vk7lp`
|
|
- Coolify git repository: `http://192.168.1.135:3000/exostring/new_vk_parser.git`
|
|
- Coolify git branch: `main`
|
|
- Postgres container: `m9v14hzfh5mk9kelxzcqvhc6`
|
|
- Postgres DB/user: `raa_parser` / `raa_parser_user`
|
|
- Destination: `raa-fn8`, CTID `105`, IP `192.168.1.105`
|
|
- Edge proxy: Caddy in CTID `110` proxies `raa.panel.f-n8.ru` to Coolify Traefik at `192.168.1.105:80`
|
|
- Health check: `https://raa.panel.f-n8.ru/health`
|
|
|
|
## Per-Project Settings
|
|
|
|
These values belong in Coolify env or the RAA database, not in code.
|
|
|
|
Coolify env/secrets:
|
|
|
|
- `ADMIN_SITE_TITLE=RAA Редакторская`
|
|
- `ADMIN_APP_TITLE=RAA Редакторская`
|
|
- `DB_*` for `raa_parser`
|
|
- `APP_SECRET_KEY`
|
|
- `ADMIN_BOOTSTRAP_LOGIN`
|
|
- `ADMIN_BOOTSTRAP_PASSWORD`
|
|
- `TG_BOT_TOKEN` copied from FN-8
|
|
- `TELEGRAM_API_ID` copied from FN-8
|
|
- `TELEGRAM_API_HASH` copied from FN-8
|
|
- `VK_ACCESS_TOKEN` copied from FN-8 for parsing
|
|
|
|
Database settings:
|
|
|
|
- `local_bot_api_url=http://127.0.0.1:8081`
|
|
- `tg_media_channel_id=-1004312015562` (`VK RAW RAA`)
|
|
- `tg_poster_chat_id=-1001303630155` (`Red Airsoft | Страйкбол`)
|
|
- `publication_common_tags=#raa_news #страйкбол`
|
|
- `vk_poster_owner_id=-36860851`
|
|
- `vk_poster_from_group=true`
|
|
- `vk_poster_access_token` is the RAA community token
|
|
- `site_poster_enabled=false`
|
|
- `site_poster_provider=""` until a website adapter is configured
|
|
- Optional social text headers/footers:
|
|
- `tg_poster_header_text` / `tg_poster_footer_text`
|
|
- `vk_poster_header_text` / `vk_poster_footer_text`
|
|
- `max_poster_header_text` / `max_poster_footer_text`
|
|
Empty header/footer settings add nothing.
|
|
MAX sends wrapper text as HTML. For clickable text use:
|
|
`<a href="https://example.com">Link text</a>`.
|
|
|
|
## Workers
|
|
|
|
As last checked on 2026-08-03:
|
|
|
|
- `vk-parser=true`
|
|
- `vk-storage-uploader=true`
|
|
- `ai-qualifier=false`
|
|
- `ai-writer=false`
|
|
- `tg-poster=false`
|
|
- `vk-poster=false`
|
|
- `site-poster=false`
|
|
- `tg_poster_enabled=false`
|
|
- `vk_poster_enabled=false`
|
|
|
|
AI qualifier/writer are configured with user-provided token, models, and prompts,
|
|
but both the worker controls and double-safety settings were still off. Turning
|
|
them on will spend LLM tokens and process the pending RAA raw posts.
|
|
|
|
## RAA Categories
|
|
|
|
RAA categories live in the RAA `content_categories` table. The UI has only
|
|
`name`, `tag`, `sort_order`, status, and actions; do not add separate category
|
|
description or site fields for RAA unless the user asks for a website taxonomy.
|
|
|
|
Current active categories:
|
|
|
|
- `1` `AEG — Страйкбольные электропневматические приводы: автоматы, пистолеты-пулемёты, карабины, дробовики на электроприводе. Новинки, обновления линеек, сравнения моделей.` / `aeg_страйкбол`
|
|
- `2` `GBB — Газовые страйкбольные приводы всех форм-факторов: пистолеты, автоматы, пистолеты-пулемёты на газовом приводе. GBB, GBBR, CO2, AEP.` / `gbb_страйкбол`
|
|
- `3` `СПРИНГ — Пружинные болтовые снайперские реплики. Новинки, апгрейд, обзоры болтовок.` / `спринг_страйкбол`
|
|
- `4` `HPA / ВВД — Системы на внешнем баллоне высокого давления: движки, регуляторы, линии, баллоны, переходники, настройка.` / `ввд_страйкбол`
|
|
- `5` `ПИРОТЕХНИКА — Страйкбольная пиротехника: дымовые гранаты, шумовые устройства, сигнальные шашки, петарды, страйкбольные гранаты и подствольники.` / `пиротехника_страйкбол`
|
|
- `6` `ТЮНИНГ — Внутреннее устройство и улучшение приводов: гирбоксы, хоп-апы, стволы, моторы, шестерни, поршни, электроника, платы управления, мастерские и сервисные центры.` / `тюнинг_страйкбол`
|
|
- `7` `ОБВЕС — Всё, что крепится снаружи реплики: цевья, рукоятки, приклады, крышки, трассерные насадки, глушители, фонари, ЛЦУ, сошки, антабки, крепления.` / `обвес_страйкбол`
|
|
- `8` `ПРИЦЕЛЬНЫЕ — Прицельная оптика: коллиматоры, прицелы, увеличители, голографические прицелы, ночная оптика, тепловизоры, целеуказатели.` / `прицел_страйкбол`
|
|
- `9` `РАСХОДНИКИ — Шары всех калибров и производителей, аккумуляторы, газ, масла, смазки, батарейки, зарядные устройства и всё для обслуживания привода.` / `расходники_страйкбол`
|
|
- `10` `НОЧНОЙ СТРАЙКБОЛ — Снаряжение, приводы и тактики для игры в тёмное время суток: ПНВ, тепловизоры, ИК-маркеры, трассеры, ИК-фонари, маскировка под ночь.` / `ночной_страйкбол`
|
|
- `11` `ЗАЩИТА — Защита игрока на полигоне: маски, очки, сетки, шлемы, наушники, налокотники, наколенники, перчатки, щитки.` / `защита_страйкбол`
|
|
- `12` `СНАРЯЖЕНИЕ И ЭКИПИРОВКА — Одежда, снаряжение и экипировка для страйкбола и поля: плитоносцы, разгрузки, подсумки, рюкзаки, боевые рубашки, штаны, берцы, флиски, панамы, балаклавы, ремни, медицина, связь.` / `снаряжение_страйкбол`
|
|
- `13` `СОБЫТИЯ — Страйкбольные игры, сценарники, турниры, соревнования, выставки, фестивали и любые мероприятия сообщества.` / `события_страйкбол`
|
|
- `14` `НОВОСТИ МАГАЗИНОВ — Поступления в магазины, новые позиции в каталогах, акции, распродажи, открытие новых точек продаж.` / `магазины_страйкбол`
|
|
- `18` `Не целевой контент` / `НЦК`
|
|
|
|
`sort_order=18` is a service category used by the AI writer contract for
|
|
automatic rejection of non-target content.
|
|
|
|
## Deployment Notes
|
|
|
|
Legacy CT cleanup:
|
|
|
|
- CT `107` (`raa-parser-poster`) was stopped and removed on 2026-08-04.
|
|
- CT `104` (`raa-sender`) is not an error: it still runs the legacy VK reposting app (`vk-reposter`) and can legitimately post to its configured Telegram channel.
|
|
|
|
To deploy code changes for both FN-8 and RAA:
|
|
|
|
1. Work only in `D:\DEVELOPMENT\new_vk_parser`.
|
|
2. Push to `gitea/main`.
|
|
3. Both Coolify applications should deploy from the same commit SHA.
|
|
4. Trigger deployment manually via Coolify API only when the webhook does not queue it.
|
|
5. Poll deployment status sparingly; full Docker rebuilds can take 7-11 minutes because Coolify currently rebuilds the image with `--no-cache` and reinstalls Debian/ffmpeg dependencies.
|
|
|
|
Do not put project-specific defaults into migrations or `.env.example`. Put them
|
|
in Coolify env or each project's database settings.
|