🏠 Главная | 🇺🇸 English Version
Important
Архитектурная парадигма: Проект акцентирует внимание на максимальной развязке (decoupling), встроенной типизации через Astro Content Collections и stateless-интеграциях. Это позволяет полностью отказаться от базы данных и админки, многократно снижая векторы атак, сохраняя при этом гибкость управления контентом и интерактивность.
Поток данных строго однонаправленный. Все чувствительные операции и системные переменные хранятся и исполняются исключительно на стороне сервера.
graph TD
A["Браузер Клиента"] -->|HTTP/HTTPS| B["Nginx / Reverse Proxy"]
B --> C["Docker Контейнер (Astro App)"]
subgraph "Серверная Инфраструктура"
C -->|Статические страницы| D["Astro SSG Движок"]
C -->|Динамические API Роуты| E["Astro Bun SSR"]
E -->|Валидация Данных| F["Zod Схемы"]
F -->|Очистка Данных| G["HTML Санитизатор"]
end
G -->|Защищенный POST Запрос| H["Telegram API"]
subgraph "Управление Контентом"
D -.-> I["Astro Content Collections (Markdown/MDX)"]
end
- Защита от XSS: Все пользовательские вводы из форм очищаются через
sanitize-htmlна бэкенде Astro (Bun) для исключения инъекций скриптов. - Маскирование Окружения: Секретные ключи (
BOT_TOKEN,CHAT_ID) никогда не попадают в клиентский код и используются только на сервере. - Изоляция Контейнеров: Docker-сборка базируется на Bun Alpine с жестко заданным запуском процессов от имени пользователя без root-прав (non-root execution).
Для локального запуска и проверки репозитория используйте следующие команды:
# Инициализация зависимостей
bun install
# Запуск dev-сервера
bun run dev
# Сборка production-версии
bun run build
# Строгая проверка типов (TypeScript / Astro)
bun run checkАвтоматизация процесса происходит по следующему сценарию:
sequenceDiagram
participant Dev as "Разработчик"
participant GH as "GitHub (main)"
participant Coolify as "Coolify CI/CD"
participant Server as "Production Сервер"
Dev->>GH: push коммита
GH->>Coolify: Webhook Триггер
Coolify->>Server: Скачивание кода и сборка Docker-образа
Server-->>Coolify: Сборка успешна
Coolify->>Server: Деплой контейнера (Zero-Downtime)
Alexios Odos
|
Aliaksei Patskevich
Software Engineer • Code, Design & AI
GitHub • Telegram