Что на моем Raspberry Pi 5

 Публичный пост
23 сентября 2024  3625

Пару месяцев назад я приобрел Raspberry Pi 5. И вот что из этого вышло.

О целях

У меня не было какой-то конкретной цели. Основная идея заключалась в том, чтобы отказаться от облачных vds (у меня их было 3 в DigitalOcean). Тем самым немного сократить ежемесячные затраты.

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

Но Raspberry Pi 5 даже превзошел мои ожидания.

Но сейчас все по-порядку.

Где и как заказывал

Заказывал у официального представителя, который доставляет в Сербию - GalagoMarket. Доставка из Словении заняла чуть больше 2-х недель.

P.s. На тот момент я не знал, что налог на ввоз в Сербию составляет 30%, если стоимость товара превышает 50 евро).

Комплектация

Я решил заказать полный комплект, чтобы не заморачиваться с доп. частями;

Весь комплект обошелся в 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.

Для CI/CD jenkins и github.

Для быстрых автоматизаций 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?

Связанные посты
45 комментариев 👇

У меня 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 - фронт для всех этих штук, удобно открывать все интерфейсы этих штук.

Остальное - небольшие технические штуки:

  • openspeedtest чтобы тестить скорость между приставкой и rpi
  • plex-meta-manager - меняет постеры и все такое
  • tailscale - чтобы иметь доступ к этому всему вне дома
  • Watchtower - обновляет весь этот софт сам.
  • tautulli - стата plex, еще из нее удобно собирать кастомные страницы истории просмотров в HA и всякие интеграции, plex не все это сохраняет.
  • iSponsorBlockTV - мьютит рекламу в ютюбе, скипает спонсорские интеграции внутри видео и тд. Приложение ютюба на приставке подключает его как пульт, и этот "пульт" вырубает звук на рекламе. Не юзаю, поставил на приставку smarttube. Думал что для этого нужен root - оказалось проще.

Кстати, рекомендую сразу ставить projectivy launcher на тв приставки (убирает всю хрень, работает быстро, автоматом запускает приложение если надо), button remapper (переназначает кнопки пульта - я поставил plex на кнопку нетфликса и дашборд HA на даблтап), fully kiosk browser для дашборда HA.

При этом rpi:
CPU не загружается больше чем на 10%
Температура - 50-60
RAM - ~60 (4gb!!)

Давно хотел написать это все в одном месте. Алсо, сначала юзал umbrel (чтобы не возиться с докером), но он сломал половину контейнеров и разворачивать его - ад. Снес, развернул все через portainer - то же самое. Ломались контейнеры, в которых все правильно настроено. Снес, поставил докером и все работает идеально. Есть еще dockstarter, он чуть помогает и работает, в отличие от umbrel и portainer.

  Развернуть 1 комментарий

@ibaikov, а HomeAssistant в "шторку" это прям в Apple Home или очередное стороннее приложение будет?

  Развернуть 1 комментарий

@notabesttime, это прям совсем в шторку, ничего ставить на айфон не надо.

Алгоритм:
Покупаешь homepod mini (отличная колонка бтв для своей цены и размеров, на кухню - самое то) или apple tv (но я выбрал shield pro в качестве приставки, так что для меня - мимо). Это твой хаб apple home.

На распберри ставишь home assistant, у него homekit интеграция и можно и девайсы туда закидывать, и датчики, и всякие кнопочки-скрипты отображать как отдельный девайс в шторке у всех с кем пошарен apple home. Это, конечно, не то же самое что нативная поддержка, но мне очень нравится, еще и HA автоматизирует штуки. Из проблем - не синхронизируется стейт девайса, т.е. если ты включил кондей пультом, то в шторке он будет выключен. Я решил что лучше так, чем без этой интеграции.

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

@notabesttime, кстати, есть еще homebridge который умеет то же самое, но я в итоге перелез на HA - он сложнее, но умеет гораздо больше. И рекомендую просто на HA все автоматизации делать, изначально пытался делать все внутри самого apple home и это бесполезно.

  Развернуть 1 комментарий

@ibaikov, да, я уже столкнулся, что не могу себе вывести уведомление если наступило 23, а датчик двери показывает, что она открыта. Там оказалось только возможным делать реакцию на событие открытия, что тоже конечно полезно, но увы не то, что мне нужно. Потому ищу сейчас варианты, как сэкономить и получить логику более продвинутую, но без потери родной интеграции.

  Развернуть 1 комментарий

@ibaikov, Получается, у тебя home assistant в докере крутится? А он не ругается на watchtower и прочее про system is not healthy? Я в свое время из-за вот этих его капризов отдал ему целый сервер чтобы он был как OS установлен.

  Развернуть 1 комментарий

@gleb-ya, Все так. Нет, таких проблем не было. С umbrel/portainer были, но не помню ломали ли они HA. Можешь попробовать заюзать dockstarter, там должны быть сразу настроены HA и watchtower в контейнерах, это не gui и он вряд ли что-то поломает

  Развернуть 1 комментарий

@ibaikov, спасибо. Еще спрошу. А у тебя HA установлен как Home Assistant Container или как Home Assistant Supervised? И если именно как container, то сложно ли его обновлять и ставить дополнения? У меня был Supervised и вот он ничего рядом с собой не любил.)

  Развернуть 1 комментарий

@gleb-ya, контейнер, я не знал даже что есть supervised. Посмотрел сейчас - ни одна его фича мне не нужна.

Про обновления контейнеров я даже не знаю - оно всегда само новое ¯\(ツ)

  Развернуть 1 комментарий

@ibaikov, мегакруто, теперь хочу себе похожую сборку

  Развернуть 1 комментарий

А у меня в коробке под телевизором есть коробка с Raspberry Pi 4 2Gb, где я кручу ADS-B радар, чтобы трекать самолетики:

Коробка
Коробка

Содержимое коробки
Содержимое коробки

Радар с самолетиками
Радар с самолетиками

Раньше я собирал и аккуратно настраивал софт для фидера руками, чтобы отправлять данные в несколько сайтов сразу.
Но вот недавно нашел отличный проект с готовым образов: https://adsb.im/home

По железу у там

  • ADBS-B приемник (синий) с выпиленными дырками под радиаторы, ибо чип приемника греется огого
  • Активный усилитель и фильтр сигнала (в белой изоленте)
  • Корпус-пасивный радиатор для Pi, который сам по себе хорошо охладлает, но..
  • 140мм кулер на 5v, который крутится на самых минимальных оборотах чтобы шумно не было, в итоге t=40c
  • Антенка ~25см у окна

Иногда пробивает на 300+ км по приему. Фидю этим несколько крупных сайтов, а они за это премиум полный дают.

  Развернуть 1 комментарий

@Deliaz, некий hardware флайтрадар получился, верно?

  Развернуть 1 комментарий

@Gorodecki, ага. Туда данные в том числе и отправляю. Вообще сайты типо флайтрадара во многом опираются на любительские данные, особенно в регионах с малым покрытием.

У них даже есть программа где они выдают все то же самое железо бесплатно, если вы живете в месте где у них мало данных.

  Развернуть 1 комментарий

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

  1. сразу вопрос он у тебя работает 24/7?
  2. не возникает ощущения, что этими задачами железо загружается на 100% и лучше бы купил что-то помощнее?
  Развернуть 1 комментарий

@argument, Спасибо!

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

Hold my beer... https://github.com/shaman007/home-k3s

Там надо картинку поправить, потому что роутер тоже стал Ubnt.

  Развернуть 1 комментарий
Renat Azibaev Питоний погроммист 23 сентября в 04:56

Очень классная статья, хотелось бы подробнее узнать, сколько это чудо все настроить по времени занимает
Есть бешенное желание так же поднять, как домашний сервер, но как только понимаю, сколько времени буду порты прокидывать для VPN, плохо становится

  Развернуть 1 комментарий

@zibzibzib, спасибо!
В целом, зависит от того, что именно настраивать, но я бы не сказал, что это долго, может быть, в среднем, часа 4, так как raspberry хорошо поддерживается комьюнити, то проблем с установкой чего-либо почти не возникает. но для впн ничего не прокидывал.

  Развернуть 1 комментарий
Кукушкин Денис Golang разработчик, студент skoltech 23 сентября в 06:35

Спасибо за пост! Очень сильно заинтересовала функция мониторинга качества воздуха. Сходу разобраться не смог, поэтому если не сложно, расскажи, пожалуйста, как работает? Интересует больше хардверная часть. Также вопрос: мониторится воздух внутри дома или снаружи?

  Развернуть 1 комментарий

@Polosatik, спасибо!
для мониторинга использую node mcu esp8266 + MQ-135 (датчик загрязнения воздуха) + DHT11 (датчик температуры и влажности)

мониторится внутри дома. все это пишется из node mcu в thingspeak, а уже из thingspeak мониторится ботом на raspberry и выдаются алерты.
в целом, датчики конечно можно было бы подключить напрямую к raspberry, но node mcu esp8266 я настроил раньше, чем появился raspberry

и вот такой дашборд торчит наружу, для анализа https://cdroma.me/thingspeak-data-visualizatio/

  Развернуть 1 комментарий

@cdROma, спасибо за развернутый ответ! А еще такой вопрос: как повышаешь качество воздуха? Проветриваешь просто или фильтр какой-то стоит ?

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

У меня Raspberry Pi 4 на 4GB. Из интересного, что поставил:

  • FreshRSS для удобного сбора интересных статей в одном месте
  • Transmission для торрентов
  • iSponsorBlockTV
  • Prometheus + Grafana для слежения за майнерами
  • Cloudflared для хоста различных сайтов, доступных из вне локальной сети (FreshRSS, как пример)
  • Hamster Kombat бот для фарма (уже выключил его, заработал всего 2000 монеток)
  • Мини бот с разными командами: проверить скорость интернета; добавить торрент по ссылке с rutracker + обновлять его, если обновилась сама раздача
  • N8N для всяких автоматизаций
  Развернуть 1 комментарий

@lcd1232, а как решили проблему, что FreshRSS на всё получает 403?

  Развернуть 1 комментарий
Ruslan Akmanov Старший инженер тестирования и сопровождения 23 сентября в 11:39

мне на др подарили rpi 5, я примерно год эксперементировал, было установлено.

  1. Navidrome (для стримминга музыки с моих дисков во внешний интернет.
  2. Plex (стимминг музыки тоже).
  3. Ещё один стримминговые сервис для фильмов.
  4. Работал как ретранслятор видео из канзасского пингвинариума (для этого подключил монитор найденный в мусорке) было клево, смотрел как пингвины живут.
  5. Одно время был в роли ретроконсоли (retroarch + старый телек + геймпад)
  6. Игрался с компютерным зрением, детектил когда я подхожу к холодильнику.
  7. Служил сервером для погодного бота, получал данные с яндекса и выводил на телевизор с самописным дашбордом на Django.

Сейчас работает только IRC Bouncer, больше ничего, думаю он ещё доживет до следующей идеи, отличная штука.

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

А расскажи для чего ещё n8n используешь?

  Развернуть 1 комментарий

Прямо сейчас на столе лежит 4-ая малинка с Home Assistant. В очередной раз что-то случилось и всё накрылось. Вытащил конфиги из Docker volume, как найду время буду опять настраивать.

А так, прикручен стик Zigbee, всякие датчики движения/температуры/влажности, счетчики горячей/холодной воды, пара кнопок, датчик открытия двери, интеграция с LaMetric. В общем, ничего особенного.

  Развернуть 1 комментарий

@k007, интересно, что именно накрылось?

У меня постоянная проблема - после полной настройки (в основном, несколько докеров) работает какое-то время. Потом, через несколько дней/недель/месяцев если перегрузить, теряет сеть.
Помогало удаление сессий докеров (вытаскивал флешку и на ноуте sudo rm -rf /Volumes/rasp/var/lib/docker/containers/ )
Через какое то время и это перестало помогать. Перезагрузка => установка всего с нуля :(

  Развернуть 1 комментарий

@thebix, что-то не так с /dev/disk/by-label/hassos-overlay. Не может запуститься containerd container runtime. У меня HA OS, поэтому зайти в ОС, как я понимаю, не получится.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Есть такой проект umbrelOS изначально он позиционировал себя как своя собственная self-hosted Bitcoin-нода. Но со временем эволюционировал в красивую запускалку docker-образов, в том числе на Raspberry Pi. В их сторе уже есть всякие популярные образы типа Home Assistant, n8n, Nextcloud и т.д. Если нет белого IP, то к umbrel можно иметь доступ через TOR (у каждого есть свой собственный .onion адрес).

Довольно просто добавить свой собственный docker-образ. Я туда добавлял changedetection.io — это очень крутое приложение для отслеживания изменений на веб-страницах в интернете, в котором можно настроить нотификации, в том числе через Telegram-бота. Оно помогает получать уведомления о новых сообщениях в интересных тредах на форумах или о выходе какого-нибудь софта - достаточно добавить свой URL и периодичность с которой оно будет отслеживать изменения. Мне так понравился этот use-case, что я даже настроил нотификации для релизов некоторых проектов на GitHub. Знаю, что это можно сделать через почту, но так показалось удобнее.

  Развернуть 1 комментарий

@anton74, вот тут было

  Развернуть 1 комментарий

А какой провайдер предоставляет белый ip? И сколько это стоит?

  Развернуть 1 комментарий

@alexcmx, у меня mts в том же Белграде предоставляет белый (хоть и динамический) IP, подозреваю, что дополнительных денег это не стоит, но достоверно не знаю, счета за интернет лендлорд оплачивает

  Развернуть 1 комментарий

Не 5 версия, но на 2B дома висит и крутится https://teslamate.org для машины.

  Развернуть 1 комментарий

Очень вдохновляющая статья, спасибо!

Для защиты от атак настроил Сloudflare (бесплатный тариф), он проксирует запросы к моим доменам до nginx

А вот это не понял. Это Cloudflare Tunnel или что-то другое? Только начал разбираться с их сервисами и пока не очень понимаю

  Развернуть 1 комментарий

@apalevich, нет, это не туннель. Суть в том, что домен резолвится в айпишник, принадлежащий CloudFlare, соединение идёт к ним, а они уже перебрасывают на ваш айпишник. Таким образом злоумышленникам (чууууууть-чуть) сложнее узнать ваш айпишник и начать на него ломиться.

  Развернуть 1 комментарий

@apalevich, Да, он самый. Для него даже не нужен белый ip-адрес

  Развернуть 1 комментарий

Помимо стандартных вещей, поднял инстанс Browservice. Изначально искал решение для Kindle, для чтения статей через встроенный браузер. Но оказалось неудобно. Зато пригодилось для обхода блокировок на корпоративном прокси. Теперь на работе могу зайти в ТГ или проверить Gmail.

Ссылка на проект:
https://github.com/ttalvitie/browservice

  Развернуть 1 комментарий

А как вы используете свой Raspberry Pi?

Таки смотрю ютуб через Kodi (и ещё смотрел бы нетфликс, если бы не поленился обновить на малинке bullseye на bookworm, чтобы завести widevine), иногда фильмы с торрентов им же смотрю (только, чур, никому 🤭). Ещё планирую использовать для разработки своего крутого пет-проекта под ARM.

Кстати, на своей 8-гиговой конфигурации гоняю ZFS поверх двух ноутбучных дисков, полёт нормальный — иногда оно целое видео может закэшировать в RAM и не включать лишний раз шпиндели.

  Развернуть 1 комментарий

Очень интересно, спасибо! Скажи пожалуйста, почему именно n8n для мониторинга, и есть ли подробности? Ну, было б неплохо посмотреть пример одного из flow.

  Развернуть 1 комментарий

у меня пока что 4 версия с 8 гб и Pi 400 в виде клавиатуры с русской (!) гравировкой.
Раньше использовал малинку для умного дома через HA, сейчас из умного осталась лампочка на столе поэтому теперь развернул immich.
Кстати из неочвидного есть ребята которые сильно упрощают жизнь для обладателей малинок если используешь с графическим интерфейсом - вместо того чтобы просто поставить приложение приходилось много раз приседать, а тут это сделали за тебя и нужно только поставить галочку в визуальном интерфейсе или ввеси команду в консольном.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб