TGViewer
Мамкін Архітектор Мамкін Архітектор @mamkin_architect · 3.24K subscribers
Post #702 2.16K
Обіцяв технічні подробиці по Дронам на районі, тому ось вони.

Стек частково вже називав: Python, htmx, трохи JavaScript для інтерактиву. Service worker, щоб сайт відкривався в офлайні і сам казав, що карта вже неактуальна. Cloudflare тримає тунель, захист від ботів і CDN.

Google Analytics стоїть, щоб бачити, чим люди реально користуються, і з цього вирішувати, що робити далі.

Deployment максимально дурний: Docker Compose збирає образ прямо під час деплою, без зовнішнього registry. Крутиться воно в Portainer, який живе в Umbrel на домашньому сервері і раз на хвилину підтягує main. Gitlab також на Umbrel.

Спочатку я хотів винести це на безкоштовну віртуалку в GCP, щоб не залежати від домашнього світла, але там portainer-агент не вміє проксювати BuildKit, і збірка падає з http2: frame too large. Переніс додому, шоб швидше вийти в прод.

Моніторинг — Prometheus і Grafana, які й так підняті в моєму homelab, плюс Uptime Kuma, щоб знати, що сайт взагалі відповідає.

Проте найгірша поломка тут не "сайт впав", а "сайт віддає 200, а дані в ньому тригодинної давнини". Жоден зовнішній пробник такого не побачить, тому окремою метрикою я віддаю вік останнього успішного забору по кожному джерелу, і алерт висить саме на ній.

Всередині немає ніяких AI- чи ML-тулів, там набір if-ів, регекспів і маленька state machine. Працює доволі непогано.

Зберігається кожен пост з каналів і кожне рішення, яке по ній ухвалене. Періодично переганяю цю історію через Claude Code і дивлюсь, де алгоритм можна покращити, і вже з цього правлю правила. В результаті воно стає краще.

По суті проект — це реверс інжиниринг. Десь є системи, в яких дрони показані точно, доступ обмежений з відомих причин, хтось транслює звідти інфу текстом, а сайт мапить це назад на мапу. Звучить тупо, але дуже інтересно.

Тестується все агентом, який запускає playwright-cli. Ним же і перевіряє баги. Також є юніт тести, зараз десь 500, http залежності тестуються через vcr.

А і мало не забув — Redis тут немає, натомість SQLite, бо з ним банально швидше вайбкодити. Файл лежить поруч з процесом, схема міняється на льоту, нічого не треба підіймати окремим контейнером і потім за ним доглядати. По перфомансу питань нема взагалі.

Кількість користувачів росте, покращення залітають, все добре. Іроні в тому, що це саме той проект, де хотілось, аби він не був нікому потрібен. Але хочеться одного, а реальність підносить інше, тому будемо поки його розвивати.

Пишіть в коменти ідеї, зауваження і побажання. Також попрошу пошарити серед друзів, сусідів і колег.
Дрони на районі Дрони на районі: тривога, дрони і ракети поруч із вами Тривога, дрони і ракети у вашому районі Києва і області за даними Telegram-каналів. Наживо, без реєстрації.
  • 👍 40
  • 🔥 10
  • ❤ 5
  • ❤‍🔥 1
More from @mamkin_architect
  1. Oct 7, 2026Хтось не деплоїть по пʼятницях. Ми не деплоїмо, поки триває тривога. Ми різні
  2. Oct 6, 2026Оновив Portainer однією кнопкою Я вже не раз розповідав, як влаштований мій homelab: є сер…
  3. Sep 30, 2026‼️ увага ‼️ Я провтикав і випадково закрив коменти деяким підписникам пару днів назад. Зар…
  4. Sep 30, 2026В Києві останнім часом тривога триває постійно, з дуже короткими перервами. Раніше треба б…
  5. Sep 21, 2026Від умовного Скайнету чи Матриці нас рятувало те, що LLM-ки доволі повільні: довго відпові…
  6. Sep 19, 2026Полагодив Tailscale через Tailscale Я вже писав (буквально в минулому пості), шо в мене вд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →