Помощник по твоей инфре за один вечер (и ~$5). Реально

Представь: ты лежишь на диване, пишешь в Telegram: «Сколько занято места на основном диске?» — и через несколько секунд получаешь ответ. Или: «Перезапусти контейнер с медиасервером». И он перезапускает. Никаких ноутбуков, никакой возни с терминалом — всё в одном чате, у тебя в кармане.
Раньше за такое брали месяц жизни, рюкзак скриптов и немного седых волос. Сейчас — один вечер и примерно пять баксов на API. Я прошёл путь от «ну ща опять писать свои кроны» до «бот сам всё делает» за пару часов. И да, без ручного кодинга — только Cursor (ИИ-редактор кода), OpenClaw (агент), DeepSeek API и Telegram-бот. Дальше — как это повторить без боли, оторванно от любой «моей конкретной лабы». Пойдём по шагам. Будет просто, честно и без заклинаний.
Шаг 1. Cursor — наш «монтажник»
Сверхкратко: Cursor — это редактор кода с ИИ, который не только подсказывает, но и может сам выполнять команды в терминале. Агентный режим, Composer — всё это fancy-мод, где он берёт твой промпт «сделай вот это» и реально лезет в консоль, редачит конфиги, перезапускает сервисы. В нашем сценарии Cursor — это руки, которые всё соберут.
Что нужно до старта: – У тебя есть Proxmox (или любая домашняя виртуализация) и SSH-доступ к хосту. Не важно, где крутится — дома, на даче, в гараже — главное, чтобы ты мог зайти по SSH. – Ты готов наделить агента доступом к твоему Proxmox через API-токен, чтобы тот управлял контейнерами/ВМ. Да, именно токен — никого не пустим, кроме него, и в любой момент отзовём.
Дальше — по пунктам:
1) Скачиваем Cursor. Заходим на cursor.com, ставим, регистрируемся. Есть бесплатный тариф — нам хватит, мы не пишем гигабайт кода, мы настраиваем.
2) В Cursor открываем терминал (обычно это панель снизу, можно через меню View → Terminal), подключаемся по SSH к серверу, где будет жить агент. Стандартно: – «ssh user@hostname» — тут у каждого своё, главное — чтобы Cursor видел терминал и мог в нём действовать. – Не забываем ключи/пароли — как обычно входишь, так и тут.
3) Настраиваем на стороне Proxmox доступ по токену. Можно через UI: Datacenter → Permissions → API Tokens. Или одной командой в консоли Proxmox (я так и сделал, быстрее):
pveum user token add root@pam!openclaw --privsep 0
Эта штука создаёт токен с именем openclaw для root@pam и отключает привилегии-сепарацию, чтобы агенту не пришлось упираться в ограничения, когда он, например, рестартит контейнер. Не забываем потом аккуратно ограничить, что нужно, но для старта — так быстрее.
4) Ставим OpenClaw на сервер через Cursor. В терминале (внутри Cursor) даём ИИ-промпт типа:
«Установи OpenClaw на этот сервер: curl -fsSL https://openclaw.ai/install.sh | bash, потом запусти onboarding».
Cursor воспримет это как задачу: выполнит установочный скрипт, дождётся, спросит, куда ставить, как запускать, и проведёт первичную настройку (onboarding). Если где-то не поймёт — спросит тебя. Тут главное — не стесняться отвечать по-человечески, он нормально такие штуки переваривает.
На что обратить внимание во время установки: – OpenClaw спросит базовые вещи о том, где хранить конфиги и как стартовать сервисы. Я всегда соглашаюсь на дефолты, а потом в конфиге поправляю — так быстрее. – Если сервер чистый, возможно, подтянутся зависимости. Нормально. Пусть тянет. – После onboarding у тебя будет базовый конфиг OpenClaw и запущенный gateway (его фронт, который принимает запросы от каналов — в нашем случае от Telegram).
И да, сразу лайфхак: держи отдельное окно терминала с правами рута. Иногда удобнее самому подсказать системе путь, поправить права на папку или логи посмотреть. Cursor умный, но ты здесь главный.
Шаг 2. DeepSeek — мозг помощника
Агент без мозга — это просто симпатичный автомат. Нам нужен LLM-провайдер, который будет думать дёшево и шустро. Я выбрал DeepSeek — регаемся на platform.deepseek.com, кидаем на баланс $5 (хватит надолго, правда), создаём API-ключ. Без фокусов, всё стандартно: «Create API key», копируем куда-нибудь в секретики (я кидаю в менеджер паролей — не в блокнот на рабочем столе, ага).
Дальше снова подключаем Cursor-руки:
– В чат с Cursor (или в Composer/Agent Mode) даём задачу: «Добавь в конфиг OpenClaw провайдера deepseek, вот ключ, вот формат: models.providers.deepseek = { baseUrl: "https://api.deepseek.com", apiKey: "..." }».
– Подставляем свой ключ вместо многоточия. Просим Cursor найти файл конфигурации (обычно это openclaw.json в рабочей директории OpenClaw) и аккуратно вставить этот блок.
– Затем просим перезапустить gateway, чтобы изменения подхватились. Формулировка из серии: «Перезапусти gateway, чтобы конфиг обновился» — норм. Cursor поймёт и сделает.
После этого у нас — живой, мыслящий помощник. Он уже умеет рассуждать, объяснять свои шаги, анализировать твои команды. И — самое приятное — ты за это не платишь космос: DeepSeek реально экономит.

Шаг 3. Telegram — лицо помощника
Без Telegram всё это было бы просто милым CLI-аттракционом. Но мы хотим, чтобы ассистент жил там, где мы живём — в чате.
Делаем так:
1) Открываем Telegram, пишем @BotFather.
2) Команда /newbot, даём боту имя и username (должен заканчиваться на bot). Например, «homelabhelperbot», но ты придумай что-нибудь своё. BotFather вернёт токен вида 123456:ABC-DEF... — это пароль от твоего бота, никому не показываем. Реально никому. Даже соседу-админу, который «только посмотреть».
3) Узнаём свой Telegram ID. Самый простой способ — написать любому сервисному боту типа @userinfobot. Он в ответ скажет твой numeric ID. Сохраняем его туда же, где и ключи.
Теперь подключаем Telegram к OpenClaw через Cursor:
– Говорим Cursor: «Настрой Telegram в OpenClaw: channels.telegram.botToken = <токен>, dmPolicy: "allowlist", allowFrom: [мой Telegram ID]. Мой ID: <число>».
– Смысл:
– botToken — это тот самый токен от BotFather.
– dmPolicy: “allowlist” — политика приватности: отвечать только тем, кто явно разрешён.
– allowFrom — массив ID, кому разрешено писать этому боту (вначале просто ты). Остальным — тишина и покой. Удобно, если бот видит публичные чаты: ничего лишнего он не скажет.
Просим Cursor перезапустить gateway, чтобы Telegram-канал подхватился. Через минуту можно уже написать своему боту «привет», и он ответит чем-то приветливым, если всё ок.

Шаг 4. Кормим знаниями
Сейчас у нас есть мозг (DeepSeek), руки (Cursor+OpenClaw), и лицо (Telegram). Чего не хватает? Памяти о твоей конкретной инфраструктуре. Без неё бот будет гадать: «А где у нас там сервис на 8080?», «А как подключаться к контейнеру номер N?». Нам нужна база знаний.
Самый простой и рабочий подход — три файла в рабочей папке агента: – MEMORY.md — что где живёт, какие сервисы, порты, дисклеймеры, карта твоего хозяйства. – TOOLS.md — как подключаться: какие хосты, какими методами, где лежат ключи. Креды — не в открытом виде в файле, а ссылками на хранилище секретов или описание, откуда брать (и пусть Cursor спросит, когда надо). – AGENTS.md — правила поведения: «не трогай прод без бэкапа», «если делаешь апдейт — сперва план/пруф/подтверждение», «всё логируем».
Тут меня ждал приятный сюрприз: Cursor очень неплохо оформляет это дело, если ты ему нормальным человеческим языком расскажешь, как у тебя всё устроено. Пример диалога с Cursor: – Я: «Создай файлы MEMORY.md, TOOLS.md, AGENTS.md в рабочей папке OpenClaw. Заполни их по моему описанию. Я сейчас пришлю список сервисов и как мы к ним подключаемся». – Дальше я диктую: – MEMORY.md: перечисляю свои сервисы (без подробных секретов), какие запущены в контейнерах/ВМ, на каких портах крутятся (типа «reverse-proxy слушает 80/443», «медиасервер на 8096» и т.д.), что из этого важное, что второстепенное, где бэкапы. – TOOLS.md: говорю, как подключаемся к Proxmox через API-токен (тот, что мы создали), что SSH-ключи лежат в определённой директории (без выкладывания приватного! просто путь и заметку: «доступ у Cursor есть в рамках агента, спрашивай у меня, если что»), какие команды можно выполнять для статуса, где логи смотреть. – AGENTS.md: расписываю правила. Мои любимые пункты: – «Никогда не перезагружай хосты без явного разрешения». – «Перед обновлением системных пакетов — спроси подтверждение». – «Если видишь, что диск близок к заполнению — сформируй план: что чистим, что архивируем, что переносим. Не действуй втихую». – «Если не уверен — задай уточняющие вопросы в чат перед любыми деструктивными действиями». – «Все изменения — с кратким отчётом в конце в чат».
Cursor на основе твоего описания создаст эти файлы, положит рядом с конфигом OpenClaw, и — барабанная дробь — теперь твой помощник знает контекст. На вопрос «что у меня крутится на 8080?» он уже не будет импровизировать, а залезет в MEMORY.md и ответит по факту твоей инфры.
Плюс: когда ты добавляешь новый сервис, достаточно дописать пару строк в MEMORY.md и, при необходимости, в TOOLS.md (как к нему подключаться, как проверять). Универсально, без плясок со скриптами. Хочешь — диктуй Cursor голосом через диктовку, он всё превратит в аккуратные записи.
Финал: что получилось
Теперь у меня в Telegram живёт ассистент, который: – Понимает мою инфраструктуру. – Может проводить проверки и выполнять команды. – Думает через DeepSeek, пишет по-русски, объясняет шаги. – Не говорит с чужими — dmPolicy: “allowlist” рулит.
Примеры живых запросов из чата: – «Проверь статус сервисов». Агент идёт по TOOLS.md: если там указано, как проверять — делает. Например, дергает systemctl или контейнерные статусы, смотрит логи, умеет объяснить, если что-то лежит. – «Сколько занято места на диске». Он знает, как залогиниться по SSH и что запустить (df -h, zfs list — зависит от твоих инструментов, ты это опишешь в TOOLS.md), и вернёт внятный ответ. – «Обнови конфиг роутера». Тонкий момент: для сетевых устройств опиши в TOOLS.md, как ты к ним подключаешься и как безопасно применять конфиги (и обязательно правило в AGENTS.md — без бэкапа и плана — ни шагу). Агент выполнит твой протокол: снимет копию, применит изменения, проверит доступность, отчитается. – «Перезапусти контейнер с медиасервером». Тут пригодится Proxmox API-токен: агент умеет через него дёргать контейнеры/ВМ. Ты только укажи, какой ID или как искать по имени — и добавь это в MEMORY.md, чтобы он не путал «media» и «media-test».
Всё это — из Telegram, с телефона. Если утром в дороге надо быстро проверить «жив ли reverse-proxy», набираешь одну строку — и готово. Если у тебя привычка каждую субботу обновлять контейнеры, поручаешь боту: «Сделай апдейт, но сперва список, что именно поменяется». Он сделает план, ты согласуешь, он применит, пришлёт отчёт. Красота.
Что дальше можно прикрутить: – Мониторинг. Попроси агента раз в день/неделю делать сводку: температура, место, аптайм, статусы ключевых сервисов. Он сам кинет тебе отчёт в чат. – Автоалерты. Если в логах повторяется ошибка — пинг тебе в личку. Ты задаёшь правила словами, агент оформляет. – Канал с постами. Если нравится публичность — сделай отдельный канал, куда агент будет постить апдейты: «контейнеры обновлены», «сделан снепшот», «свободно 20% места». А в личке останутся приватные вопросы и команды.
И да, главный кайф — ты не писал ни строчки кода руками. Все «закрутки гаек» сделал Cursor: где нужно — поправил конфиг, где нужно — перезапустил gateway, где нужно — уточнил у тебя, как правильно. Ты не борешься с синтаксисом и флагами, ты говоришь с ассистентом человеческим языком.
Как это выглядит в задачах для Cursor (чтобы было под рукой)
Вот те самые фразы, которые у меня реально сработали. Можно копировать и адаптировать:
Установка OpenClaw: «Установи OpenClaw на этот сервер:
curl -fsSL https://openclaw.ai/install.sh | bash, потом запусти onboarding. Если потребуются права рута — запроси. По окончании покажи, где лежит openclaw.json и как перезапускать gateway».Добавление DeepSeek: «Добавь в конфиг OpenClaw провайдера deepseek, вот ключ, вот формат:
models.providers.deepseek = { baseUrl: "https://api.deepseek.com", apiKey: "..." }. Вставь в openclaw.json и перезапусти gateway».Подключение Telegram: «Настрой Telegram в OpenClaw:
channels.telegram.botToken = <токен>,dmPolicy: "allowlist",allowFrom: [<мой Telegram ID>]. После правок перезапусти gateway».Память и правила: «Создай рядом с openclaw.json файлы MEMORY.md, TOOLS.md, AGENTS.md. Я пришлю описание инфры — оформи в структурированные списки и таблицы. Сформируй чек-лист для AGENTS.md: как подтверждать опасные операции, как логировать, как делать бэкапы перед изменениями».
Проксмокс-токен (на стороне Proxmox, если нужно через CLI):
pveum user token add root@pam!openclaw --privsep 0
Важные оговорки (чтобы не наступить на грабли)
- Токены и ключи — это пароли. Храним в менеджере паролей. В чат не кидаем. В конфиги вставляем через Cursor, не публикуем скриншоты в чат-поддержку.
- allowFrom — твой белый список в Telegram. Пока ассо правильно не настроен, пусть отвечает только тебе. Потом можно расширить, если есть семья/коллеги.
- Агент — это исполнитель. Его надо научить твоим правилам: «без бэкапа — ни шага», «всё опасное — с подтверждением», «сначала план, потом действие». Пропиши это в AGENTS.md, и ты удивишься, насколько послушнее становится система.
- DeepSeek дешёвый, но не бесплатный. Следи за расходами — обычно это копейки, но метрика рулит.
- OpenClaw — это шина. Если ты хочешь, чтобы агент реально умел, скажем, лезть в контейнеры или в роутер — опиши путь: куда подключаться, какие команды, где конфиги. Без магии: «не знаешь — спроси». Он спросит.
Маленькие трюки, которые сэкономили мне время
- Попроси Cursor после каждого шага оставлять в чате короткий «что сделал / как откатить». Иногда очень выручает.
- В MEMORY.md добавь раздел «Критично важные сервисы». Пусть в отчётах они идут первыми.
- В TOOLS.md положи раздел «Диагностика»: команды для быстрого анализа проблем сети/диска/CPU. Потом ты просто пишешь: «Запусти стандартную диагностику» — и получаешь понятный отчёт.
- Если боишься, что агент что-то поломает — напиши: «Все операции — в dry-run, кроме явно подтверждённых». Для многих действий dry-run — это просто «покажи план и команды». Работает.
- Раз в неделю проси бота: «Проведи самоаудит: что можно оптимизировать». Он предложит: чистка логов, ротация бэкапов, архивирование. Иногда попадаются шикарные идеи.
Что получилось в итоге (по ощущениям)
- Субъективно — как будто у тебя появился дежурный дежурный. Пока ты на встрече, он проверил статусы. Пока ты делал кофе, он собрал отчёт. Пока ты думал «надо бы перезапустить медиасервер» — он уже спрашивает: «сделать сейчас?».
- Важные штуки стали ближе. Раньше «посмотреть место на диске» — это лезть в SSH, вспоминать логины, пароли, команды. Сейчас — одна строка в чате. Разница чувствуется.
- Никакой запертой магии. Ты в любой момент можешь открыть конфиг, посмотреть MEMORY.md, поправить AGENTS.md, и агент станет другим — без перекомпиляций и отпусков в ретрит.
Мораль
ИИ-агенты — это не магия, а инструмент. Ты объясняешь словами, что нужно, агент делает. Если он не понял — уточняет. Один вечер — и у тебя есть свой цифровой ассистент по дому, который сидит в Telegram, знает твою инфру и вежливо выполняет просьбы. И да, всё это без «я сейчас напишу скриптик на коленке» — за тебя писарем и монтажником выступил Cursor.
Если кратко по чек-листу:
– Ставим Cursor (бесплатка ок).
– На сервере ставим OpenClaw: curl -fsSL https://openclaw.ai/install.sh | bash, запускаем onboarding.
– Заводим Proxmox API-токен: pveum user token add root@pam!openclaw --privsep 0.
– Берём DeepSeek API-ключ, добавляем в openclaw.json: models.providers.deepseek = { baseUrl: "https://api.deepseek.com", apiKey: "..." }.
– Делаем Telegram-бота через @BotFather, настраиваем: channels.telegram.botToken = <токен>, dmPolicy: "allowlist", allowFrom: [<твой Telegram ID>].
– Кормим MEMORY.md, TOOLS.md, AGENTS.md.
– С радостью переписываемся с собственным ассистентом и больше не бегаем по серверам ради мелочи.
А у тебя есть свой помощник? Что бы ты поручил ему в первую очередь?