SyCraft

Алексей Жадан · фулстек-разработчик, DevOps · Head of TechPlatform

Инженерия систем: инфраструктура, ИИ‑агенты, свои сервисы

Проектирую и довожу до сдачи то, что потом работает годами: контур из сорока хостов, восемь продуктов в эксплуатации и конвейеры на LLM — всё это собрано и поддерживается одними руками. Беру частные заказы.

  • Инфраструктура и DevOps
  • ИИ-агенты на LLM
  • Веб-сервисы под ключ
  • Почта и сети
  • 20 лет в инженерии и эксплуатации
  • 731 плейбук Ansible и 154 роли в рабочем контуре
  • 98 служб с собственным описанием
  • 8 своих веб- и мобильных продуктов в постоянной эксплуатации
  • ≈40 хостов и сетевых узлов в трёх странах плюс кластер k3s

Услуги

Что заказывают и что получают на выходе

Не «часы консультаций», а рабочая система с документацией и проверенной выкладкой.

Инфраструктура и DevOps

Серверы, виртуализация, Kubernetes, выкладка кодом. Контур, который поднимается заново одной командой, а не по памяти.

  • Proxmox, k3s, Podman — от одной машины до кластера
  • Ansible-плейбуки и роли под каждую службу
  • Резервные копии, метрики, дежурство и алерты

ИИ-агенты и автоматизация на LLM

Конвейеры, где модель делает рутину, а приёмку проходит по записанным критериям. Работает и на бесплатных моделях.

  • Многоагентные схемы: постановщик, исполнители, верификатор
  • Разбор почты, документов, выписок, обращений
  • Чат-витрина в Mattermost и Telegram

Веб-сервисы под ключ

От схемы данных до выкладки и мобильного клиента. Свои продукты живут в эксплуатации годами — так же соберу ваш.

  • Python/FastAPI, PostgreSQL, Valkey
  • Фронтенд на TypeScript/Vue, Android на Kotlin
  • Единый вход через OIDC с первого дня

Почтовые системы

Свой почтовый сервер вместо чужого облака: перенос доменов без потери писем, репутация, антиспам на LLM.

  • Stalwart: JMAP, IMAP, SMTP, веб-почта
  • DKIM/SPF/DMARC публикуются из зоны автоматически
  • Разбор больших ящиков силами моделей

Сеть и доступ из любой страны

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

  • MikroTik, WireGuard, маршрутизация по домену
  • Резервный управляющий канал
  • Белые списки с самообслуживанием через бота

Единый вход и секреты

Один аккаунт для всех служб контура и хранилище секретов, из которого выкладка берёт пароли сама.

  • Свой OIDC-провайдер, подключение Forgejo, Nextcloud, почты
  • OpenBao: секреты вне репозитория и вне голов
  • Доступы по ролям, отзыв одной правкой

Продукты, которые уже работают

Восемь систем в постоянной эксплуатации

Не демо и не прототипы: каждая обслуживает живые данные каждый день.

LiveMail

Своя веб-почта на Stalwart/JMAP: миллионы писем, поиск, правила, метапапки SMS и звонков.

Из чегоStalwart, JMAP, кеш на Valkey, вход через OIDC

РезультатЗаменила покупную панель Zimbra

Антиспам и прочёс почты

Конвейер на LLM: письма и SMS группируются по контакту, каждое получает суждение модели и приговор.

Из чегоНесколько моделей, партии с суточным пределом

РезультатЧистка идёт сама, с правом аварийной остановки

LiveFinance

Сбор выписок банков и учёт: автоматический разбор PDF и API, история остатков.

Из чегоРазборщики PDF и банковских API, PostgreSQL

РезультатАналитика расходов без ручного ввода

LivePhotos

Медиатека: фото и видео с распознаванием людей и скорингом кадров.

Из чегоИмпорт из внешних источников, модели распознавания

РезультатЛучшие кадры находятся сами, люди — по лицу

LiveHistory

Хроника перемещений и присутствия: телефон, машина, геоданные.

Из чегоТелефон, StarLine, геоданные

РезультатЕдиный источник событий вместо разрозненных журналов

SyCraft IdP

Свой OIDC-провайдер: единый вход во все сервисы контура.

Из чегоOIDC, подключены Forgejo, Nextcloud, почта

РезультатОдин аккаунт на всё, доступы в одном месте

SyCraft Control

Android-приложение: хранилище контактов, синхронизация SMS, журнала вызовов и календаря.

Из чегоKotlin, синхронизация с сервером

РезультатУдалённое администрирование телефона

Оркестратор ИИ-агентов

Многоагентная система в Kubernetes: постановка задач, исполнители, верификатор качества ответов.

Из чегоk3s, бесплатные модели под приёмкой, Mattermost и Telegram

РезультатЗадачи решаются партиями без расхода платной подписки

Кейсы архитектуры

Задача → решение → результат

Четыре задачи, которые обычно считают «слишком сложно, оставим как есть».

Почта из чужого облака — к себе
01

Почта из чужого облака — к себе

  • 15 000 писем в архиве
  • 41 адрес восстановлен
  • 2 домена с 20-летней историей

Задача

Два домена с двадцатилетней историей жили на внешнем почтовом сервисе. Список ящиков провайдер не отдаёт — переносить «как есть» не с чего.

Решение

Список адресов восстановлен из архива переписки: 15 тысяч писем, 41 адрес. Домены перенесены на свой Stalwart, адреса заведены алиасами и рассылками. DKIM/SPF/DMARC опубликованы автоматически из зоны, которую отдаёт сам сервер.

Результат

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

Разбор почты силами ИИ вместо ручной чистки
02

Разбор почты силами ИИ вместо ручной чистки

  • 47 000 писем в ящике
  • Несколько моделей на каждое письмо
  • Стоп-кран и суточный предел

Задача

Сорок семь тысяч писем в ящике — руками не разгрести, а ошибочное удаление невосстановимо. Нужна автоматика, которой можно доверить удаление.

Решение

Конвейер: дедупликация, группировка по контакту, суждение нескольких моделей, приговор только при их согласии. Работа партиями с суточным пределом и стоп-краном.

Результат

Ящик разбирается сам. Спорные случаи уходят человеку списком, а не по одному письму.

Многоагентная разработка на бесплатных моделях
03

Многоагентная разработка на бесплатных моделях

  • 275 000 токенов за партию
  • 0 расхода платной подписки
  • Приёмка по записанным критериям

Задача

Работа с LLM упирается в две стены сразу: стоимость платных моделей и качество ответа бесплатных.

Решение

Задачи дробятся на участки, участки раздаются бесплатным моделям. Результат проходит независимого верификатора и приёмку по заранее записанным критериям готовности.

Результат

За одну партию — 275 тысяч токенов работы бесплатных моделей и ноль расхода платной подписки, при сохранении приёмки.

Своя сеть поверх трёх стран
04

Своя сеть поверх трёх стран

  • 3 страны в трёх часовых поясах
  • 2 управляющих канала
  • Прокси с маршрутизацией по домену

Задача

Доступ к сервисам и внешним ресурсам из трёх стран. Часть ресурсов закрыта по географии, часть — только изнутри периметра.

Решение

MikroTik и WireGuard, раздельный прокси с маршрутизацией по домену, резервный управляющий канал на случай падения основного. Белые списки с самообслуживанием через Telegram-бота.

Результат

Сервисы доступны с любого устройства заказчика. Обрыв основного канала не отрезает управление.

Свежие работы

  • Автоматическая подмена данных на прокси-сервере. Построен слой маскировки, который на лету подменяет значения в трафике прокси, — ручная подмена больше не нужна. Слой покрыт тестами и развёрнут в рабочей среде, фильтр обрабатывает живой трафик. Подмена данных полностью автоматизирована: ручные операции убраны, система работает без участия человека.
  • Автоматическая дедупликация почты по разным адресам получателя. Построен инструмент, который находит копии одного письма, пришедшие на разные адреса получателя, по ключу «отправитель + тема + минута + превью»: размер не годится — почтовый сервер меняет его при доставке. По кешу из 96 905 писем инструмент выделил 289 групп с разными адресами, из них 274 письма живы на сервере, а к чистке — 121 группа. Удаление оформлено идемпотентным плейбуком с сухим прогоном и проверкой, изменения закоммичены и запушены. 153 копии перенесены в Корзину, проверка подтвердила 153 из 153 на месте, а 121 оригинал остался нетронутым — чистка стала повторяемой и безопасной.
  • Португальская локализация многоязычного лендинга: 187 фраз за 25 минут. В реестр локалей лендинга добавлена португальская версия (pt-BR, /pt/), из эталона выписаны 187 фраз и переведены бесплатными LLM-моделями в 16 пачках за 25 минут. 24 спорные фразы вычитаны и поправлены вручную, страница собрана идемпотентной сборкой, канон текстов и клиентский скрипт обновлены. Всё закрыто тестами (69 passed) и выкачено на прод без ошибок. Лендинг работает на 5 языках с аналитикой: /pt/ отдаёт HTTP 200 и страницу в 9045 байт при выкате failed=0.
  • Сборка и запуск локального движка инференса на сервере. Готового образа движка не было: сервис уже 42 часа работал на прежней модели, а веса объёмом 147 ГиБ лежали на сервере. Собрал движок из исходников пулл-реквеста — сборка шла четвёртый час, прошла этап веб-интерфейса и завершилась запуском на локальных весах. Новая модель заработала на собственном сервере без готового образа, а работавший сервис не останавливался.
  • Автоматический выбор почтового ящика при регистрации на 34 фриланс-площадках. Построил модуль, который по домену площадки сам определяет адрес для регистрации: 13 русскоязычных площадок идут на один ящик, 21 международная — на второй. Доставку проверил на обоих ящиках (письмо и код подтверждения читаются), логику зафиксировал тестами: 21 тест на модуль и 117 зелёных по всему проекту. Регистрации на всех 34 площадках уходят на нужный ящик без ручного выбора, ошибки адресации исключены тестами.
  • Единый формат ФИО и дедупликация в справочнике контактов на 5 тысяч записей. Построена система канонического порядка ФИО: отображаемое имя теперь вычисляется из одной канонической записи, а не собирается по месту. Автоматический проход миграции переписал 2091 записей под новый порядок, повторный замер даёт 0 правок. Дедупликация с проверкой схлопнула 347 из 348 найденных карточек-тёзок. Справочник сжался с 5130 до 4783 карточек, 1530 тестов зелёные, выкат в продакшн прошёл с нулём ошибок.

Стек

Инструменты, на которых это держится

Платформа

  • Linux
  • Proxmox
  • Kubernetes (k3s)
  • Podman / Docker
  • Ansible · 731 плейбук

Данные

  • PostgreSQL
  • Valkey / Redis
  • RAG и векторный поиск

Разработка

  • Python / FastAPI
  • TypeScript / Vue
  • Android / Kotlin

Почта, доступ, веб

  • Stalwart (JMAP / IMAP / SMTP)
  • OIDC / OpenBao
  • Nginx / Caddy

Сеть

  • MikroTik
  • WireGuard

LLM

  • Claude
  • Qwen
  • Локальные модели на llama.cpp

Наблюдение и CI

  • Grafana / VictoriaMetrics
  • Forgejo / CI

Как работаю

Четыре шага от письма до сдачи

Каждый результат доказывается прогоном и логами, а не словами «всё работает».

  1. 1

    Разбор задачи

    Что должно получиться, что сейчас мешает, где данные и кто пользователи. Разбираемся на вашем материале, а не на общих словах.

  2. 2

    Архитектура и смета

    Схема решения, список работ и критерии готовности — записаны до начала. Смета привязана к этапам, а не к часам.

  3. 3

    Работа с доказательствами

    Каждый этап закрывается прогоном: вывод команд, логи, снимки экрана. Вы видите, что сделано, до того как спросите.

  4. 4

    Сдача и поддержка

    Документация, доступы, воспроизводимая выкладка. Система живёт без меня, а если нужно — остаюсь на поддержке.

FAQ

Короткие ответы на частые вопросы

Цифры и шаги — те же, что на странице; удобно копировать в ответ поисковику или ассистенту.

Чем занимается SyCraft?

Инженерия систем под ключ: инфраструктура и DevOps, ИИ-агенты на LLM, веб-сервисы, почта и сети. Результат сдаётся с прогоном и логами, а не словами.

Сколько опыта и что уже в эксплуатации?

20 лет в инженерии, 731 плейбук Ansible и 154 роли, 98 служб с описанием, 8 своих продуктов в постоянной работе и около 40 хостов в трёх странах плюс кластер k3s.

Как проходит заказ?

Четыре шага: разбор задачи, архитектура и смета с критериями готовности, работа с доказательствами на каждом этапе, сдача с документацией и воспроизводимой выкладкой.

Как связаться?

WhatsApp, почта dev@sycraft.info или телеграм @azhadan_dev. Без форм; обычно ответ в тот же день.

Контакт

Опишите задачу — отвечу по существу

WhatsApp, почта или телеграм, без форм и анкет. Отвечаю быстро, обычно в тот же день.

WhatsApp