Просто блог Андрея

Сказ о том, как у меня в квартире появился сервер. И я, при этом, не айтишник.

Да, я не айтишник. По профессии — преподаватель-технарь.

Мне просто было интересно.

Начал я довольно давно с мини-ПК, размером с мощный зарядник для телефона (raspberry pi 4). Первое время мне удавалось только раздавать видео по внутренней сети (на все устройства, подключённые к одному роутеру), скачивать торренты, позже - синхронизировать отдельные папки между устройствами.

Потом я узнал про NextCloud - облачное хранилище, которое можно развернуть на своём сервере. Уже само по себе оно ничем не хуже того же Яндекс Диска, а куча расширений делают его гораздо функциональнее. _20250216_203907 Домашняя страница NextCloud

Но далее я споткнулся об ограниченность своих познаний в linux и отсутствие времени и желания их сильно расширять. Попытки установить что-то ещё спотыкались на сложности с совмещением нескольких сервисов на одном устройстве.

И тут мне, чисто случайно, посоветовали YunoHost - ОС для серверов, что создавали именно с расчётом на пользователей, вроде меня: многие вещи автоматизированы, знания в linux нужны самые минимальные. По итогу, даже чуть меньше, чем у меня есть.

На радостях с такого открытия я даже купил новый, полноценный мини-ПК под свой сервер.

Итак, в итоге в моей квартире стоит вот это небольшое чудо, вариант собранного под себя конструктора для гиков:

  1. Мини ПК с процессором N95, 8 Гб оперативной и 128 Гб постоянной памяти.

  2. Док c HDD - 2 + 4 Тб

  3. Адаптер для подключения устройств умного дома (протокол Zigbee)

server

Сразу установил YunoHost, после небольшого знакомства с возможностями и устройством он мне очень понравился. Только надо было решить пару проблем, связанных с санкциями и недоступностью некоторых сайтов с ПО (в конце статьи).

В юнохост (так, вроде, правильно), есть целый каталог готовых к установке приложений

Каталог приложений YunoHost

Какое-то время я ставил то одно, то другое и смотрел, что лично мне нужно, а что - нет.

На данный момент осталось следующее:

  1. NextCloud - свободное облачное хранилище. Удобный интерфейс, приложения для синхронизации, возможность настройки под себя. Сейчас у меня там:

Приложения на телефоне, завязанные на мой сервер

Домашние файлы
Весь семейный фото- и видео-альбом
Контакты
Календарь
Заметки
Задачник

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

Есть фотоальбом с распознаванием лиц и удобным просмотром по хронологии

Можно доустановить: онлайн-офис, музыкальный плеер, книгу рецептов, мессенджер с функцией видео-конференций и ещё кучу всего.

  1. Home Assistant - система управления умным домом. На данный момент подключил в него почти всё, что было в квартире из умного: свет, розетки, пылесос и прочее. Позволяет всё настроить под себя, особенно расположение кнопок и вывод информации с датчиков. Стартовый экран Home Assistant на моем сервере. Только самое нужное. Стартовый экран Home Assistant на моем сервере. Только самое нужное.

  2. Transmission - управляемая удалённо закачка торрент-файлов. Думаю, объяснять не надо.

  3. DLNA - программа для раздачи фото и видео на устройства в той же локальной сети (телефоны, планшеты, ПК, умные ТВ и прочее) - очень удобно и просто работает.

  4. Jellyfin - возможность просматривать те же фото и видео удалённо с любого устройства через специальное приложение.

  5. Matrix - мессенджер. Просто свой мессенджер. Без рекламы, слежки и прочего. И автономный, на случай отключения от глобальной сети. С возможностью общаться с другими, у кого тоже установлен matrix — подробнее.

  6. IMAP - своя почта. То же самое, что и мессенджер, только почта. И пользуюсь, иногда, уже сейчас. Плюс возможность использовать тот же Delta chat.

  7. Jitsi — аудио- и видео-звонки с подключением по ссылке, вроде MS Teams или Яндекс телемоста.

Если пункты 7 и 8 - это, скорее, на всякий случай, то первые 6 стали полноценной частью моего быта.

Уже давно я пришёл к пониманию, что запись предстоящих событий, задач сильно облегчает жизнь взрослого человека. В заметки я постоянно записываю что-то по рабочим и домашним делам, веду записи прочитанного или отмечаю, что ещё хотелось бы прочитать. Наиболее удобным инструментом для всего этого для меня стал NextCloud.

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

Умный дом у себя в квартире я делал уже давно, но на основе Яндекса. Теперь он выступает только как модуль для голосового управления, а сами устройства подключены к гораздо более гибкой и универсальной системе, которую модифицируют под себя сотни людей со всего мира.

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

Повторюсь, в YunoHost также есть уже готовые пакеты для много другого: синхронизации, удалённого хранения и управления. И даже общения - вы можете создать собственный "инстансы" соц. сетей: Mastodon, PeerTube, PixelFeed (аналоги, соответсвенно: твиттера, ютуба и инстаграмма). То есть свободно общаться в кругу друзей (твой сервер - твой правила) и не только, так можно общаться и с людьми с других таких же серверов - подробнее.

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

Отдельное спасибо и низкий поклон всем, кто делает и поддерживает весь этот софт, особенно - YunoHost, NextCloud и Let’s Encrypt.

Далее идёт чисто техническая информация.

Размещение своего сервера для личных нужд именуется термином Self-hosting (Селфхостинг).

Кроме железа, про это написано много, нужен удалённый доступ к нему извне. Я использовал классический способ: подписался на постоянный IP у своего провайдера и зарегистрировал домен (свой буквенный адрес в интернете):

Домен (domain.ltd) - постоянный IP (адрес моего роутера в мировой сети) - мой сервер (сам мини-пк, подключённый к роутеру)

Есть обходные способы, например noip.com

Собственно, если есть желание создать что-то подобное, рекомендую начать с YunoHost и его документации, по ходу изучая необходимые вещи в администрировании Linux.

При этом, необходимо по ходу изучать, что такое IP, DNS, хостинг и прочее - это позволит не наделать ошибок, и поможет правильно задавать вопросы на форумах, если это понадобится. Правильно заданный вопрос - половина ответа. И да, вот те ошибки, которые мне пришлось сразу исправить в YunoHost (на момент января 2025 г.):

  1. E: Failed to fetch https://packages.sury.org/php/dists/bookworm/InRelease 451

Нужно заменить sury.org на sury.su в /etc/apt/sources.list.d/extra_php_version.list

  1. W: GPG error: The following signatures couldn't be verified because the public key is not available.

Подтянуть недостающие ключи:

$ sudo wget --timeout 900 --quiet "https://packages.sury.su/php/apt.gpg" --output-document=- | gpg --dearmor > "/etc/apt/trusted.gpg.d/extra_php_version.gpg"

$ sudo wget --timeout 900 --quiet "https://dl.yarnpkg.com/debian/pubkey.gpg" --output-document=- | gpg --dearmor > "/etc/apt/trusted.gpg.d/yarn.gpg"

⬅ Previous post
Test