UNRUIN
документация · v1.0

Что это

Что такое Unruin

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

Unruin — оркестратор резервных копий, который вы держите у себя. Он снимает копию базы или папки на вашем сервере, кладёт её в хранилище, которым распоряжаетесь вы, копирует во второе место, разворачивает обратно и записывает, развернулась ли она.

Сам он ничего не шифрует и никуда не передаёт: это делает restic. Unruin решает, что снимать, откуда, куда, когда и какими ключами, и он же говорит вслух, когда ответ — «не вышло».

Про имя движка. В панели слово «restic» не встречается ни разу: там это подробность устройства. В документации оно встречается постоянно — вы пишете его в конфигурации и зовёте руками при восстановлении, и прятать имя того, что вы набираете на клавиатуре, было бы издевательством.

Единственное обещание

Копия, которую вы видели развёрнутой.

Зелёная галочка у любого другого средства значит «загрузка завершилась». Это утверждение про передачу по сети, а не про ваши данные. Задание с verify: true не станет зелёным, пока Unruin не вытащит точку восстановления обратно из хранилища, не разложит её во временную папку, не найдёт там хотя бы один непустой файл и не удалит папку обратно. Не получилось — запуск считается неудачным, хотя загрузка прошла.

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

Из чего он состоит

  • Один контейнер. Бинарник, restic, клиенты баз и docker CLI в одном образе. Больше запускать нечего.
  • Один файл конфигурации. jobs.yaml — серверы, хранилища, задания, расписания. Держите его в git или дайте панели писать его за вас. Значений секретов в нём нет никогда, только ссылки на них.
  • Без агентов. Unruin ходит на ваши серверы по обычному SSH обычным пользователем. Для папок и docker-томов он сам доставляет свой restic в ~/.cache/unruin/ на цели, когда его там нет: ни пакетов, ни демонов, ни root, ни единой правки в системе.
  • Без чужих служб. Секреты лежат во встроенном шифрованном хранилище, которое открывается одной мастер-фразой. Ни поставщика, ни учётной записи, ни телеметрии, ни одного исходящего запроса, которого вы не настроили сами.

Два способа прочитать источник

Какой применяется, решает тип источника, и от этого зависит, где происходит работа:

Класс Источники Где работает restic
поток postgres, mysql, command на оркестраторе — дамп льётся в restic backup --stdin
путь files, docker_volume на самой цели — данные не идут по сети дважды

Всё прочее — рассылка по вторым хранилищам, сколько хранить, контрольное восстановление, оповещения — для обоих одинаково.

Чем он не является

  • Не облачная услуга. Ему нужен доступ по SSH к вашим серверам и ключи от ваших копий. Отдать это чужому серверу — ровно то, ради чего этот инструмент и существует, чтобы не отдавать.
  • Не снимок файловой системы и не образ диска. Он копирует базы и папки, а не блочные устройства.
  • Не замена restic. Если вы уже гоняете restic руками и вас всё устраивает, ценность Unruin — в расписании, рассылке копий, проверке и записи о том, что было, а не в самом копировании.
  • Не на много хозяев. Один оператор, один парк машин, один файл конфигурации.

Куда идти дальше

Честно о состоянии

Unruin — личный инструмент, который работает на настоящем парке машин. Опубликован потому, что полезен, а не потому, что закончен. За ним нет компании, нет договора поддержки и нет обещания, что следующая версия ничего не поменяет. Есть: исходники, эта документация и лист восстановления, который работает, даже если потерян сам Unruin.

Всё, что здесь есть

Что это

  • Что такое UnruinОркестратор копий, который разворачивает каждую снятую копию обратно и говорит, если она не развернулась.
  • Что изменилось в 2026-07Что убрала июльская чистка, почему, и как переписать конфигурацию, написанную до неё.

Первые шаги

  • УстановкаОдин контейнер, один файл конфигурации, одна мастер-фраза — и зачем нужен каждый из них.
  • Первая копияОт пустой машины до копии, которую уже развернули обратно и проверили.
  • Подключить серверПользователь для копий, ключ SSH и минимум прав, при котором всё ещё работает.

Как устроено

  • УстройствоТонкий слой поверх restic: порты и адаптеры, два класса источников, путь данных.
  • Что считается успехомПравила, по которым запуск становится зелёным, и каждый случай, когда Unruin отказывается его так назвать.
  • СекретыВстроенное шифрованное хранилище, два запасных пути и две вещи, которые обязаны лежать отдельно.

Настройка

  • Справочник jobs.yamlКаждое поле файла конфигурации: что принимает и что делает, если его не написать.

Панель

  • ПанельЧто панель показывает, что она умеет менять и по каким правилам собраны её экраны.
  • Вход и выставление наружуТри способа войти, что каждый из них защищает, и почему в четвёртой конфигурации Unruin не стартует.

Компаньон

Эксплуатация

  • РазвёртываниеUnruin в бою: образ, состояние, секреты, выставление панели наружу и список проверок перед запуском.
  • Свой реестр образовМесто, куда образ просто кладут: одно хранилище, две двери — читать всем, писать по паролю.
  • Команды и переменныеКаждая команда, каждый флаг, каждая переменная окружения и что значит каждый код возврата.
  • Настройка через ИИСервер MCP: помощник заводит серверы, хранилища и задания через тот же проверенный API.
  • Проверка и стенд для опытовОдноразовая цель в Docker, чтобы всё потрогать безопасно, и набор автоматических тестов.

Авария

Бесплатно, целиком ваше, наружу ничего не уходит. Сайт статический: ни аналитики, ни куки, ни внешних запросов.