§01
Обзор
- Что это: Astervis — стартап (build-in-public, с питч-деками) в домене телефонии / контакт-центров. Self-hosted продукт разворачивается на серверах клиентов (PBX/Asterisk) через кастомный Go-инсталлятор; есть SaaS-дашборд, лицензирование, AI-фичи (AI Gateway, эмбеддинги) и полноценный маркетинговый движок (лендинг, блог, видео, B2B-аутрич, аналитика). Это «всё своё»: продукт, инфраструктура доставки, GTM-тулинг.
- Тип / статус / роль: web-app (SaaS + self-hosted) · active (последний коммит 2026-05-26) · solo (248 из 286 коммитов — пользователя; 42 — Ilhombek2110).
- Окно активности: 2025-10-24 → 2026-05-26, ~7 месяцев плотной разработки, живой проект. ВАЖНО: основной код продукта (
astervis/) и сайт (astervis_sale_new/) живут в git-сабмодулях (отдельные репозитории), поэтому 286 коммитов мета-репозитория СИЛЬНО занижают реальный объём — здесь виден в основном Go-инсталлятор, дизайн-документы, бампы сабмодулей и питч.
§02
Стек
- Языки: TypeScript (основной для приложений), Go (инсталлятор), SQL (Drizzle/Postgres), JS.
- Фреймворки/библиотеки:
- Frontend: Next.js 16 (App Router), React 19, Tailwind CSS 4, shadcn/ui, next-intl (ru/en/uz).
- Backend: Elysia.js на Bun, PostgreSQL + Drizzle ORM, Redis; API компилируется в единый бинарник через
bun build --compile. - Auth: Better Auth + RBAC (Google/GitHub OAuth).
- AI: Vercel AI SDK (
@ai-sdk/google|anthropic|openai), отдельное приложениеai-gateway(Elysia, порт 4000),ai-worker, пакетыai-core(Zod-схемы/промпты/провайдеры) иai-evals. - Go-инсталлятор: Cobra CLI, charmbracelet/huh (TUI-формы), pterm, lego/v4 (ACME/Let's Encrypt), go-redis, lib/pq, go-toml.
- Видео: Remotion (программная генерация промо / IG-каруселей).
- Edge: Cloudflare Workers (CDN-раздача бинарников инсталлятора через R2, wrangler).
- Инфра/деплой: монорепозиторий на Turborepo + Bun v1.3.2; Docker Compose (ядро продукта); GitHub Actions (
installer-release.ymlпо тегамinstaller-v*→ кросс-платформенная сборка бинарников → R2 + GitHub Release); установка одной строкой черезcurl … | bash; DNSimple для провижининга поддоменов. Питч-дек как генерируемый PDF (порт 3005). - Данные: PostgreSQL, Redis, TimescaleDB (у инсталлятора есть
timescaledb_data), CDC-коннектор (change data capture). - Заметный тулинг: в репозитории плотный AI-тулинг —
.claude/,.codex/,.agents/,.mcp.json,skills-lock.json,AGENTS.md; маркетинговый CLI для GA4, GSC, Polar (платежи), LinkedIn, Twitter/X, Instagram, Blog, B2B-аутрич.
§03
Что реализовано
Выводы по коду/диффам (не по тексту коммитов). В мета-репозитории авторский код пользователя — это в основном Go-инсталлятор + дизайн-документы + релизная обвязка:
- Go-инсталлятор (главный авторский код здесь): ~25 релизов (v0.0.57 → v0.0.74) за апрель–май 2026. Модули
internal/:docker(compose, health, diskspace, iptables-recovery, миграция compose),ssl(Let's Encrypt + remote),license(token, fingerprint, verify, state),cdc/connector,sangoma/firewall_watchdog,wizard(TUI),agent+api(REST-агент на порту 9876, certificate_renewal, update_manager, license_checker). - Дизайн-документы/планы: канал WhatsApp для Open Lines — дизайн-спека (
8731f32, +753) + план реализации (536618f, +4049); план редизайна AI-прайсинга (75bf32a, +209); ранбук HA-миграции. - Релизная инфра: escape hatch
workflow_dispatchв CI (e023868), Cloudflare Worker для раздачи бинарников. - Большой дроп тулинга:
ae140f4(177 файлов, +31084) — сабмодуль + документы + тулинг. - Бампы сабмодуля продукта: десятки
Update astervis submodule to v1.0.19x…208— продукт активно развивается в отдельном репозитории (канал WhatsApp, трекинг эмбеддингов в ai-gateway и т.д.). - Объём: 286 коммитов мета-репозитория (248 — пользователя) за 7 месяцев + невидимый объём в сабмодулях (продукт дошёл до v1.0.208 — ~200+ релизов).
§04
Технические челленджи
- Идемпотентный self-hosted деплой с авто-восстановлением Docker-iptables (
447d789, инсталлятор v0.0.74,internal/docker/): приiptables: No chain/target/match by that name(перезагрузка firewalld/nftables вытирает NAT-цепочкуDOCKERдемона Docker) инсталлятор детектит это (IsDockerIptablesError), рестартит демон (RestartDockerDaemon— systemctl → фолбэк на service, сcontext.WithTimeout(90s)), ждёт 8с и один раз повторяетup; перед стартом всегда выполняетdocker compose down(без-v), чтобы вычистить залипшие контейнеры в статусеCreated, держащие порты 5432/6380/9092. При сбое — человекочитаемая инструкция вместо сырого стек-трейса. → Демонстрирует: глубокое понимание сети Docker/iptables, устойчивость на уровне хоста, идемпотентность, аккуратный error UX. Сильный DevOps/Go-сигнал. - Сетевые/инфраструктурные edge cases в инсталляторе (по CHANGELOG/диффам): резолв loopback-MySQL через
host.docker.internal(04c3333); MySQL bind 0.0.0.0 + remote-grant для backend-контейнера (c8ba8d4); Let's Encrypt для IP-only режима (b9b5ed9); прекcheck диска против docker-раздела (d08b4b5); рекурсивный chowntimescaledb_data(d8b5a81); монтирование/etc/machine-idвместо хака с пиннингом MAC для лицензионного fingerprint (82765d8); Sangoma firewall watchdog — восстановление NAT на уровне хоста (a1211ea, +206). → Реальная эксплуатация на разношёрстных Linux (Ubuntu/Debian/CentOS/RHEL/Sangoma/FreeBSD). - Лицензирование self-hosted продукта (
internal/license/): token + fingerprint + verify + state — антипиратская привязка к железу через/etc/machine-id. → Продуктовое мышление (монетизация on-prem). - Трёхслойная раздача бинарников: CI (GitHub Actions по тегам) → Cloudflare Worker (CDN из R2) → API (
/api/releasesметаданные +install.shbootstrap). → Полноценная supply chain для self-hosted софта. - Компилируемый Elysia.js API (
bun build --compileв единый бинарник) + RBAC через Better Auth + провижининг поддоменов через DNSimple на/api/plans. → Современный edge / Bun-стек, нестандартные продакшн-решения. - AI-слой как отдельные приложения/пакеты (
apps/ai-gatewayElysia,packages/ai-coreZod + провайдеры,ai-evals,ai-worker): структурированный AI-роадмап по фазам (docs/ai-research/roadmap/phase-{0-5}), трекинг эмбеддингов. → Зрелая архитектура AI-фич, а не «прикрутил ChatGPT».
§05
AI-разработка
- Найденные сессии: 21
.jsonlдля корня проекта (плюс ещё 6 вложенных закодированных директорий для путей сабмодулей монорепо:…-astervis,…-astervis-sale-new,…-apps-api,…-packages-db,…-installer,…-scripts-polar— но транскрипты сконцентрированы в корне). ~43k строк транскриптов суммарно — очень высокая интенсивность. - Что делалось с AI: разработка по AI-роадмапу, инсталлятор (инфраструктурные фиксы), дизайн-документы (спека/план канала WhatsApp), маркетинговая автоматизация, питч.
- Паттерны AI-воркфлоу: зрелая, систематическая AI-driven разработка — репозиторий пинит
AGENTS.md,skills-lock.json(lock набора скиллов),.mcp.json(MCP-серверы), мульти-тулинг (.claude/+.codex/+.agents/= Claude Code + Codex + прочее). CLAUDE.md задаёт словарь, карту портов, обязательные скиллы (/ai-sdk,/ai-elements,/vercel-react-best-practices) и предписывает читать роадмап перед любой задачей. Референсный пример «AI-native» процесса разработки.
§06
Достижения и метрики
- Масштаб монорепо: 7 приложений в
astervis_sale_new/apps(admin, ai-gateway, ai-worker, api, docs, pitch-deck, web) + 14 общих пакетов (ai-core, ai-evals, analytics, auth, cache, cli, db, email, entities, ui, intercom…); ядро продуктаastervis/(backend, new_admin, queue, replication, nginx) дошло до v1.0.208. - Поддержка ОС в инсталляторе: Ubuntu, Debian, CentOS, RHEL, Sangoma Linux, FreeBSD; кросс-компиляция + чек-суммы.
- Релизы инсталлятора: ~18+ версий за ~2 месяца (v0.0.57→0.0.74).
- GTM-инфра: интеграции с GA4, GSC, Polar, LinkedIn, Twitter, Instagram, Intercom, PostHog.