- PVSM.RU - https://www.pvsm.ru -

Насколько круто иметь свой сервер в комнате

Насколько круто иметь свой сервер в комнате - 1


Некоторые олды часто вспоминают [1] эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.

Интересные лайфхаки со студенческих времён:

  • На компьютере крутился сайт с секретным URL для друзей. При заходе по этому URL компьютер подавал звуковой сигнал хозяину выйти в онлайн (если его нет в аське). Всё это немного напоминало xkcd 530 [2]:
    Насколько круто иметь свой сервер в комнате - 2

  • Синтезатор речи, читающий входящие сообщения [1].
  • Беспроводная клавиатура, выполняющая роль пульта Д/У, чтобы ставить на паузу и возобновлять воспроизведение фильмов и музыки из другого конца комнаты.

По сути, 25 лет назад компьютер в комнате выполнял некоторые функции того, что сейчас называют «умной колонкой». А у настоящего домашнего сервера теперь немножко иное предназначение.

Задачи

Типичные задачи личного домашнего сервера, который стоит в комнате:

  1. Экран со статистикой (дашборд). Это может быть мониторинг ресурсов сервера, потребление ресурсов и логи, как на фото внизу, а также финансовые котировки, текущая погода и другие красивые циферки, которые хочется всё время иметь на виду.
    Насколько круто иметь свой сервер в комнате - 3

    Пока экран демонстрирует статистику, в фоновом режиме у нас крутятся другие процессы.

  2. Веб-сервер. Раздача веб-контента через интернет и/или в локальной сети.
  3. Медиасервер. Хранение и раздача видео- и аудиофайлов, чтобы с любого устройства можно было запустить фильмы или музыку по Wi-Fi или через интернет. Для этого нужны торрент-клиент (для скачивания контента) и медиасервер для раздачи, список приложений см. ниже [3].
  4. Аудио- и видеостриминг. Можно поднять продвинутую платформу для обработки аудио/видео и профессионального стриминга: использовать ffmpeg [4], обработку видео, транскодирование, кэширование, потом раздачу. Здесь тоже есть специализированные серверные инструменты типа Owncast [5] (что-то вроде Twitch на своём хостинге [6]). Если у нас всего несколько зрителей и хороший канал, нет необходимости вести трансляцию через коммерческие сервисы типа Twitch или YouTube. Опять же, это интересный вариант для трансляции видео с камер наблюдения на смартфон. Например, для просмотра обстановки в квартире во время своего отсутствия.
  5. Фронтенд для веб-сервисов. Прокси для вырезания всей рекламы, удобные клиенты для YouTube, Reddit, Twitter, Google и прочих сервисов, без рекламы и трекинга (список приложений ниже [3]).

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

Raspberry Pi как комнатный сервер

Простой одноплатник типа Raspberry Pi тоже используют как домашний сервер [7]. В качестве более простого веб-сервера на RPi рекомендуют Caddy [8], да и других вариантов хватает, кроме Nginx.

Специально для роли домашнего сервера на RPi (homelab, VM, RockPro, NUC, что угодно) разработана система Umbrel OS [9] — идеальный вариант для самохостинга домашних серверных приложений.

Насколько круто иметь свой сервер в комнате - 4

Самый простой способ установки сервера Umbrel OS на любом дистрибутиве Ubuntu и Debian (x86 или arm64):

curl -L https://umbrel.sh | bash

Umbrel OS отлично работает на RPi, любой персоналке/сервере или VPS [6]. Сразу после установки сервер доступен по локальному адресу, например http://192.168.67.130, как на КДПВ.

Своеобразный аналог Umbrel OS — домашний сервер Tipi [10], тоже с отличным каталогом приложений для самохостинга. Во многом он пересекается с Unbrel OS, хотя тут у разработчиков свои предпочтения. Например, для блокировки рекламы по DNS они выбрали Adguard Home [11], для стриминга аудиокниг — Booksonic [12], для публикации блога — платформу Haven [13] и так далее. Но это просто выбор для родного репозитория, а в реальности можно поставить любое приложение на свой вкус.

Установка Tipi на Ubuntu…

git clone https://github.com/meienberger/runtipi.git

… и запуск:

cd runtipi
sudo ./scripts/start.sh

Демо-инстанс Tipi [14]. В неофициальном руководстве [15] в качестве сервера рекомендуются «микрокомпьютеры» типа Dell Optiplex (на фото) или Lenovo ThinkCentre, хотя в реальности подойдёт любой компьютер, и даже RPi.

Насколько круто иметь свой сервер в комнате - 5

Полезный софт для самохостинга

  • Home Assistant [16] и Node-RED [17] — управление умным домом.
    Насколько круто иметь свой сервер в комнате - 6
  • Pi-hole [18] — фильтрация интернет-трафика во всей сети, блокировка рекламы.
  • Plex [19] — проприетарный медиасервер для стриминга (в качестве свободной альтернативы можно использовать Jellyfin [20]).
  • Transmission [21] — быстрый и простой торрент-клиент, с ним интегрируется менеджер/индексатор Radarr [22] или Sonarr [23] для мониторинга RSS-раздач и автоматического скачивания новых эпизодов. Всё это сразу подгружается в Plex/Jellyfin. Есть ещё менеджер Lidarr [24] — то же самое, только для музыки, и Prowlarr [25] для интеграции Lidarr, Mylar3, Radarr, Readarr и Sonarr в одном интерфейсе.
  • Audioserve [26], audiobookshelf [27] и Boringstreamer [28] — простые серверы для аудиостриминга, то есть раздачи аудиофайлов из папок (аудиокниги, музыка, подкасты).
  • Nextcloud [29] — опенсорсная замена Google Drive и другим облачным хостингам.
  • PhotoPrism [30] — хранение фотографий, красивый интерфейс для просмотра альбомов и удалённого доступа.
  • Invidious [31] — клиент для YouTube без трекинга и рекламы.
  • Nitter [32] — фронтенд для Twitter (если вы им ещё пользуетесь).
  • Whoogle [33] — фронтенд для Google, очищенный от рекламы, скриптов, ссылок AMP, кукисов и трекинга по IP-адресам с профилированием пользователей, чем занимается Google.
    Насколько круто иметь свой сервер в комнате - 7

  • LibReddit [34] — альтернативный приватный фронтенд для Reddit, тоже без трекинга и рекламы.
  • SyncThing [35] — синхронизация файлов между всеми устройствами.
  • Code Server [36] — запуск VS Code [37] на сервере и удалённый доступ из браузера.
  • Vaultwarden [38] — неофициальный сервер для менеджера паролей Bitwarden.
  • Tailscale [39] — не требующий настройки VPN, который даёт доступ к серверу Umbrel из любой точки мира.
  • Synapse [40] — свой инстанс Matrix для децентрализованных чатов, совместимый с клиентами Element [41].
  • Electrs [42] — быстрый и эффективный сервер для кошелька Electrum.
  • Gitea [43] — простой хостинг [6] Git.
  • Uptime Kuma [44] — мониторинг аптайма для своего сервера.
  • … и другие серверные приложения из каталога [45].

Большой набор инструментов и программ для самохостинга можно найти в этом руководстве [46], а также в коллекции awesome-selfhosted [47] и подреддите r/selfhosted/ [48].

▍ Сервер Mastodon

В ноябре 2022 года началась волна массового исхода из Twitter и других социальных сетей. В качестве альтернативы часто выбирают глобальную распределённую сеть Mastodon [49] на открытом протоколе ActivityPub [50], поэтому упомянем это приложение отдельно от всего списка как самое актуальное в эти дни.

Инстанс Mastodon можно поднять на чужом сервере [51] или на своём, который стоит дома (инструкция [52] для самохостинга).

Есть инструменты типа Twitodon [53] для поиска пользователей Mastodon среди всех пользователей Twitter, которых вы читаете, чтобы подписаться на них уже в свободной сети.

Pi4 как повседневный компьютер

Кроме функций сервера (о чём мы говорили выше [54]), RPi может работать как обычный повседневный компьютер [55]. Восьми гигабайт RAM достаточно, чтобы установить десктопную ОС и выполнять рутинные задачи — открывать сайты в браузере (Firefox), редактировать тексты (LibreOffice), читать почту, программировать (Pluma + LAMP-стек для локалхоста), редактировать фотографии (GIMP) и монтировать видео (KdenLive), смотреть видео на YouTube и даже играть в простенькие игры типа Mahjong. Хотя нормальные игры такой компьютер не потянет.

Насколько круто иметь свой сервер в комнате - 8

По отзывам пользователей [56], для настольного ПК на базе RPi оптимально подходит операционка Ubuntu Mate [57] (на обычной Ubuntu немного лагает курсор мыши, на Raspberry Pi OS не хватает некоторых привычных функций типа Redshift, а Xubuntu не удалось установить на RPi). Пассивного алюминиевого радиатора вполне достаточно для охлаждения, но желательно мониторить температуру с помощью Psensor [58]. Из лайфхаков — большая USB-флешка в качестве внешнего накопителя и возможность автономной работы с питанием от пауэрбанка. Можно смастерить красивый корпус и прикрепить тачскрин для быстрых операций без внешнего монитора. Красота.

Если хочется маленький компьютер помощнее и подороже, то можно взять мини-ПК с 16 ГБ RAM и SSD 512 ГБ типа Intel N5105 в районе $220:

Насколько круто иметь свой сервер в комнате - 9

Но преимущество RPi в низком энергопотреблении и отсутствии активного охлаждения (полная тишина). Так что он идеален для работы в качестве сервера 24/7.

Правда, в данный момент на всех площадках дефицит «малинок» и негуманные цены [59]. Будем надеяться, что это временно…


Сегодня у почти каждого в кармане смартфон, однако некоторые вещи по-прежнему быстрее делать на большом экране и удобной клавиатуре. А если домашний сервер стоит прямо возле кровати, то качество жизни выходит на принципиально новый уровень!

Telegram-канал с полезностями [60] и уютный чат [61]

Автор:
oldadmin

Источник [62]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/380808

Ссылки в тексте:

[1] вспоминают: https://interconnected.org/home/2022/10/10/servers

[2] xkcd 530: https://xkcd.ru/530/

[3] см. ниже: #1

[4] ffmpeg: https://ffmpeg.org/

[5] Owncast: https://owncast.online/

[6] хостинге: https://www.reg.ru/?rlink=reflink-717

[7] как домашний сервер: https://joeldare.com/private-analtyics-and-my-raspberry-pi-400.html

[8] Caddy: https://caddyserver.com/

[9] Umbrel OS: https://umbrel.com/

[10] домашний сервер Tipi: https://github.com/meienberger/runtipi

[11] Adguard Home: https://github.com/AdguardTeam/AdGuardHome

[12] Booksonic: https://github.com/popeen

[13] Haven: https://github.com/havenweb/haven

[14] Демо-инстанс Tipi: https://demo.runtipi.com/dashboard

[15] руководстве: https://kyc3.life/running-a-home-server-with-tipi/

[16] Home Assistant: https://github.com/home-assistant/core

[17] Node-RED: https://github.com/node-red/node-red

[18] Pi-hole: https://github.com/pi-hole/pi-hole

[19] Plex: https://github.com/plexinc/pms-docker

[20] Jellyfin: https://github.com/jellyfin/jellyfin

[21] Transmission: https://github.com/transmission/transmission

[22] Radarr: https://github.com/Radarr/Radarr

[23] Sonarr: https://github.com/Sonarr/Sonarr

[24] Lidarr: https://github.com/Lidarr/Lidarr

[25] Prowlarr: https://github.com/Prowlarr/Prowlarr

[26] Audioserve: https://github.com/izderadicka/audioserve

[27] audiobookshelf: https://github.com/advplyr/audiobookshelf

[28] Boringstreamer: https://github.com/fgergo/boringstreamer

[29] Nextcloud: https://github.com/nextcloud/server

[30] PhotoPrism: https://github.com/photoprism/photoprism

[31] Invidious: https://github.com/iv-org/invidious

[32] Nitter: https://github.com/zedeus/nitter

[33] Whoogle: https://github.com/benbusby/whoogle-search

[34] LibReddit: https://github.com/spikecodes/libreddit

[35] SyncThing: https://github.com/syncthing

[36] Code Server: https://github.com/cdr/code-server

[37] VS Code: https://github.com/Microsoft/vscode

[38] Vaultwarden: https://github.com/dani-garcia/vaultwarden

[39] Tailscale: https://github.com/tailscale/tailscale

[40] Synapse: https://github.com/matrix-org/synapse

[41] Element: https://github.com/vector-im/element-web

[42] Electrs: https://github.com/getumbrel/umbrel-electrs

[43] Gitea: https://github.com/go-gitea/gitea

[44] Uptime Kuma: https://github.com/louislam/uptime-kuma

[45] каталога: https://github.com/getumbrel/umbrel-apps

[46] этом руководстве: https://github.com/mikeroyal/Self-Hosting-Guide

[47] awesome-selfhosted: https://github.com/awesome-selfhosted/awesome-selfhosted/blob/master/README.md

[48] r/selfhosted/: https://www.reddit.com/r/selfhosted/

[49] Mastodon: https://joinmastodon.org/

[50] ActivityPub: https://activitypub.rocks/

[51] чужом сервере: https://joinmastodon.org/servers

[52] инструкция: https://docs.joinmastodon.org/admin/prerequisites/

[53] Twitodon: https://twitodon.com/

[54] выше: #2

[55] обычный повседневный компьютер: https://www.heyhomepage.com/?module=blog&link=1&post=4

[56] отзывам пользователей: https://pimylifeup.com/raspberry-pi-ubuntu-mate/

[57] Ubuntu Mate: https://ubuntu-mate.org/

[58] Psensor: https://github.com/chinf/psensor

[59] дефицит «малинок» и негуманные цены: https://rpilocator.com/

[60] Telegram-канал с полезностями: https://inlnk.ru/dn6PzK

[61] уютный чат: https://inlnk.ru/ZZMz0Y

[62] Источник: https://habr.com/ru/post/699726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=699726