Files
new_vk_parser/MULTI_PROJECT.md
T
2026-08-03 21:43:56 +05:00

57 lines
2.0 KiB
Markdown

# Multi-project setup
Goal: keep one codebase and run separate deployments for each editorial project.
## Target model
- One canonical git repository for application code.
- One Coolify application per project.
- One Postgres database per project.
- Project differences live in Coolify env variables and database settings, not in code.
## Per-project env
- `ADMIN_SITE_TITLE`
- `ADMIN_APP_TITLE`
- `ADMIN_FAVICON_PATH`
- `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASSWORD`
- `APP_SECRET_KEY`
- `ADMIN_BOOTSTRAP_LOGIN`, `ADMIN_BOOTSTRAP_PASSWORD`
- `VK_ACCESS_TOKEN`
- `VK_GROUP_ACCESS_TOKEN`
- `VK_STORAGE_GROUP_ID`
- `VK_OAUTH_CLIENT_ID`
- `VK_OAUTH_REDIRECT_URI`
- `VK_OAUTH_ORIGIN`
- `TG_BOT_TOKEN`
- `TG_MEDIA_CHANNEL_ID`
- `LOCAL_BOT_API_URL`
## Per-project database settings
Sources, target groups/channels, poster tokens, schedules, prompts, categories, and enabled workers should stay in `app_settings`, `sources`, `content_categories`, and `worker_controls`.
Common publication hashtags are also per-project database settings:
- key: `publication_common_tags`
- FN-8: `#новости_снаряжения`
- RAA: `#raa_news #страйкбол`
- The app posts these tags before category/source tags in TG/VK/MAX social posters.
RAA current social targets:
- raw media Telegram channel: `tg_media_channel_id=-1004312015562`
- final Telegram publication channel: `tg_poster_chat_id=-1001303630155`
- VK owner: `vk_poster_owner_id=-36860851`, `vk_poster_from_group=true`
## Poster modules
The site poster is selected by `site_poster_provider`. A project can disable the worker or leave the provider empty when there is no website poster yet. New website integrations should be added as provider modules behind the same interface instead of branching the worker by project name.
## Migration path
1. Finish removing project-specific constants from code.
2. Choose one canonical repo for both deployments.
3. Point both Coolify applications to that repo and branch.
4. Keep only env and database settings different between projects.