Знакомимся с дистрибутивом: рассматриваем возможности, оцениваем простоту настройки и приложения, которых на платформе более 200. А также устанавливаем Yunohost на VPS или свою ВМ. 

Дорогие друзья, я обратил внимание, что на Хабре обошли стороной хороший продукт, достаточно мощный и с отличным потенциалом — это Yunohost. Проект появился на свет в 2012 году. Продукт позиционируется как операционная система, основанная на Debian и предназначенная для хостинга в первую очередь своих личных проектов, проектов друзей, семьи или связанных с ними небольших компаний. Я использую его ежедневно в своем ИТ-быту с 2018 года, и у меня накопился опыт, которым хочу поделиться. 

История знакомства


Мое знакомство с Yunohost началось, как ни банально, с необходимости и лени. Пару лет назад мне пришлось искать альтернативу популярным облакам. Я выбирал программный продукт, который сочетал бы в себе функции облака, несложно ставился и был бы прост в администрировании. 

Не испытываю страха перед терминалом, но наличие UI — это тоже плюс (а почему бы и нет?). Так выбор пал на Yunohost

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

Основное требование — вы должны доверять тем, кого вы хостите на данной платформе, а они — доверять вам. Это не продукт для оказания услуг хостинга широкому кругу пользователей, и это важно!

Как можно использовать Yunohost


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

Но если вы владелец небольшой компании и администрируете веб-сервисы сами, то данный продукт сильно упростит вашу работу. Вы можете организовать свой Git-сервер и работать в команде над кодом. 

Можете установить Wekan, распределять задачи и планировать работу своих сотрудников. Хостить свой сайт на данной платформе. Установить приложение NextCloud, получить свое полноценное облако и принимать материалы от заказчиков, а также делиться макетами с помощью публичных ссылок.

Самый большой плюс от использования Yunohost — безопасность ваших данных. Макеты, код, etc — все это находится в ваших руках в одном месте, а не разбросано по интернету на разных сторонних сервисах.

Перейдем к практике и оценим простоту работы с этой платформой. 

Начало работы: установка на VPS




Вариантов установки Yunohost несколько: это VirtualBox, использование в качестве основной системы на обычном компьютере (загрузка и установка с USB stick), образы для ARM-платформ — Raspberry Pi / OrangePi PC и это не все. Мы будем рассматривать установку на удаленный компьютер, в нашем случае VPS. Установка на виртуальную машину на своем сервере ничем не отличается.

Для данной системы не требуются высокие вычислительные способности, поэтому нам будет достаточно машины со следующими характеристиками:

– 1 Гб оперативной памяти

– 1 ядро. Его вполне хватит для наших целей

– HDD 20 Гб. Этого для начала хватит, потом можно расширить. Кстати у ruVDS есть опция, которую практически никто на рынке не предоставляет — «Большой диск» до 18 Тб.

– ОС Debian 10. Обязательно данная версия, на другой «не взлетит».


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

Далее нужно подключиться к серверу удаленно. Я использую iTerm, вы можете использовать любое другое ПО по вкусу. Также это можно сделать через VNC-консоль сервера, доступную в личном кабинете.

ssh root@<IP_вашего_сервера>, вводим пароль, подключаемся

Обновляем систему

apt update

apt upgrade -y

Устанавливаем curl

apt install curl -y

Получаем скрипт и устанавливаем

curl https://install.yunohost.org | bash

В процессе установки скрипт выдаст уведомление о перезаписи некоторых конфигурационных файлов, а также настройкой SSH-сервера — с ним нужно согласиться. Далее он сам установит все необходимые пакеты. Никаких запросов больше не будет.



Установка занимает от 10 до 15 минут. После успешной, а по другому у меня ни разу не получалось, установки вы получите уведомление, что система установлена и доступна по адресу: https://<адрес_вашего_сервера>


Настройка бэкенда закончена, все дальнейшие манипуляции будут производиться через UI.

Вводим в строку браузера https://<адрес_вашего_сервера> или доменное имя, если у вас уже настроен DNS, как в моем случае. 

Игнорируем уведомление о самоподписанном сертификате и видим приветствие с приглашением пройти короткую настройку:

1. Указываем доменное имя при наличии, которое потребуется для автоматического получения сертификата с Let'sEncrypt:


2. Задаем логин и пароль администратора: 


На этом этапе начнется процесс постустановочного конфигурирования:


Все, система установлена.По умолчанию при переходе по адресу сервера открывается панель авторизации пользователей, админу в ней авторизоваться не получится.

Поэтому мы переходим по адресу: 

https://<адрес_вашего_сервера>/yunohost/admin

Теперь можно авторизоваться, введя пароль, заданный несколькими минутами ранее.


Создание пользователя


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

«Пользователи > Новый пользователь» 

Пользователь сразу получит почту вида @<domain_name>, но её потом можно изменить, если вы решите добавить пользователю отдельный домен.

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

В разделе меню администратора

«Пользователи > Manage groups and permissions»

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


Управление конкретным пользователем осуществляется в разделе:

«Пользователи > Имя_пользователя»

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


Работа с приложениями


Но самое главное в Yunohost — это приложения. Разнообразие воистину поражает. На момент написания статьи их было 213. 

Все приложения протестированы и ранжированы по качеству интеграции с сервисом. Рейтинг составляет сам разработчик платформы, и место в нем зависит от того, насколько полно приложение использует возможности платформы. В этом списке — авторизация через SSO, резервное копирование, восстановление и прочие возможности. Со списком приложений можно ознакомиться из панели администратора: 

«Приложения > Установить»

Все они представлены в официальном каталоге

Процесс установки приложений идентичен, поэтому мы рассмотрим его только на основе Gitea — git-сервере.

Для установки переходим в: 

Приложения > Development 

находим Gitea и нажимаем Установить:



В следующем окне необходимо выбрать название, которое будет отображаться на ярлыке в панели пользователя, путь для доступа к приложению, пользователя, который будет обладать правами администратора. 

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

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


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





Аналогичным образом устанавливаются и другие приложения. Правда, просто?

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

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



Ошибка (YouTube said: Unable to extract video data)

Я потратил много времени на поиск решения, но проблема оказалась простой, а решение несложным. Ошибка связана с тем, что приложение включает в себя устаревшую версию пакета youtube-dl. Для исправления после установки нужно удалить папку с пакетом и клонировать самую новую с официального git'а. Приступим к починке:

  1. Подключаемся по ssh к серверу
  2. Переходим в папку приложения: cd /var/www/alltube/vendor/ytdl-org/
  3. Удаляем все внутри: rm -r *
  4. Клонируем: git clone github.com/ytdl-org/youtube-dl.git

Обновляем страницу и видим, что все заработало. 

Приложения, на которые стоит обратить внимание:


  • AllTube — загрузка видео с видеохостингов;
  • PHP Server Monitor — мониторинг сайтов, сервисов, оборудования. Может проверять как простым ping, так и искать определенный паттерн на странице и отправлять уведомления об ошибках в Telegram;
  • osTicket — тикет-система для общения с клиентами;
  • Gitea — git-сервер;
  • lstu — укорачиватель ссылок;
  • Lufi — сервис для обмена файлами без регистрации;
  • Nextcloud — онлайн-хранилище, обмен файлами. По сути это полноценная платформа, и о ее возможностях написано много статей
  • Etherpad MyPads — онлайн-блокнот с возможностью одновременного редактирования и внутренним чатом между участниками;
  • Rainloop — Веб-почта с современным интерфейсом;
  • Zabbix — Мониторинг серверов, сервисов, IoT устройств.
  • Transmission – BitTorrent–клиент.

Резервное копирование


Мы установили Yunohost на наш VPS, и он успешно работает. Теперь самое время подумать о резервных копиях и рассмотреть порядок восстановления.

Для создания резервной копии нужно перейти в раздел

«Резервное копирование > Новое резервное копирование»

Нам будет предложено, что конкретно мы хотим резервировать. Я обычно делаю полную копию, но возможны варианты. После успешного создания резервной копии будет создан архив по пути /home/yunohost.backup/archives/, который можно загрузить на компьютер из веб-интерфейса. 

Резервная копия содержит в себе все пользовательские данные — пароли администратора и репозитории с gitea, например, что упрощает переход на другой сервер:



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


Чтобы восстановить данные или сменить VPS, нужно установить Yunohost на новой машине до момента, когда вы уже можете зайти в панель администратора. 

Затем либо загрузить по ssh, либо подключиться по sftp и загрузить архив с резервной копией по пути /home/yunohost.backup/archives/.

Теперь вы можете зайти через UI в 

«Резервное копирование > Local archives»,

выбрать архив с вашей резервной копией и нажать «Восстановить».

И это все!

Я искренне надеюсь, что мой опыт и данная статья будут полезны и вы сможете легко сделать собственное облако, хранить свой код в удобном git'е, а файлы в Nextcloud, разместить сайт на WordPress и развернуть свой почтовый сервер.