❌

Reading view

Один VPS и пять сервисов: как поставить и когда расселять

Можно ли на один VPS поставить несколько сервисов? Можно, все так делают — у меня на личном VPS крутятся таск-трекер, бот в Telegram, пара пет-проектов и Grafana, чтобы за всем этим следить. Однако немногие знают, как это сделать правильно, поэтому рассказываю под катом. 

Читать
  •  

Не давайте агенту docker.sock: как я сделал для ИИ отдельный вход в свой Docker-менеджер

Я пишу d9c, терминальный менеджер Docker для удалённых серверов, и однажды заметил, что через него к моим серверам ходит уже не только я, но и Claude Code. Таблицы для людей агенту не подходят. Ему нужен JSON, ограничение на объём вывода, чёткая граница между «посмотреть» и «сломать» и человек, который подтверждает удаление. Рассказываю, как сделал для агентов CLI-режим, MCP-сервер и десять skills, почему инструментов двенадцать, а не сорок, и как агент всё-таки удалил стейджинг, не спросив меня, хотя задумано было ровно наоборот.

Читать далее
  •  

Лог пустой, а диск заканчивается: что logrotate делает с файлами, которые приложение не закрывает

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

Разобрать logrotate
  •  

После комментариев на Хабре я ограничил чтение SQLite и перевёл Docker-модуль в WASI

После прошлой статьи о Pulse читатели Хабра обратили внимание на вещи, которые я не учёл: долгий запрос истории может мешать очистке SQLite WAL, успешное выполнение команды ещё не означает, что контейнер поднялся, а разрешения модуля сами по себе не изолируют его от файлов сервера.

Я пошёл проверять эти замечания и разбирать реализацию. В статье — что получилось: тест чтения истории одновременно с записью отчётов, ограничение времени запросов и наблюдение за WAL, проверка состояния Docker-контейнера после команды и перевод модуля в WASI с доступом к Docker через ограниченный API-посредник.

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

Читать далее
  •  

Разведка, Pentest и причем тут контейнеры?

Как использовать мощь BlackArch и Kali Linux, оставаясь на чистой домашней системе и не ломая ее? Рассказываю историю создания Open Source проекта VoidSec — модульного менеджера, который автоматизирует менеджмент пентест‑утилит в изолированных Podman‑контейнерах, избавляя от боли от поломанных зависимостей раз и навсегда.

Читать далее
  •  

Как я подключил рабочие чаты Telegram к ИИ-ассистенту через MCP

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

Я сделал TelegramMCP — открытый сервер, который подключает личный аккаунт Telegram к ИИ-приложению с поддержкой MCP. Ассистент получает инструменты для чтения папок и чатов, поиска бесед и отправки текстовых сообщений. Уже поверх этих инструментов его можно попросить собрать главное из выбранной переписки или подготовить ответ.

В статье расскажу, как устроено подключение через TDLib, зачем понадобилась поддержка папок, как запустить проект и какие проблемы ещё остаются.

Читать далее
  •  
❌