VPSSpark Блог
← Вернуться к дневнику

OpenClaw Gateway на Linux VPS в 2026: GitLab CI/CD автовыкладка против чистого SSH — матрица решений и FAQ по подводным камням пайплайна

Заметки о сервере · 2026.05.13 · ~6 мин

GitLab CI/CD и SSH для OpenClaw Gateway на Linux VPS

На типичном Linux VPS OpenClaw Gateway живёт рядом с reverse proxy, unit’ами systemd и томами с токенами каналов. Вопрос 2026 года не «нужен ли Git», а кто и как переносит новый образ или бинарь на хост: GitLab CI/CD с защищёнными ветками и переменными или администратор по SSH с блокнотом команд. Автоматизация снижает дрейф и bus factor, но добавляет собственный класс отказов — runner не подобрался, deploy job завис в ожидании ручного gate, токен реестра не совпал с окружением. Для HTTPS, онбординга и поуровневого отката держите общий runbook: 2026: OpenClaw Gateway в продакшене — openclaw onboard, openclaw doctor / openclaw fix, HTTPS (Nginx/Caddy) и откат на Linux VPS. Если вы масштабируете CI и временные узлы, полезен соседний чеклист по токенам и сети: Короткий цикл CI в 2026: всплеск сборок и новый облачный Mac — регистрация Runner, сеть и минимальные токены за 30–60 минут (чеклист и FAQ).

CI/CD
Аудит и повторяемость
SSH
Быстрый первый вывод
Digest
Общий минимум для обоих

Матрица решений: GitLab CI/CD против чистого SSH

Отметьте строки, которые реально касаются вашей команды; «плюс» у колонки означает меньше сожалений при ночном инциденте, а не догматическую победу.

Фактор GitLab CI/CD Чистый SSH
Размер команды и bus factor История job’ов и YAML как контракт Знания в голове одного человека без runbook’а
Время до стабильного Gateway Дольше настройка runner’ов, registry, правил Часто быстрее для одного администратора
Дисциплина версий Теги образов, protected environments Риск неявного latest и правок на месте
Секреты CI/CD Variables, masked, environment scope .env на диске — жёсткие права и ротация вручную
Откат Перекат предыдущего дайджеста job’ом Последний рабочий compose и снимок тома под рукой
Рабочий гибрид
Образ и digest публикует GitLab Registry из pipeline, а на VPS вы промотируете версию вручную по SSH после ревью. Так сохраняется аудит артефакта без полного доверия автоматическому compose up на каждый push.

Подводные камни пайплайна GitLab (короткий FAQ)

Deploy job не стартует. Чаще всего виноваты protected branches: пользователь CI не имеет права писать в целевую ветку или deploy разрешён только maintainers. Проверьте также теги runner’а — job с tags: [shell-prod] молча зависнет, если свободен только docker runner без этого тега.

401 к Container Registry. Разведите deploy token, project access token и CI_JOB_TOKEN: у последнего узкое окно прав и оно зависит от настроек «доступ к реестру». Для кросс-проектных pull’ов иногда проще отдельный read-only token с явным сроком.

Два параллельных pipeline на один VPS. Без mutex через resource group или внешнюю блокировку второй job может перезаписать compose в середине health-check первого. Для шлюза с открытыми сессиями это особенно болезненно.

«Всё зелёное», но шлюз не поднялся. Убедитесь, что deploy stage действительно ждёт готовности процесса (health через loopback или проверка unit’а), а не завершается на успешном docker compose up до старта приложения.

Маскирование переменных. GitLab скрывает значения в логах, но не отменяет утечку через артефакты или отладочные echo в дочерних скриптах. Держите deploy-ключи и пароли реестра в отдельных переменных с scope только на production environment и запретите наследование в дочерних pipeline fork’ов, если репозиторий публичный.

Воспроизводимый каркас GitLab → Linux VPS

Минимальная последовательность: сборка и push образа с семантическим тегом и digest, затем отдельный stage с SSH на VPS под ограниченным пользователем, pull по digest, compose up -d, дымовой health. Секреты — только в CI variables; на диск VPS кладите сжатый env-файл вне Git с правами 0600.

Скелет .gitlab-ci.yml (упрощённо)
# build: docker build + push с тегом коммита
# deploy:
script:
  - ssh deploy@$PROD_HOST "cd /srv/openclaw && echo $GATEWAY_DIGEST > .digest && docker compose pull && docker compose up -d"
  - ssh deploy@$PROD_HOST "curl -fsS http://127.0.0.1:PORT/health"

Чистый SSH: когда он оправдан

Ручной режим уместен на этапе прототипа, при редких релизах и когда вы активно калибруете systemd, firewall и пути томов. Зафиксируйте digest каждого pull’а в локальном versions.txt, храните предыдущий compose рядом и документируйте две команды отката — иначе ночной SSH превращается в импровизацию.

Реализм отката
CI/CD не отменяет необходимость снимков данных каналов. Перед bump образа снимите том или каталог сессий — откат бинаря без данных быстрее не делает восстановление доверия у внешних API.

Короткие ответы

Нужен ли отдельный runner на том же VPS, что и Gateway?

Необязательно, но избегайте сборки тяжёлых образов на слабом прод-узле: вынесите build в shared runner или отдельный builder, а на VPS оставьте только pull и перезапуск.

Заменяет ли GitLab Review Apps этот сценарий?

Review Apps хороши для веб-сервисов; для шлюза с долгоживущими токенами и webhook часто достаточно staging environment с теми же mount-путями, что и прод, но изолированными секретами.

Нужны ли merge trains для деплоя Gateway?

Только если вы регулярно сливаете несколько merge request подряд в одну защищённую ветку и готовы к более длинной очереди и дополнительным билдам. Для типичного одиночного production branch чаще хватает правила «один активный deploy» через resource_group или ручной gate в environment, чтобы два job не переписали друг другу compose на одном хосте.

Единая дисциплина артефакта
И в GitLab, и при SSH побеждает один и тот же принцип: неизменяемый образ по digest, явный список монтирований и проверка health после каждого изменения. YAML лишь автоматизирует то, что вы уже считаете безопасным вручную.

Облачный Mac mini как соседний слой к Linux Gateway

Linux VPS отлично держит OpenClaw Gateway, webhook и дешёвый постоянный egress; типичная боль остаётся на стороне Apple-нативных задач — подпись, Xcode и тяжёлые нативные сборки. Облачный Mac mini M4 даёт тот же привычный Unix-инструментарий (SSH, Homebrew, контейнеры там, где уместно), но на железе с унифицированной памятью Apple Silicon, где компиляторы и линкер не упираются в типичные узкие места ПК того же ценового класса.

Для долгоживущих вспомогательных сервисов macOS предлагает низкое энергопотребление в простое (у класса Mac mini порядка нескольких ватт), бесшумную работу и заметно более редкие незапланированные перезагрузки по сравнению со многими сборками Windows. Gatekeeper, SIP и FileVault вместе сужают поверхность атаки; совокупная стоимость владения оказывается ниже, чем у громоздких рабочих станций, если считать время инженера и риск ночных инцидентов.

Если вы строите цепочку «Linux control plane + Apple-нативные артефакты», VPSSpark с облачным Mac mini M4 — практичный мост между VPS и продакшен-качеством iOSознакомьтесь с тарифами и оставьте GitLab деплой предсказуемым, пока сборки живут там, где им положено.

Акция

GitLab автоматизирует выкладку — не забывайте digest и health

Linux VPS · OpenClaw Gateway · Повторяемые деплои и откат

На главную
Акция Смотреть тарифы