→Портфолио · инженерные системы

Три системы, один сервер

Планировщик задач в Telegram, открытый шаблон архитектуры и слой управления, который принимает проекты, доставляет их и следит за состоянием. Один VPS в Амстердаме: изоляция на каждый проект и проверки вместо обещаний.

Ubuntu 24.04 LTS Caddy 2.11 systemd · юнит на проект 2 vCPU · 4 ГБ · 79 ГБ SSD

01Что работает

Проекты

Продукт, воспроизводимый шаблон и слой, который держит всё остальное на сервере.

Отдельно — agent-mailbox: почта между агентами, файлы и правила вместо сервера. Не на сервере, а на машине, где работают агенты.

02Путь изменения

Как коммит становится рабочей версией

Один и тот же путь для всех проектов на сервере: без ручных копирований и без «залил по ssh».

  1. 01
    Коммит

    git push в репозиторий проекта — как в любой обычный репозиторий.

  2. 02
    Проверка

    Гейт прогоняет тесты и правила. Красный результат останавливает доставку — на сервер ничего не попадает.

  3. 03
    Слияние по правилу

    Если проверки зелёные, изменение сливается автоматически, по заранее описанному правилу.

  4. 04
    Доставка и перезапуск

    Файлы и юниты встают на место, systemd поднимает новую версию. Время — секунды.

Решение принимает проверка, а не настроение. Поэтому ошибка видна на гейте, а не в проде.

03Что можно проверить

Цифры

45+

автоматических проверок приёмки в открытом шаблоне архитектуры.

секунды

от push до перезапуска сервиса на сервере.

ежедневно

снимки данных проекта, контрольная сумма sha256 и проверка восстановления.

04Как это сделано

Три правила

A

Ни одного скрипта

Этот сайт — статика. Заголовки безопасности запрещают JavaScript, внешних запросов нет: шрифтов, аналитики, иконок с чужих серверов.

B

Изоляция на проект

Свой Unix-пользователь, свой репозиторий, свои права и свой юнит systemd. Соседние проекты не видят данные друг друга.

C

Утверждения проверяемы

Домены открыты, репозиторий публичный, схема доставки показана целиком. Всё, что нельзя проверить, здесь не написано.