Skip to main content


Полезная информация для новичков

О нашем узле (entropysource.ru)
О проекте
Правила пользования сайтом

Теория
Федерация не равно Мастодон

Как пользоваться
Что такое introduction и про полезных ботов
Разбираемся с лентами записей
Оформление записей во Френдике - специфика взаимодействия с Мастодонтом
Взаимодействие с другими узлами Федерации

Углубление в Федиверс
Каталоги узлов Федерации
Боты репостеры

#Пользователям #инструкция


О проекте | About


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

Является частью Федерации(Fediverse) - одним из узлов объединённых децентрализованных независимых интернет-сервисов.

Работает на основе проекта Friendica - платформе для ведения блогов и социального взаимодействия. Friendica поддерживает множество протоколов Федерации и умеет взаимодействовать со всеми его проектами, включая Hubzilla, Diaspora, Mastodon / Pleroma / Misskey и другими.

Проект создан как площадка для самовыражения, свободная от навязывания социальных связей (как в классических социальных сетях), рекламы, слежки и диктата корпораций.

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


Eng:


The project is designed for personal and thematic blogs, mainly in Russian.

It is part of the Fediverse - one of the nodes of the united decentralized independent Internet services.

Powered by the Friendica project - a platform for blogging and social interaction. Friendica supports many of Fediverse's protocols and can interact with all of Fediverse's projects, including Hubzilla, Diaspora, Mastodon / Pleroma / Misskey and more.

The project was created as a platform for self-expression, free from the imposition of social ties (as in classical social networks), advertising, surveillance and corporate dictates.

Registration on the project is open as long as the server resources are enough for the current needs of its users. Before using the Entropy Source, you must read and accept the Terms of Use.




Резервное копирование YunoHost с помощью Borg


Инструкция предполагает что вы умеете работать в консоли Linux,
выполнять файловые операции, а также знакомы с протоколом ssh и
основами сетевого взаимодействия


Задача


Не допустить потери пользовательских данных при возникновении проблем с сервером, на котором они хранятся.

Определения


  • Сервер - система, которая будет хранить бэкапы. Для примера возьмём за адрес сервера mystorage.space
  • Клиент - система с работающим YunoHost, с которого будут сниматься резервные копии. Например myhosting.space


Предварительные условия


  1. Сервер, на котором будем хранить бэкапы
  2. Возможность стабильного доступа к этому серверу по ip или доменному имени (напрямую или через сетевое устройство с белым IP)
  3. Права рута для установки и настройки Борг-сервера и доступа ssh для Борг-клиента


В качестве хранилища бэкапов у меня используется Synology, поэтому в
части руководства будет описана специфика его настройки.


Настройка

Настройка сервера бэкапов
Установка Borg


В общем случае Borg присутствует практически во всех популярных дистрибутивах. Информацию по установке можно получить на этой странице.

В случае с Synology, Borg можно установить через Центр пакетов, найдя его через поиск в разделе Сообщество. После установки в интерфейсе пользователя ничего не появится т.к. это консольная утилита. При установке необходимо будет ввести пароль для дешифровки бэкапов - этот пароль нужно сохранить в надёжное место!

Подготовка пользователя


Необходимо создать пользователя и группу, а так же директорию для ключа. Пользователя и группу, можно к примеру назвать borg-backup. После создания, необходимо соответственно включить пользователя в группу.

В Synology управление пользователями и группами производится через веб-интерфейс, в Панели управления. Созданного пользователя необходимо добавить в группу administrators, иначе доступ по ssh работать не будет.

Далее необходимо создать каталоги и выдать на них права. Обычно каталог пользователя располагается по адресу /home/, но у Synology немного другая структура, команды ниже приведены для него:

# mkdir -p /var/services/homes/borg-backup/.ssh
# touch /var/services/homes/borg-backup/.ssh/authorized_keys
# chown -R borg-backup:borg-backup /var/services/homes/borg-backup
# chmod -R 0700 /var/services/homes/borg-backup
Настройка клиента
Установка Borg


Установка происходит через веб-интерфейс, также, как и для других пакетов YunoHost. Для того чтобы через поиск можно было найти Borg, в фильтре справа от поисковой строки необходимо выбрать пункт "все приложения".

В процессе установки необходимо ввести адрес Сервера и каталог для бэкапов.

Для удобства в качестве каталога назначения можно указать адрес сервера, с которого снимается бэкап. Вместо доменного имени можно использовать IP, порт также не обязательно должен быть 22, если например у вас настроен проброс порта с маршрутизатора на Сервер.

ssh://borg-backup@mystorage.space:22/~/myhosting.space
Настройка и проверка доступа по ssh


После установки Borg на YunoHost сгенерируются ключи доступа по ssh, публичный ключ необходимо вписать на сервер. Взять его можно в админке YunoHost, в разделе Приложения / borg. Ключ будет находиться в строке Public key: и выглядит примерно так: ssh-ed25519 AAAAC3NzaC1lZD..... Копируем его в буфер обмена или куда-нибудь ещё.

Далее необходимо вставить ключ на Сервер, в файл /var/services/homes/borg-backup/.ssh/authorized_keys

Для того, чтобы избежать проблемы с поиском исполняемого файла borg на сервере, необходимо в строке перед ключом вставить путь к исполняемому файлу borg. Для Synology это выглядит так: command="/usr/local/bin/borg serve" ssh-ed25519 AAAAC3NzaC1lZD....

Узнать, где исполняемый файл располагается в вашем дистрибутиве можно командой:

# type -a borg

Чтобы проверить авторизацию, необходимо зайти на Клиента в консоль под рутом и выполнить команду:
# ssh -i ~/.ssh/id_borg_ed25519 borg-backup@mystorage.space -p 22

В результате должна произойти авторизация на Сервер. Консоль при этом не вернёт ввод, из-за запуска исполняемого файла borg.
Ручной запуск и проверка


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

# systemctl start borg

Консольный ввод при этом повиснет и продолжительность этого подвисания напрямую связана с объёмом данных резервного копирования.

Если что-то пошло не так, подробный лог можно посмотреть в админке YunoHost в разделе Инструменты / Логи.

После того как консоль вернёт управление, можно запросить с сервера информацию о бэкапах:

# app=borg; BORG_PASSPHRASE="$(yunohost app setting $app passphrase)" BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=yes " borg info "$(yunohost app setting $app repository)"

Отчёт по резервному копированию также можно посмотреть через веб-интерфейс YunoHost в разделе Приложения / borg на вкладке Advanced.

Восстановление


Полное восстановление должно происходить также в YunoHost с установленным borg и настроенным подключением по ssh. Понадобится ключ для расшифровки бэкапов, о котором указывалось вначале, а также перенос ключа для подключения по ssh с Клиента на Сервер т.к. при новой установке borg ключ сгенерируется новый.

Для того чтобы восстановить бэкап, нужно знать его имя, для этого необходимо выполнить команду из прошлого раздела.

После получения имени необходимо сформировать команду и выполнить её в консоли на Клиенте. Для примера я укажу для восстановления бэкап Hubzilla:

app=borg; BORG_PASSPHRASE="$(yunohost app setting $app passphrase)" BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=yes " borg export-tar "$(yunohost app setting $app repository)::_auto_hubzilla-2023-02-05_14:28" /home/yunohost.backup/archives/hubzilla.tar

В этой команде имя бэкапа _auto_hubzilla-2023-02-05_14:28.
Я не стал указывать полное имя файла для архива т.к. YunoHost потом не
даст удалить этот архив через интерфейс - там ограничение в 30
символов на имя файла бэкапа, поэтому архив называется просто
hubzilla.tar


Заключение


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

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

Настройку частоты резервного копирования также можно произвести достаточно гибко через настройки веб-интерфейса. Там есть соответствующее поле, работающее с форматом systemd OnCalendar format. Например можно указать 3:00 и резервное копирование будет выполняться каждые сутки в 3 часа ночи.

Источники