Хроника обслуживания сервера: диагностика, очистка, безопасность и публикационная платформа

· 2070 слов · ~11 мин чтения

Ниже — сжатое резюме работ на сервере с момента начала обслуживания. Изложение обезличено: без токенов, идентификаторов аккаунтов, ключей и адресов секретов.

1. Диагностика и очистка диска🔗

Исходная проблема: системный диск заполнен на 79% (свободно ~17 ГБ) — риск остановки сервисов и отказа записи.

Что сделано:

Результат: 59% занято, свободно 32 ГБ (было 17), освобождено ~12 ГБ. Все удалённое зафиксировано в манифестах; копии удалённых компонентов сохранены в изолированном каталоге.

2. Санация служб: удаление мёртвых процессов🔗

Замены не потребовалось: на сервере уже работал собственный стек — Uptime-Kuma и скрипт мониторинга критичных служб, полностью под контролем и без внешней зависимости.

3. Безопасность: исправление опасной cron-задачи🔗

В планировщике обнаружена еженедельная очистка Docker в формулировке, удалявшей все неиспользуемые образы и тома принудительно. Для сервера с рабочими базами в контейнерах — это прямой риск безвозвратной потери данных (и он был близок: 25 из 27 образов реально используются).

Заменено на безопасный вариант: срезка только «висячих» образов и остановленных контейнеров, логирование сохранено. Остальные задачи планировщика (бэкапы в объектное хранилище, мониторинг памяти, обновления пакетов) проверены и не изменены. Перед правкой снята полная копия crontab.

4. Почтовый сервис: миграция на новую мажорную версию🔗

Почтовый сервер Stalwart переведён с 0.15.5 на 0.16.24 — апгрейд с ломкой обратной совместимости (формат конфига toml → json, REST-API → JMAP, имена аккаунтов → email).

5. База знаний (Outline): доступ, ключи и интеграции🔗

Корпоративная wiki на Outline (контейнеры с PostgreSQL, Redis, own nginx-прокси):

6. Сетевая безопасность: закрытие случайно опубликованных Docker-портов🔗

Критичная находка: Docker публиковал внутренние сервисы наружу в обход межсетевого экрана — UFW его правила не покрывают. Проверено извне независимым сканером: доступны 5 портов — две СУБД (PostgreSQL), кэш (Redis) и два бэкенда.

7. Обзор готовых решений под задачи🔗

По запросу владельца разобраны открытые проекты: мультиагентные оркестраторы, векторная память ассистентов, инструменты автоматизации. Вывод: из десяти рассмотренных под текущую инфраструктуру прямо применимы три–четыре. Основной кандидат — YAML-оркестратор мультиагентных цепочек поверх tmux (сам мультиплексор уже используется). Остальные — из другой предметной области. Решение принято за владельцем, ничего не устанавливалось.

8. Публикационная платформа: n.syntog.ru🔗

Сайт на генераторе Zola (Rust) в режиме dev-сервера за nginx с TLS от Let's Encrypt.

Издательский цикл🔗

  1. Источник — документ из облачного редактора выгружен, очищен от артефактов разметки, преобразован в Markdown.
  2. Раздел «Omarchy» — создана секция с описанием, сортировкой по датам и карточками материалов.
  3. Статья — «Архитектура, экосистема и прикладной потенциал операционной системы Omarchy» (≈4 700 слов): идеология проекта, архитектура (Hyprland + Quickshell), модульная система плагинов, IPC и безопасность маркетплейса, интеграция ИИ-агентов как сущностей первого класса, сетевая безопасность и автономная установка, сравнительная матрица с системами оркестрации агентов.

Обновление движка: Zola 0.19.2 → 0.23.6🔗

Установленная версия была почти на два года старше актуальной. Обновление прошло по шагам и выявило несколько скрытых проблем:

Оформление: читабельность🔗

Прежний вид сайта был фактически без стилей — CSS подключался по пути несуществующего файла. Спроектирован заново:

Превью для мессенджеров🔗

Для публикации ссылок в Telegram:

9. Собственная аналитика прочтений🔗

Статистика без внешних счётчиков и без передачи данных третьим лицам:

Отдельно: основной домен статистики занимает сторонний проект (RailSync) — он не затронут, аналитика размещена на служебном поддомене.

10. Настройка связи с облачным хранилищем🔗

Налажено соединение сервера с облачным дисktорidji (Google Drive) для обмена рабочими материалами:

11. Аудит проекта «ГРАНИ»🔗

Выстроен и проведён цикл машинного аудита инженерного проекта ГРАНИ (железнодорожные аналитические расчёты, Rust + веб-интерфейс):

12. Dev-среда ИИ-агента (omp) — проблемы решены🔗

Построена серверная среда разработки с TUI-агентом omp (oh-my-pi), чтобы работать удалённо:

13. Соблюдаемые принципы🔗

  1. Резервная копия перед каждым удалением — файлы, конфигурации, crontab, шаблоны; каталог .backup рядом с контентом, манифесты в изолированном хранилище.
  2. Ничего работающего не трогается без отмашки владельца — производственные каталоги и контейнеры ключевых сервисов не изменены.
  3. Проверка зависимостей вместо имён — образы удалялись только после подтверждения, что на них ничего не запущено.
  4. Автоматическая проверка результата — после каждой правки: тест конфигурации веб-сервера, сборка сайта, прогон всех URL через HTTP-проверку.

Итог🔗

НаправлениеБылоСтало
Диск79% занято, 17 ГБ свободно59%, 32 ГБ
Мёртвые службы2 (битый приёмник, заблокированный пинг)0, работает собственный мониторинг
Опасная cron-задачапринудительная очистка образов и томовбезопасная срезка неиспользуемого
Движок сайтаZola 0.19.2, стили отсутствовалиZola 0.23.6, полноценный дизайн с тёмной темой
Публикацииструктура не оформленараздел Omarchy, 2 статьи, рабочая навигация, превью для мессенджеров
Облачное хранилищедоступ требовал ручных кодов, дубли в архивахrclone-токен продлён на сервере, обмен папкой с SHA-сверкой
Аудит проектаартефакты не верифицированыполный цикл: сверка хешей, P0/P1/P2 протоколы, инцидент P0, ТЗ разработчику, git-теги
omp (агент)не запускался, уходил на чужого провайдерарабочая dev-среда: bun, конфиг провайдера, environment.d, лаунчер
Почтовый серверстарая версия с просроченным TLS-сертификатомновая мажорная версия, двойной DKIM, TLS исправлен, мёртвый postfix убран
База знанийне было программного доступаAPI-ключ с проверкой, секрет в защищённом хранилище, CSP-совместимая плашка
Сетевая безопасность5 внутренних сервисов торчали наружузакрыты правилами по исходным портам + постоянная служба
Статистикатолько общий отчёт по трафикусобственная аналитика прочтений под паролем