← Blog

Створення самостійно розміщеного резюме з використанням Astro, SQLite та локальної LLM

DEENESRUUK

Цей сайт замінив встановлення WordPress на щось більш лаконічне та повністю під моїм контролем: один контейнер Astro (SSR), SQLite як єдине джерело правди та жодних сторонніх сервісів у шляху запиту.

Рухомі частини

  • Astro + Node adapter рендерує кожну публічну сторінку на сервері, причому весь CV керований через SQLite. Теми світло/темно, три мови (EN/RU/UK) та таблиця стилів для друку, яка слугує також завантажуваним PDF.
  • Адмін лише за Passkey. Жодних паролів — WebAuthn з кількома обліковими записами та аварійний CLI для реєстрації нового ключа, якщо всі втрачено.
  • Щоденний пайплайн. Cron job перелічує мої приватні репозиторії GitHub, і для тих, які змінилися, він просить локальну модель Gemma (Ollama) підготувати короткий фактичний опис. Нові репо стають неопублікованими чернетками — нічого приватного не виходить у публічний доступ, доки я вручну його не опублікую.
  • Аналітика першої сторони. Відвідування геолокатуються та розв'язуються за ASN за допомогою локальної бази даних MaxMind (без зовнішніх викликів), з банером згоди GDPR, який блокує GA та клієнтський бікон.

Чому це важливо

LLM та синхронізація GitHub повністю відбуваються в офлайн пакетному шляху — якщо модель недоступна, сайт цього не помічає, він просто продовжує обслуговувати дані з SQLite і повторює збагачення наступного дня. Цей розділення — уся суть: цікава автоматизація ніколи не знаходиться між відвідувачем та сторінкою.

Більше дописів про інфраструктуру, що лежить в основі цього — BGP, транспорт, моніторинг — будуть пізніше.

Прозорість: більшість дописів тут створено за допомогою ШІ, а неанглійські версії перекладені локальною LLM і вичитані. Помітили помилку? Напишіть мені.