Открытая платформа для своих: как и зачем использовать Yunohost

<
57c8cb5f90433c079a849049ee5f31db.jpg

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

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


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

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

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

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

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


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

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

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

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

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

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


8be15ea8b075b29a3a4a496bfcafdfb4.png


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

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

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

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

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

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

c5a43202d082b9d27228a20fe96b6760.png

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

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

ssh root@, вводим пароль, подключаемся

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

apt update
apt upgrade -y

Устанавливаем curl
apt install curl -y

Получаем скрипт и устанавливаем
curl https://install.yunohost.org | bash

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

d6593d585637fb64122f9e98fc377443.png

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

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

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

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

8d1c411a998b3c4e00d6a7cce52342b9.png

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

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

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

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

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

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

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

3a049ca6ac518fe9f2b451153d9b1618.png

54aadd16d16115fda6810e3e43d6660a.png

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


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

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

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

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

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

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

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

598efa9644b3ca0881c67c61caad902c.png

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

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

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

a7cf293ef45ec3133facade2c431c9fa.png

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


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

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

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

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

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

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

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

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

ede12c569ca7944fa28a9f62ef6f189d.png

41584884cdb6c569c7ee6e6b3efeedc7.png

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

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

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

a7967e22eecf5b618d11e5ae90c9fcea.png

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

6169a3042617085548252589cd60d826.png

52d8abbb2c503e6625f6f9a3f70630f1.png

6169a3042617085548252589cd60d826.png

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

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

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

566983eedf1a803fab127028fa06842f.png

Ошибка (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, например, что упрощает переход на другой сервер:

f9172f1a84a7b1c1ebea24ef7ff9a9d5.png

510fe7c82c091b05fd90512e564f858a.png

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


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

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

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

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

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

И это все!

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

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru