Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.
Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Интересные лайфхаки со студенческих времён:
На компьютере крутился сайт с секретным URL для друзей. При заходе по этому URL компьютер подавал звуковой сигнал хозяину выйти в онлайн (если его нет в аське). Всё это немного напоминало xkcd 530:
Беспроводная клавиатура, выполняющая роль пульта Д/У, чтобы ставить на паузу и возобновлять воспроизведение фильмов и музыки из другого конца комнаты.
По сути, 25 лет назад компьютер в комнате выполнял некоторые функции того, что сейчас называют «умной колонкой». А у настоящего домашнего сервера теперь немножко иное предназначение.
Задачи
Типичные задачи личного домашнего сервера, который стоит в комнате:
Экран со статистикой (дашборд). Это может быть мониторинг ресурсов сервера, потребление ресурсов и логи, как на фото внизу, а также финансовые котировки, текущая погода и другие красивые циферки, которые хочется всё время иметь на виду.
Пока экран демонстрирует статистику, в фоновом режиме у нас крутятся другие процессы.
Веб-сервер. Раздача веб-контента через интернет и/или в локальной сети.
Медиасервер. Хранение и раздача видео- и аудиофайлов, чтобы с любого устройства можно было запустить фильмы или музыку по Wi-Fi или через интернет. Для этого нужны торрент-клиент (для скачивания контента) и медиасервер для раздачи, список приложений см. ниже.
Аудио- и видеостриминг. Можно поднять продвинутую платформу для обработки аудио/видео и профессионального стриминга: использовать ffmpeg, обработку видео, транскодирование, кэширование, потом раздачу. Здесь тоже есть специализированные серверные инструменты типа Owncast (что-то вроде Twitch на своём хостинге). Если у нас всего несколько зрителей и хороший канал, нет необходимости вести трансляцию через коммерческие сервисы типа Twitch или YouTube. Опять же, это интересный вариант для трансляции видео с камер наблюдения на смартфон. Например, для просмотра обстановки в квартире во время своего отсутствия.
Фронтенд для веб-сервисов. Прокси для вырезания всей рекламы, удобные клиенты для YouTube, Reddit, Twitter, Google и прочих сервисов, без рекламы и трекинга (список приложений ниже).
В целом получается, что современный домашний сервер выполняет гораздо больше полезных задач, чем 25 лет назад.
Raspberry Pi как комнатный сервер
Простой одноплатник типа Raspberry Pi тоже используют как домашний сервер. В качестве более простого веб-сервера на RPi рекомендуют Caddy, да и других вариантов хватает, кроме Nginx.
Специально для роли домашнего сервера на RPi (homelab, VM, RockPro, NUC, что угодно) разработана система Umbrel OS — идеальный вариант для самохостинга домашних серверных приложений.
Самый простой способ установки сервера Umbrel OS на любом дистрибутиве Ubuntu и Debian (x86 или arm64):
curl -L https://umbrel.sh | bash
Umbrel OS отлично работает на RPi, любой персоналке/сервере или VPS. Сразу после установки сервер доступен по локальному адресу, например http://192.168.67.130, как на КДПВ.
Своеобразный аналог Umbrel OS — домашний сервер Tipi, тоже с отличным каталогом приложений для самохостинга. Во многом он пересекается с Unbrel OS, хотя тут у разработчиков свои предпочтения. Например, для блокировки рекламы по DNS они выбрали Adguard Home, для стриминга аудиокниг — Booksonic, для публикации блога — платформу Haven и так далее. Но это просто выбор для родного репозитория, а в реальности можно поставить любое приложение на свой вкус.
Демо-инстанс Tipi. В неофициальном руководстве в качестве сервера рекомендуются «микрокомпьютеры» типа Dell Optiplex (на фото) или Lenovo ThinkCentre, хотя в реальности подойдёт любой компьютер, и даже RPi.
Pi-hole — фильтрация интернет-трафика во всей сети, блокировка рекламы.
Plex — проприетарный медиасервер для стриминга (в качестве свободной альтернативы можно использовать Jellyfin).
Transmission — быстрый и простой торрент-клиент, с ним интегрируется менеджер/индексатор Radarr или Sonarr для мониторинга RSS-раздач и автоматического скачивания новых эпизодов. Всё это сразу подгружается в Plex/Jellyfin. Есть ещё менеджер Lidarr — то же самое, только для музыки, и Prowlarr для интеграции Lidarr, Mylar3, Radarr, Readarr и Sonarr в одном интерфейсе.
Nextcloud — опенсорсная замена Google Drive и другим облачным хостингам.
PhotoPrism — хранение фотографий, красивый интерфейс для просмотра альбомов и удалённого доступа.
Invidious — клиент для YouTube без трекинга и рекламы.
Nitter — фронтенд для Twitter (если вы им ещё пользуетесь).
Whoogle — фронтенд для Google, очищенный от рекламы, скриптов, ссылок AMP, кукисов и трекинга по IP-адресам с профилированием пользователей, чем занимается Google.
LibReddit — альтернативный приватный фронтенд для Reddit, тоже без трекинга и рекламы.
SyncThing — синхронизация файлов между всеми устройствами.
В ноябре 2022 года началась волна массового исхода из Twitter и других социальных сетей. В качестве альтернативы часто выбирают глобальную распределённую сеть Mastodon на открытом протоколе ActivityPub, поэтому упомянем это приложение отдельно от всего списка как самое актуальное в эти дни.
Инстанс Mastodon можно поднять на чужом сервере или на своём, который стоит дома (инструкция для самохостинга).
Есть инструменты типа Twitodon для поиска пользователей Mastodon среди всех пользователей Twitter, которых вы читаете, чтобы подписаться на них уже в свободной сети.
Pi4 как повседневный компьютер
Кроме функций сервера (о чём мы говорили выше), RPi может работать как обычный повседневный компьютер. Восьми гигабайт RAM достаточно, чтобы установить десктопную ОС и выполнять рутинные задачи — открывать сайты в браузере (Firefox), редактировать тексты (LibreOffice), читать почту, программировать (Pluma + LAMP-стек для локалхоста), редактировать фотографии (GIMP) и монтировать видео (KdenLive), смотреть видео на YouTube и даже играть в простенькие игры типа Mahjong. Хотя нормальные игры такой компьютер не потянет.
По отзывам пользователей, для настольного ПК на базе RPi оптимально подходит операционка Ubuntu Mate (на обычной Ubuntu немного лагает курсор мыши, на Raspberry Pi OS не хватает некоторых привычных функций типа Redshift, а Xubuntu не удалось установить на RPi). Пассивного алюминиевого радиатора вполне достаточно для охлаждения, но желательно мониторить температуру с помощью Psensor. Из лайфхаков — большая USB-флешка в качестве внешнего накопителя и возможность автономной работы с питанием от пауэрбанка. Можно смастерить красивый корпус и прикрепить тачскрин для быстрых операций без внешнего монитора. Красота.
Если хочется маленький компьютер помощнее и подороже, то можно взять мини-ПК с 16 ГБ RAM и SSD 512 ГБ типа Intel N5105 в районе $220:
Но преимущество RPi в низком энергопотреблении и отсутствии активного охлаждения (полная тишина). Так что он идеален для работы в качестве сервера 24/7.
Сегодня у почти каждого в кармане смартфон, однако некоторые вещи по-прежнему быстрее делать на большом экране и удобной клавиатуре. А если домашний сервер стоит прямо возле кровати, то качество жизни выходит на принципиально новый уровень!