Подключить агент флота
Агент флота — маленький демон на другом VPS, позволяющий Dockstash резервировать контейнеры и той машины. Агент сам стучится домой по HTTPS — входящие порты у вас не открываются — и выполняет тот же конвейер «дамп, затем restic», что и основной сервер. Мульти-VPS-флот — функция тарифа Business.
Как это сделать
Откройте экран Fleet
В панели перейдите в Fleet. Экран показывает каждый зарегистрированный агент со статусом онлайн/офлайн, версией и последним heartbeat.
Зарегистрируйте агент
Нажмите Register agent, задайте имя и хост. В том же диалоге заполните поле Project directories — где на том VPS живут ваши Compose-проекты (по умолчанию /var/www): агент будет находить, резервировать и восстанавливать только внутри этих каталогов.
Скопируйте одноразовый токен
Регистрация чеканит токен вида dsa_<agentId>.<secret> и показывает его ровно один раз — на сервере он хранится лишь как HMAC с ключом и никогда не может быть получен снова. Скопируйте сейчас. Потеряли — используйте Rotate key в строке агента: старый токен перестаёт работать в момент чеканки нового.
Установите агент на VPS
Диалог регистрации показывает готовый docker-compose-блок с вашим токеном и каталогами проектов. Вставьте его на целевом VPS и запустите. Встроенный docker-socket-proxy даёт агенту доступ к Docker по принципу минимальных привилегий (только контейнеры + exec) — сырой сокет он не трогает.
docker compose -f docker-compose.agent.yml pull docker compose -f docker-compose.agent.yml up -d --force-recreateПроверьте монтирование каталогов проектов
Каждый указанный каталог должен быть также bind-смонтирован на чтение-запись в compose (одинаковый путь внутри и снаружи) — восстановления пишут файлы обратно. Чтобы добавить каталог позже, откройте диалог Setup агента, добавьте его и повторно выполните показанную compose-команду.
Убедитесь, что агент онлайн
Примерно за 30 секунд придёт первый heartbeat, и строка Fleet переключится в онлайн. Если остаётся офлайн — проверьте, что оба контейнера запущены и ваш адрес Dockstash доступен с VPS.
docker compose -f docker-compose.agent.yml psНазначьте проект агенту
Откройте вкладку Plan проекта и установите «Runs on» на нового агента (по умолчанию — «This server (local)»). С этого момента плановые и ручные копии проекта берёт и выполняет агент, стримя живые логи обратно в вашу панель.
Сделайте это в один клик с Dockstash
Dockstash выполняет ровно тот дамп, что выше, передаёт его restic вовне и автоматически проверяет восстановление тренировкой — без скриптов на поддержке.
Последнее обновление: July 2026
Связанные гиды
Запланировать автоматические копии
Ежедневная копия, еженедельный prune с политикой хранения, проверки целостности и тренировки восстановления — валидируемый cron, одна задача на репозиторий, живые логи.
Чинить падающие копии
Читайте живые логи restic, позволяйте устаревшим блокировкам лечиться самим, оживляйте офлайн-агентов и понимайте heartbeat-оповещения.
PostgreSQL
Резервируем PostgreSQL в Docker
MySQL
Резервируем MySQL в Docker
Часто задаваемые вопросы
Подключается ли сервер Dockstash к моему VPS?
Нет. Связь только исходящая: агент опрашивает и шлёт heartbeat по HTTPS с Bearer-токеном. Вы не открываете входящих портов, и сервер никогда не звонит вашей машине.
Что агент видит на моём сервере?
Только то, что вы разрешили. Доступ к файлам ограничен настроенными каталогами проектов (их нужно явно смонтировать), а доступ к Docker идёт через прокси сокета, открывающий лишь список контейнеров и exec — ни сборок образов, ни монтирования томов, ни root на хосте.
Что будет, если агент умрёт посреди копии?
У каждой задачи есть аренда (по умолчанию 15 минут, продлевается, пока идут логи). Истекла — задача помечается проваленной и уходит оповещение; тихих повторов не бывает, вы всегда знаете, что запуск не завершился.
Работают ли тренировки восстановления на агентах флота?
Пока нет — тренировки выполняются на основном сервере. Резервирование, проверка (restic check), prune и восстановление на агенте работают.
Я ротировал ключ, и агент ловит 401. Что делать?
Запущенный контейнер держит старый токен. Обновите DOCKSTASH_AGENT_TOKEN в docker-compose.agent.yml и пересоздайте контейнер. Ротация сразу отзывает старый токен — так задумано.