Files
new_vk_parser/MULTI_PROJECT.md
T
2026-08-04 20:02:42 +05:00

2.8 KiB

Multi-project setup

Goal: keep one codebase and run separate deployments for each editorial project.

Target model

  • One canonical git repository for application code: http://192.168.1.135:3000/exostring/new_vk_parser.git.
  • One canonical local workspace: D:\DEVELOPMENT\new_vk_parser.
  • One Coolify application per project.
  • One Postgres database per project.
  • Project differences live in Coolify env variables and database settings, not in code.
  • The old RAA local copy D:\DEVELOPMENT\raa-parser_poster and old RAA Gitea repo are not the source of truth.

Per-project env

  • ADMIN_SITE_TITLE
  • ADMIN_APP_TITLE
  • ADMIN_FAVICON_PATH as an optional fallback only
  • 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.

Project favicon is uploaded from the admin UI and stored per deployment at uploads/branding/favicon.png. If it is absent, the app falls back to ADMIN_FAVICON_PATH, then to the repository favi.png.

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
  • More RAA-specific runtime notes are in RAA.md.

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.

Current Status

  • FN-8 Coolify app n6cnr60anmruiwkiey0pukye points to new_vk_parser.git, branch main.
  • RAA Coolify app korokrhpoyqxf0nw2y8vk7lp points to new_vk_parser.git, branch main.
  • Both projects should deploy from the same commit SHA.
  • Both current Coolify apps run on Docker destination CTID 105, hostname raa-fn8.
  • Old CT 107 was removed on 2026-08-04; CT 104 is a separate legacy VK reposting app.
  • Keep only env and database settings different between projects.
  • Do not add project-specific defaults to migrations or .env.example.