Пару месяцев назад я приобрел Raspberry Pi 5. И вот что из этого вышло.
О целях
У меня не было какой-то конкретной цели. Основная идея заключалась в том, чтобы отказаться от облачных vds (у меня их было 3 в DigitalOcean). Тем самым немного сократить ежемесячные затраты.
Так как у меня белый ip, я решил перенести на него часть своих сервисов, которые я использую в личных целях.
Но Raspberry Pi 5 даже превзошел мои ожидания.
Но сейчас все по-порядку.
Где и как заказывал
Заказывал у официального представителя, который доставляет в Сербию - GalagoMarket. Доставка из Словении заняла чуть больше 2-х недель.
P.s. На тот момент я не знал, что налог на ввоз в Сербию составляет 30%, если стоимость товара превышает 50 евро).
Комплектация
Я решил заказать полный комплект, чтобы не заморачиваться с доп. частями;
- RASPBERRY PI 5, 8GB;
- Кейс RASPBERRY PI 5 CASE, WHITE/RED (p.s. Верхнюю крышку надевать не стоит, для предотвращения перегрева);
- Блок питания RASPBERRY PI 27W USB-C POWER SUPPLY, EU PLUG, WHITE;
- Официальный кабель HDMI MICRO-HDMI TO HDMI CABLE 1M, WHITE;
- Куллер ACTIVE COOLER (в корпусе есть встроенный куллер, но он довольно бесполезный и очень громкий, этот в разы тише и эффективнее).
Весь комплект обошелся в 115 евро плюс доставка DHL — 30 евро.
Оплатил налог и счет за услуги компании, которая оформляет документы на границе.
Итого получилось около 170 евро.
Таким образом стоимость всего комплекта составила 8.5 месяцев аренды vds.
Так для чего же он нужен?
Основные пет-сервисы
Первым делом я установил на него Ubuntu 24, не сервер, а с графической оболочкой. Почему? Расскажу позже.
Основные пет-сервисы, которые использую в повседневной жизни:
самописный клауд для быстрой загрузки картинок и файлов в облако и получения на них ссылки для вставки куда-либо на основе nodejs и DigitalOcean Spaces (ссылку на код не дам, уж очень он ужасный.
image-converter конвертер и ресайзер картинок для веба, который позволяет сжимать фото и декодировать в jpeg, webp или aif на базе ffmpeg быстро и просто, адаптирован для мобильных устройсв;
боты телеграмм от простых, вроде:
get_my_data_bot - позволяет получить информацию о своем пользователе;
до сложных, вроде:
sub_track_bot - анализирует посещаемость групп тг и мониторит активность пользователей в группе. Дает возможность овнеру получить данные для анализа. Доступ к нему сейчас только по запросу;
SrpskiPrijateljBot - бот переводчик с сербского на русский и обратно с возможностью распознавания текста с картинки, а так же озвучки текста на базе OpenAI.
Air Quality Monitoring Bot - бот который уведомляет о повышении температуры или загрязнении воздуха в квартире на базе ThingSpeak и nodemcu.
Селф-хостед решения
Архитектура
Для запуска своих сервисов я использую pm2, Docker и nginx.
Для быстрых автоматизаций n8n.
Для бэкапа rclone и DigitalOcean Spaces
Для защиты от атак настроил Сloudflare (бесплатный тариф), он проксирует запросы к моим доменам до nginx.
Кстати, управление DNS записями так же осуществляться через Cloudflare, что намного удобнее, чем в дашборде регистратора.
Дальше запросы принимает nginx на raspberry и проксирует на нужные порты Raspbery Pi.
Но это еще не все.
Домашний медиа-сервер
Мой Raspberry Pi 5, в это же время, используется как домашний медиа сервис.
Так как в арендной квартире совсем не новый и не дорогой телевизор без возможности установки на него приложений, я подключил Raspberry Pi к нему, вот где понадобится графическая оболочка.
Таким образом, можно смотреть фильмы, слушать музыку, залипать в youtube и тд прямо с дивана.
Для удобного переключения между фильмами я собрал быстрое решение в виде одностраничника на основе airtable, airtable api, js и Omdbapi API, таким образом, при добавлении ссылки на фильм и его названия в таблицу, автоматически подгружается постер и описание и отображается на домашней станице Chromium на Raspberry при открытии.
Кроме того, у Raspberry Pi 5 есть Bluetooth, таким образом его легко подключить к аудио системе.
В итоге получается медиа решение для просмотра фильмов и прослушивание музыки одновременно с работой сервисов.
А как вы используете свой Raspberry Pi?
У меня rpi 4b+ 4gb, без кейса и охлаждения.
~20 контейнеров 24/7:
Нам нужно кино в лучшем качестве из возможных, поэтому поставил plex и radarr/sonarr, jackett, qbittorrent и qbit_manage, recyclarr.
Тыкаешь какое кино/сериалы нужны и они за тебя ходят на разные торрент трекеры, сравнивают качество и качают лучшее из возможных. Если кино еще не вышло - скачают когда выйдет. Выйдет в лучшем качестве - обновят. Еще качает популярное по рейтингам/обусждаемое кино, некоторые фильмы я даже не добавляю. Plex включает трейлеры перед фильмами, грузит сабы отдельно (если надо) и тд. Очень крутая связка.
Раньше был телеграм бот, чтобы не только я мог добавлять фильмы, и чтобы что-то скачалось к приходу домой если решил посмотреть что-то вне библиотеки, но все и так загружается пока идешь налить воды. Снес. Скоро запилю скачивание призеров известных фестивалей.
Также часть этих контейнеров завернута в VPN (через gluetun), чтобы ходить на торренты, а еще TMDB перестал открываться и грузить постеры - теперь такое точно не произойдет. На роутере теперь стоит openwrt и split tunnel, и все это и так будет открываться, но решил не сносить впн с докера, так надежнее. Сами торренты, естественно, качаются не через впн.
Rpi не такая мощная чтобы рендерить это и выводить по HDMI, так что от роутера идет ethernet в тв приставку и на ней работает клиент plex, который и показывает кино, аудио тоже через HDMI. Пытался по WiFi - не хватает скорости, битрейт фильма больше скорости WiFi ¯\(ツ)/¯
HomeAssistant, чтобы все домашние приборы автоматизировать и добавить в айфоновскую шторку. Всякие девайсы Xiaomi тоже там. Свет вырубается когда включаешь кино, остальные прибулды типа увлажнителей тоже вырубаются или ставятся в тихий режим.
Pi-Hole режет рекламу на всей домашней сети. Оно блокирует DNS запрос, так что реклама даже не начинает загружаться. Раньше юзал unbound вместе с ним, думая что у pihole нет своего кэша, но это не так, поэтому снес и прописал cloudflare в pihole. Браузерные экстеншны работают только в браузере, а pihole режет рекламу и на приставках, и на всем остальном, еще и быстрее. DNS кэш, кстати, в итоге отадет openwrt, а не pihole. Экономит 20-100мс к загрузке каждой страницы.
Organizr - фронт для всех этих штук, удобно открывать все интерфейсы этих штук.
Остальное - небольшие технические штуки:
Кстати, рекомендую сразу ставить projectivy launcher на тв приставки (убирает всю хрень, работает быстро, автоматом запускает приложение если надо), button remapper (переназначает кнопки пульта - я поставил plex на кнопку нетфликса и дашборд HA на даблтап), fully kiosk browser для дашборда HA.
При этом rpi:
CPU не загружается больше чем на 10%
Температура - 50-60
RAM - ~60 (4gb!!)
Давно хотел написать это все в одном месте. Алсо, сначала юзал umbrel (чтобы не возиться с докером), но он сломал половину контейнеров и разворачивать его - ад. Снес, развернул все через portainer - то же самое. Ломались контейнеры, в которых все правильно настроено. Снес, поставил докером и все работает идеально. Есть еще dockstarter, он чуть помогает и работает, в отличие от umbrel и portainer.
А у меня в коробке под телевизором есть коробка с Raspberry Pi 4 2Gb, где я кручу ADS-B радар, чтобы трекать самолетики:
Раньше я собирал и аккуратно настраивал софт для фидера руками, чтобы отправлять данные в несколько сайтов сразу.
Но вот недавно нашел отличный проект с готовым образов: https://adsb.im/home
По железу у там
Иногда пробивает на 300+ км по приему. Фидю этим несколько крупных сайтов, а они за это премиум полный дают.
мне всегда интересно смотреть как люди в реальной жизни (а не обзорах на ютубе) используют расберри, т.ч. автор пиши еще!
Hold my beer... https://github.com/shaman007/home-k3s
Там надо картинку поправить, потому что роутер тоже стал Ubnt.
Очень классная статья, хотелось бы подробнее узнать, сколько это чудо все настроить по времени занимает
Есть бешенное желание так же поднять, как домашний сервер, но как только понимаю, сколько времени буду порты прокидывать для VPN, плохо становится
Спасибо за пост! Очень сильно заинтересовала функция мониторинга качества воздуха. Сходу разобраться не смог, поэтому если не сложно, расскажи, пожалуйста, как работает? Интересует больше хардверная часть. Также вопрос: мониторится воздух внутри дома или снаружи?
У меня Raspberry Pi 4 на 4GB. Из интересного, что поставил:
мне на др подарили rpi 5, я примерно год эксперементировал, было установлено.
Сейчас работает только IRC Bouncer, больше ничего, думаю он ещё доживет до следующей идеи, отличная штука.
А расскажи для чего ещё n8n используешь?
Прямо сейчас на столе лежит 4-ая малинка с Home Assistant. В очередной раз что-то случилось и всё накрылось. Вытащил конфиги из Docker volume, как найду время буду опять настраивать.
А так, прикручен стик Zigbee, всякие датчики движения/температуры/влажности, счетчики горячей/холодной воды, пара кнопок, датчик открытия двери, интеграция с LaMetric. В общем, ничего особенного.
Есть такой проект umbrelOS изначально он позиционировал себя как своя собственная self-hosted Bitcoin-нода. Но со временем эволюционировал в красивую запускалку docker-образов, в том числе на Raspberry Pi. В их сторе уже есть всякие популярные образы типа Home Assistant, n8n, Nextcloud и т.д. Если нет белого IP, то к umbrel можно иметь доступ через TOR (у каждого есть свой собственный .onion адрес).
Довольно просто добавить свой собственный docker-образ. Я туда добавлял changedetection.io — это очень крутое приложение для отслеживания изменений на веб-страницах в интернете, в котором можно настроить нотификации, в том числе через Telegram-бота. Оно помогает получать уведомления о новых сообщениях в интересных тредах на форумах или о выходе какого-нибудь софта - достаточно добавить свой URL и периодичность с которой оно будет отслеживать изменения. Мне так понравился этот use-case, что я даже настроил нотификации для релизов некоторых проектов на GitHub. Знаю, что это можно сделать через почту, но так показалось удобнее.
А какой провайдер предоставляет белый ip? И сколько это стоит?
Не 5 версия, но на 2B дома висит и крутится https://teslamate.org для машины.
Очень вдохновляющая статья, спасибо!
А вот это не понял. Это Cloudflare Tunnel или что-то другое? Только начал разбираться с их сервисами и пока не очень понимаю
Помимо стандартных вещей, поднял инстанс Browservice. Изначально искал решение для Kindle, для чтения статей через встроенный браузер. Но оказалось неудобно. Зато пригодилось для обхода блокировок на корпоративном прокси. Теперь на работе могу зайти в ТГ или проверить Gmail.
Ссылка на проект:
https://github.com/ttalvitie/browservice
Таки смотрю ютуб через Kodi (и ещё смотрел бы нетфликс, если бы не поленился обновить на малинке bullseye на bookworm, чтобы завести widevine), иногда фильмы с торрентов им же смотрю (только, чур, никому 🤭). Ещё планирую использовать для разработки своего крутого пет-проекта под ARM.
Кстати, на своей 8-гиговой конфигурации гоняю ZFS поверх двух ноутбучных дисков, полёт нормальный — иногда оно целое видео может закэшировать в RAM и не включать лишний раз шпиндели.
Очень интересно, спасибо! Скажи пожалуйста, почему именно n8n для мониторинга, и есть ли подробности? Ну, было б неплохо посмотреть пример одного из flow.
у меня пока что 4 версия с 8 гб и Pi 400 в виде клавиатуры с русской (!) гравировкой.
Раньше использовал малинку для умного дома через HA, сейчас из умного осталась лампочка на столе поэтому теперь развернул immich.
Кстати из неочвидного есть ребята которые сильно упрощают жизнь для обладателей малинок если используешь с графическим интерфейсом - вместо того чтобы просто поставить приложение приходилось много раз приседать, а тут это сделали за тебя и нужно только поставить галочку в визуальном интерфейсе или ввеси команду в консольном.