Owner's service · external integrations await configuration

re-publisher

FastAPI, PostgreSQL, a Telegram collector and a publication processing pipeline. The server runs the original app without a demo wrapper. Collection needs Telegram and model configuration. Those are not connected yet, so there is no collected content.

Code history: since 16 June 2026. Demo preparation: 7 September 2026.Version be01bfe311 interface screenshots

01 / The task

Telegram collection and content processing

Content goes through extraction, classification and draft preparation. The source and intermediate results are stored separately, so a failed step can be inspected and rerun.

Use case: Editing content for topic-based channels.

Work done

  • Normalization, data extraction, classification and editing templates.
  • Processing history and results for individual steps.
  • Image build, migrations and deployment of the original interface. External integrations still need configuration.

Screenshots

Screens, forms, errors

Screenshots, diagrams and source evidence retain their original language; captions and descriptions are translated.

02 / Technology

Stack

FastAPI / Jinja

Original editorial interface

PostgreSQL / SQLAlchemy / Alembic

Production data schema and migrations

Telethon

MTProto collector; awaiting a session

scikit-learn / LLM

Classification and rewriting after model configuration

03 / Decisions

How the project works

  • The original application's app.web.main:app is running, rather than app.portfolio.
  • PostgreSQL with the original migrations; separate persistent sessions, media, models, cache, artifacts and reports directories.
  • The collector and full-cycle pipeline are separate services in the connected profile. They are activated after configuring the Telegram session, model and selected integrations.
  • The administrative interface is protected by HTTPS Basic Auth; secrets are kept outside the repository.
Components and integration boundaries
Components and integration boundaries

04 / Verification

Demo workflows

  1. Sign in to the owner's interface and open Materials, Drafts, Labeling, Models and Pipeline.
  2. Open Rewrite Progress, Prompts and Search: these are the original pages backed by PostgreSQL.
  3. After configuring Telegram: app.main login/login-qr → inspect-folder → limited sync → inspect materials.
  4. After registering a model and configuring the LLM: processing → classification → draft → review → approved publication to the selected channel.

Check results

  • Five sequential HTTPS GET requests from the VPS to itself: 81.5–228.6 ms, all HTTP 200. This is not a load test or an assessment of the external network.
  • No Telegram collection, LLM processing or Codex task ran during the measurements.

Limitations

  • Telegram API ID/hash and an authorized MTProto session have not yet been provided. Collection of real messages has not started.
  • The active tfidf_logreg.joblib model and selected LLM settings are missing. There is no basis for claiming verified classification or rewriting quality.
  • The interface currently shows an empty production-schema database. The previous demo's synthetic corpus has not been mixed into the original tables.
  • External publishing has not been tested: it requires a destination channel and BOT_TOKEN or MAX settings. AUTO_PUBLISH remains false until the destination is configured.

Technical notes

Modules, API, data model, setup and check results.

Documentation →Materials ↓