Мой домашний серверный сетап меняется каждые 3-4 года. В Сибири у меня был огромный жужжащий ящик, в Литве я перебивался готовыми NAS'ами от WD и Synology, потом переезжал в дата-центр, а в последние годы держал домашний кластер Raspberry Pi. Недавно я запостил в твиттер очередную фотку своего настенного планшета с новым виджетом и куча народа попросила рассказать как всё устроено. Штош, три года прошло, время апдейтов. На эту черную пятницу я прикупил себе кумплюктер. Последний раз я употреблял в своей речи слова SATA и DDR примерно лет пять назад, а последние годы моя «жизнь» вообще происходит исключительно за ноутбуком или планшетом. Я — тот бородатый хипстер их реклам Apple. Но жизнь без настоящего кумплюктера — это, конечно, не жизнь. Хотя «настоящим» кумплюктер можно было назвать лишь отчасти, потому что он вот такой: Даже стопка HDD на заднем плане, воткнутая в RAID-массов через USB-C донгл с отдельным питанием, выглядит толще Это так называемый Mini PC, которые раньше были в основном уделом школьных кабинетов информатики, а теперь самые храбрые из них даже превратились в Steam Deck, на который дрочат все геймеры. У меня довольно слабая модель — MinisForum U820 за €350, но и бралась она с расчетом, что мне не нужен гейминг и внешние видеокарты, а нужна экономичная машинка для замены моих Raspberry Pi. Один мой RPi отвечал за умный дом с Home Assistant — тот самый, о котором я писал три года назад. Другой RPi был под домашнее облако-бекапилку-файлопомойку, на котором был RAID1 из 2x4Tb HDD с периодическими бекапами всех моих проектов, считалкой налогов (яж блять в Германии) ну и просто хранилищем для всех фоток, документов и прочего нажитого непосильным трудом. Эти два HDD переезжают со мной вот уже в третью подряд страну. И вот когда мне понадобился третий RPi я сказал хватит. Пора брать что-то нормальное, ставить туда полноценную Убунту и устраивать хоум-лаб под себя как в лучших домах Европы. Последние недели я усердно мигрировал свои домашние сервисы на эту пепяку, потому как раз появился повод рассказать как оно всё устроено для потомков. Как вы вообще всё это упихали в коробку размером со стопку дисков от плейстейшона? 3 комментария 2 Petr Korolev @vas3k, казалось для HomaAssistant хорошо иметь Малину отдельную, потому что в докере некоторые фичи обрезаны (плагины). А если в малину в докер HA запихнуть, это отзывчивость сильно скажется? Ты заметил разницу после переезда? 1 Nikita Baranov А какой-нибудь Synology с поддержкой докера не зайдет под этим дела? 0 Игорь Алексеев RPi еще и не самые стабильные ребята особенно с SD картой. Вместо 2ого RPi поставил Thinkpad c Ubuntu. Плюсом это полноценный хоть и слабенький ноут - можно перезагрузиться в винду и подключить к авто и есть экран с клавиатурой если хочешь что-то поправить в своем хоум сервере и не хочешь к нему подключаться удаленно. Войти и написать 👀 Дом-дурачок: Что умерло, что осталось, что вечно? После того самого поста прошло три года. Почти вечность. Тогда я строил умный дом в новой квартире и верил в светлое будущее, а теперь не верю ни во что и практически переехал. Сразу накину — за три года было выброшено практически всё. Комментировать Войти и написать ☠️ Что сдохло? ☠️ Зоопарк Xiaomi китайских девайсов. Ожидаемо, эти ребята сгнили первыми. Пока они новые — ты кайфуешь. За пять баксов ты можешь следить за температурой и влажностью в каждой комнате, а еще за десять — автоматически включать в них свет. Вау! Технологии! Но проходит полгода-год и вот в датчике температуры села батарейка, которую хер заменишь, а датчик движения просто умер от пыли — надо покупать новый и переписывать все сценарии. Всё это хоть и кажется мелочами на первый взгляд, но когда всё разваливается по пятому кругу — ты просто забиваешь. Не лень мне и рукой свет включать. Да, всё это было абсолютно ожидаемо и китайское барахло от Xiaomi/Aqara покупалось исключительно ради экспериментов и шуток про всратый IoT. Так что особо не жалко. До сих пор иногда нахожу дохлые трупики старых датчиков по квартире и улыбаюсь. ☠️ Универсальные хабы, умные выключатели и прочие «сценарии». Любой сценарий, сложнее чем «нажал кнопку — включилась лампа» обречён со временем сдохнуть. Вы просто устанете каждый раз прописывать в него новые лампочки, триггеры, менять сцены и вообще заморачиваться со всем этим больше одного раза. Потому все «умные выключатели» были содраны со стен и заменены обратно на тупые. Особый кек случился с датчиками на батареях, которые якобы должны были «умно» подстраивать температуру комнаты под комфортную днём, снижать её ночью и экономить отопление, когда дома никого нет. Так вот. Мне пришел счет за 2020 год, когда датчики стояли везде, и за 2021, когда я их снял. С «умными экономящими датчиками» за год я нажёг на 20% больше отопления, чем за год с тупыми крутилками, которые просто всегда стоят на единичке. Заебись сэкономил! В итоге из «умных устройств» у меня остался только набор икеевских кнопочек и розеток, которые не заменяют обычные выключатели, а скорее дополняют их — когда лень вставать с дивана перед сном, либо это напольная лампа, которой хочется управлять удалённо. Но не более того. Даже гирлянда на балконе была заменена на обычную с собственным таймером. Никакой разницы. ☠️ Удалённое управление. Фича «выключить свет дома пока тебя нет» пригодилась за всё время ровно НОЛЬ раз. Да, я восхищен как Apple HomeKit пробрасывает всё мое добро через любой NAT и позволяет мониторить мой дом откуда угодно через спящий где-то под телевизором Apple TV. Это круто. Но реально ни разу не пригодилось. Прости, Тим Кук. 3 комментария 9 Кирилл Томашпольский Да, сколько видел домов, где "умный свет с 500 сценариев" тупо горел весь день или работал как выключатель - всем тупо лень забивать и разбираться! И Xiaomi, скотина такая, у меня тоже глючит даже простейший глупый датчик влага-температура после года-полутора. Для использования в загородном доме как раз функция удалённого включения + темп датчики оказалась самой нужной - выставляешь отопление в четверг, согревается, в пятницу приезжаешь как царь: за окном -20, а у тебя дома уже +10. Коньяк в бокал, дровишек в камин - и уже можно жить! 2 Ivan Zaitsev Могу порекомендовать Philips Hue. Очень дорого, но весьма надежно. Первые их лампочки купил аж шесть лет назад. За это время ни одна не перегорела, и даже с софтом и интеграциями проблем не было. Стоят своих денег. Включаю их голосом или выключателем, ночью выключается все сразу. Из датчиков движения я перешел на комбо из вот таких вот десятидолларовых сенсоров (https://www.amazon.com/gp/product/B00KAB4CRG), в которые втыкаются опять же десятидолларовые светодиодные ленты. Использую их в дополнение к обычным тупым выключателям, как ночники. Очень надежно, за 5+ лет ни одной проблемы. Термостат — Nest. В основном использую ради голосового контроля и интеграций (утром включить, ночью выключить). Нареканий нет. В качестве контроллера всего этого, вполне хватает Google Home. 1 Aleksandr Barmin Я немного разочаровался в Phillips Hue и началось с того, что купил я как-то большой красивый LED телевизор на всю стену, чтоб Ведьмака на нем играть и любоваться красотами в Death Stranding. И захотелось мне подсветки купить, и не простой, а такой, чтобы сразу plug-and-play и все из коробки работает. Выбор пал на Philips Hue Gradient Lightstrip for TVs. Подсветка приехала и... не работает без Play HDMI Sync Box. Точнее, она, конечно, горит, но цвет вместе с картинкой не меняет. Ну ладно, купил Sync Box и думаю, что вот теперь-то оно точно должно заработать. И как бы Hue там плавал! Теперь нужен еще Philips Hue Bridge, чтобы соединить ленту с HDMI Sync Box. И только вот когда все три девайса были куплены, я смог наслаждаться цветными стенами во время езды на Плотве. Как говорится, мое счастье было бы не полным, если бы оно работало как надо. Иногда в Sync Box происходит какой-то заворот мозгов и она тупо выключается сама по себе. А также в нее у меня воткнута пачка hdmi-источников - плойка, Apple TV, Switch. И вот если включить одновременно два источника, например, Apple TV и PS, то как только один из них выключится, этот Hue Box выключится и телевизор тоже вместе с ним выключится. Скажем так, задумка интересная, но умный дом слишком умный. Тем не менее, когда все работает как надо, подсветка светит на стену и радует меня красотой. Войти и написать ✅ Что осталось? ✅ IKEA Smart Home. На второй год весь зоопарк донглов и протоколов был заменён на один единственный хаб — от IKEA. Это был осознанный выбор. Во-первых, IKEA сделала самую нормальную «экосистему», так как переиспользовала открытые стандарты (ZigBee) и даже контрибьютила в опенсорс. Во-вторых, IKEA построила весь свой умный дом вообще без какого-либо «облака». Это честная mesh-сеть, которая может работать даже в полном оффлайне. Выдерните хаб из розетки — все ваши выключатели и лампочки всё равно продолжать работать. Настоящий peer-to-peer. Хоть кто-то из блядских корпораций наконец-то сделал это правильно. Да, из-за этого ИКЕЮ часто критикуют, мол, у них нет всяких модных фич, как у того же Google Home. Но это именно потому что для их реализации все ваши данные должны быть слиты в облако — а икея выбрала другой путь. Спартанский, но очень похвальный. За одно только это респект Шведам, буду следить за ростом их линейки «умных» девайсов с удовольствием. Пожалуйста, не прогибайтесь и не делайте IKEA Cloud. Очень прошу! ✅ Home Assistant. В оригинальном посте я так нахваливал Home Assistant, что даже сказал, что слежу за каждым их ченжлогом. Такая яркая любовь обычно быстро проходит, но нет. Я всё еще минимум раз в пару месяцев открываю и читаю их ченжлоги. Третий год подряд! Однако со временем Home Assistant перестал для меня быть «универсальным хабом», я больше не управляю через него девайсами (хотя и могу), я использую его как дашборд, в который собираются и мониторятся нужные мне показания и информация. У Home Assistant одна из самых классных и простых архитектур для виджетов и компонентов, что я видел. Да, они ломали её один раз, что даже прозвали The Great Migration, но с тех пор всё стало еще красивее. Даже коллегам привожу в пример. Так что он всё еще жив и легитимен, хотя по сути и превратился в бекенд для планшета на стене. Зато перед выходом я всегда знаю успею ли на близжайший трамвай и надо ли надевать шапку! (да, мам) ✅ Планшет. Настенный планшет всё еще настолько полезен, что заслуживает отдельного рассказа ниже. 2 комментария 11 ReDetection peer-to-peer взаимодействие называется binding в терминах zigbee. в него умеет zigbee2mqtt, тоже чудесно работает без остальной сети. 4 ReDetection забавно, что у меня наоборот, вечно какие-то проблемы с home assistant – то он потеряет один девайс (в z2m/mqtt/node-red при этом его видно отлично), то просто тормозит без причины. в итоге оставил его чисто как дашборд и запасной план интеграции некоторых устройств Войти и написать 📱 Планшет с семейным дашбордом Самое полезное во всём умном доме Около входной двери у меня уже давно висит дешевый планшет Amazon Fire HD. Он был куплен за что-то типа 70 евро и круглые сутки показывает один из дашбордов с инфой из Home Assistant, который я себе сконфигурил, через Fully Kiosk App. И это до сих пор самое полезное, что есть во всём моем доме-дурачке вообще. Даже если я наиграюсь и выброшу нафиг все умные девайсы, дашборд я всё равно оставлю. Смотрю на него по несколько раз в день и он реально экономит время. Планшет агрегирует два класса информации — «домашнюю» и «уличную». Домашняя инфа живет в левой половине. Это: Семеный календарь и TODO-лист. Показывает наши общие события типа записей к врачу и встреч с друзьями вечером. Иначе я всё забываю и пропускаю. Погода в доме. Летом пофиг, а вот зимой в Европе надо постоянно следить за температурой и влажностью, иначе плесень захватит твой дом и выселит тебя. Данные собираются с одного дешевого BLE-датчика за 13 баксов. Прочие мелочи типа времени в трех таймзонах и спидтеста. Справа — всё «уличное»: Погода, очевидно. Какая сейчас и какой прогноз. Чтобы знать какую куртку надевать перед выходом, не доставая каждый раз телевон. Правда, не хватает времени рассвета и заката, придется допилить. Транспорт. Чтобы не мёрзнуть на платформе пока 10 минут ждешь нужного поезда, ну либо сразу забить и идти на трамвай. Были еще планы добавить туда всякие расписания вывоза мусора, но я не нашел нужных API для Берлина. Вот такое. Тема — iOS Dark Theme По технике проблем особых не было. За три года ничего не выгорело, не сломалось, батарейка жива, счета за электричество меня не обанкротили. Там щас слой пыли с ноготь толщиной, но это пофиг, сломается — куплю новый. Единственный косяк, я он нём уже рассказывал, что Амазон где-то раз в пару месяцев решает показать мне рекламу во весь экран. Нужно же как-то Джефу Безосу оставаться самым богатым человеком в мире. Плоти долор. 6 комментариев 5 Aleksandr Barmin В последнем предложении толщина два раза. Так и должно быть? 4 Вастрик Aleksandr Barmin, баг, конечно же 6 Vladimir @nett00n Bu А если подключить на планшете "антирекламные" DNS, реклама амацона не уйдет? 30 Serhii Borovyk а что за виджет с прогнозом погоды? 5 ReDetection В каких пределах держишь влажность и чем регулируешь? На Кипре пока тепло, вроде около 60% болтается, я уже закупил порошочки, но ещё толком не использовал 1 Андрей Демидов Serhii Borovyk, это скорее всего https://github.com/pkissling/clock-weather-card/releases Войти и написать Кстати, я вам виджет наопенсорсил Пока я перевозил всё свое добро с Raspberry Pi, заметил, что нам давно не хватало нормального виджета для транспорта. Раньше у нас был совсем маленький и он умел только трекать транспорт из точки А в точку В. А нам теперь надо весь. Так что я решил написать новый. Да, опять. Вот код: https://github.com/vas3k/home-assistant-berlin-transport Мне кажется, для олдов это уже скоро станет мемом — Вастрик в любом городе и при любых обстоятельствах делает свой трекинг транспорта. Новосибирские олды еще помнят NGTMap — это же был мой первый «стартап», который я продал «большой корпорации» аж за 500 догдашних долларов! Был очень горд собой, три месяца на них жил! 3 комментария 8 Ilya Zverev Переехав в Таллинн, первым делом написал приложение для трекинга транспорта — все официальные и коммерческие решения отстойны. Отлично, пользуемся каждый день. Транспорт — самое важное. 6 Oleg Zakharchenko Привет, скажи пожалуйста, как поставить на ХА твою кастовую карточку? Я уже всё перепробовал. HACS стоит, другие карточки работают, вроде всё по инструкции с Git сделал, но что-то ничего не получается, не видит карточку Home Assistant 3 Гауз Спасибо за виджет, я адаптировал его для транспорта в Мюнхене Войти и написать 📚 Зачем селф-хостишь? Ты чо, программист? В последние годы я начал сильно больше заморачиваться по поводу своих данных и информационной безопасности. Может это техно-пессимистическая Германия на меня так влияет, может Берлин, с его глубокой хакерской культурой, а может потому что большая айтишечка сейчас в целом гниёт со страшной силой. Хорошие сервисы, которыми я пользуюсь лет десять, обрастают тоннами ненужных фич и переписывают свои удобные маленькие приложения на монструозно-тормозное веб-говно. Продуктоунеры пришли, блять. «Насколько вы готовы рекомендовать наше приложение друзьям». Убивав бы. Другие же активно строят цифровые гулаги и огороженные сады, где либо торгуют твоими данными, либо сливают их направо и налево. Сейчас добавилась и третья боль — постоянные блокировки всего. Я уже боюсь утром почту открывать, ведь там опять будет письмо от какого-нибудь Гитхаба, Спотифая или Хецнера, что «им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин». Потому я начал плавно склоняться в сторону «всё своё ношу с собой» и селф-хостинга для всего, что я считаю действительно важным. Первым из мастодонтов пал Dropbox. Он так сильно сгнил, что был без жалости заменен сначала на Nextcloud, а потом вообще на Syncthing, потому что он простой и стабильный. Вторым был убит GMail. Но честно селф-хостить имейл в 2020+ году нет никакого смысла (ваш IP сразу забанят все почтовики), потому он был заменен на независимый платный имейл-сервис, даже неважно какой, с бекапами истории в Nextcloud. На очереди замена 1password на какой-нибудь Bitwarden/Vaultwarden, но с этим сложнее, потому что в 1password меня держит шаринг паролей с кучей людей, а тут без «облака» пока никуда. Так что со временем я планирую всё больше и больше всего селф-хостить дома. Да, это требует времени и навыков, да, у селф-хостинга тоже есть свои опасности (недавно я чуть не уронил RAID-массив на пол), но плюсов для меня всё равно больше. Планомерно пересаживаю всех домашних на это тоже. Ну а еще это неплохое хобби — можно потренироваться с теми технологиями, которые редко используешь по работе. 15 комментариев 15 Nikita Doiun A что было с GMail? Типа ко многому у них есть доступ? 3 Vladimir @nett00n Bu Когда google упразднил халявный gmail for domain долго думал на что переходил и в итоге поднял свой почтарь на базе mailu. Но ооооочень думал не отдаться ли почтарю hey. 11 Вастрик Nikita Doiun, не, они просто обнаглели и всех legacy-юзеров почты со своим доменом заставили плотить долор как будто они корпорации. Я подумал, что если уж платить — то точно не гуглу, и ушел на сторонний платный сервис :) 2 Vladimir @nett00n Bu Как человек уже мигрировавший в bitwarden протокол в реализации selfhosted vaultwarden, остался им вполне доволен. Шарю пароли с женой. Один минус за почти год пользования - не работают "одноразовые" шары vaultwarden. 1 Tim Sattarov Как человек, который делал 1Password cloud: А в чем проблема с 1password? большие приложения? Электрон с Растом? :) Переход в клауд был мотивирован в первую очередь шарингом, восстановлением доступа, если кто то его потерял и уменьшением нагрузки на поддержку как результат. 4 Vladimir @nett00n Bu Tim Sattarov, ну прям в этом же блоке написано: Сейчас добавилась и третья боль — постоянные блокировки всего. Я уже боюсь утром почту открывать, ведь там опять будет письмо от какого-нибудь Гитхаба, Спотифая или Хецнера, что «им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин». 2 Vladimir Lazarev им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин Интересно, что это за "независимый платный имейл-сервис", который не напишет так же однажды утром? 2 Вастрик Vladimir Lazarev, вытащить аргументы из разных абзацев @ представить их так, как будто они причина и следствие друг друга @ передернуть факты @ вы великолепны, обратитесь к начальнику твиттера для выдачи внеочередной премии за развитие интернета! 8 Вастрик Tim Sattarov, предпоследним звоночком был Электрон, но я пережил, вроде норм сделали, лагает почти незаметно. Последним же было то, что вы тоже решили русню банить. Вот тут я уже точно заволновался, мало ли, всё-таки это реально все мои пароли, а опцию забекапить их себе вы отключили (как ты и сказал) 4 Dmitry Popov Издавна сижу с KeepassX и синхронизацией через Syncthing, но это не решает вопрос шаринга паролей. Тоже в раздумьях 0 Tim Sattarov Вастрик, на мой взгляд Электрон это неправильная причина не любить софт. Если правильно сделать даже Жаба будет летать :) А русню блочить это да, можно написать в саппорт и поругаться на несправедливость. Политические решения мимо меня... 5 Вастрик Tim Sattarov, ключевая фраза "если правильно сделать". А на Электроне обычно делают не потому что хотят "правильно", а потом что хотят "быстро, дешево и под все платформы". Потому набирают JavaScript разработчиков, среди которых, из-за популярности языка, очень много новичков, которые просто не знают как делать "правильно". Про саппорт тоже понимаю, но у меня сейчас примерно каждый день выглядит как "звоню в банк, чтобы разблокировали мне аккаунт и я мог получить на него зарплату и купить покушоть, а параллельно пишу злое письмо в Coinbase, которые тоже заблокировали все крипто-доходы с Клуба". Добавлять к этому "еще и пишу в саппорт 1password потому что тот решил заблокать ВСЕ мои пароли" я точно не хочу, сорян, хотя уважаю вас очень давно и плачу за семейный аккаунт вот уже 10 лет. 0 Petr Korolev Опа. С 1password сюрприз. Жаль. Штош, буду ждать письма счастья теперь тоже :/ ( и активней перелезать на bitwarden, он правда хорош!) 1 Alexander Madyankin Заменил 1Password на http://strongboxsafe.com, который суть есть KeePass с более-менее приличной мордой. Соотвественно, шарить можно хоть с помощью rsync 0 Egor Не знаю в тему ли, но для хранения и шаринга паролей можно поднять свой passbolt. У него даже есть апи для интеграций и андроид приложение. Но за фичу с созданием директорий придется заплатить. Войти и написать 🤓 Как всё устроено изнутри? Докеры-траефики-рейды-ансиблы Эта часть для гиков, где я рассказываю как всё собрано изнутри. Операционная система — Убунта. Слишком стар я для хардкорных прыщей, хотя в свое время очень любил Arch. Убунта установлена с полноценным десктопом, так как кумплюктер подключен к телевизору и там даже установлен Steam, если вдруг мне захочется погамать в любимую инди-игру с геймпада от PS4. Комментировать Войти и написать 🐬 Docker — изолируем всех от всех Дальше докеры. Докеры — основа всего сейчас. Не знаю как мы жили без них. Сейчас, запуская приложение без докера, чувствуешь себя как будто голым на улицу вышел. Современные ОС по-прежнему обожают засираться всякими пакетами, зависимостями, ошмётками кешей и конфигов. Это в молодости я думал, что я просто глупый и ничего не понимаю, но даже спустя 10+ лет я всё еще не понимаю что с этим делать. Тут пакеты из pip, тут пакеты из aptitude, тут snap'ы, тут вообще какой-то инсталл-скрипт притащил для себя php и nodejs. Потому мне с докерами как-то проще: развернул контейнер одной командой — потыкал — удалил — система такая же чистая и новая. Докеры — кайф. ? хотя пора бы переезжать на Podman, конечно Можно прям через удаленный VS Code всё редактировать и перезапускать сразу на хосту. Главное потом не забыть закоммитить изменения в гит-репо Потому для любого сервиса, который я хочу крутить на своем сервере, я первым делом гуглю "название + docker-compose" и в 99% случаев кто-то уже написал нормальный рабочий конфиг, который просто развернется одной командой — со всеми фронтендами, бекендами, базами данных, мониторингами, итд. Конечно, можно было упороться по хардкору с Кубернетесами и HELM-чартами, как трушные хоум-лаберы, но я не вижу особого смысла в оркестрации, когда у тебя всего одна машина. Чем проще делаешь — тем дольше проживет 8 комментариев 1 Артем Уткин Привет, ты не мог ты скинуть настройки vscode (хотя бы тему) На гитхабе у тебя не нашел 0 Вастрик Да это же по-моему ванильный стандартный VS Code, не? Я кроме плагинов особо ничего не настраивал на этой машине :) 2 Артем Уткин Нашел тему) https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula 1 Tim Sattarov Перевёл свой HomeAssistant на Podman и радуюсь жизни. Он даже в rootless режиме как systemd unit запускается, как сервис. 0 andr Ну конечно докеры, у тебя ж 16 оперативы. А для простенькой VDS, где крутятся 5-6 разных селфхостед сервисов, ресурсов не хватит. Я на свой сервер ставил всё без докера, в итоге потребление ОЗУ 650МБ. А с докером только 1 сервис жрал больше, чем сейчас всё вместе жрет. 1 Вастрик andr, вот этот самый сайт, на котором ты сейчас пишешь, хостится на самом дешевом VPS от хецнера за 5 баксов с еще 4 такими же сайтами в докерах, у каждого из которых своя база, тоже в своем докере. И ничо, брат жив. 3 us2h andr, я чет не очень представляю, как один и тот же сервис жрет в два раза больше в докере чем без, миллион сервисов запускаю в докере и никогда такого не видел. 0 Anton Serdobov andr, Так надо образы тюнить, если есть проблемы с потреблением. Часто пересобрать образ на alpine уже экономит ресурсы. А какие-то вещи можно совсем без базового образа собирать. Войти и написать 🌎 Traefik — собираем в одном месте Когда контейнеров с сервисами становится много, типа 10+, начинаются проблемы. К каждому приходится запоминать порт, придумывать где хранить все конфиги, авторизацию — всё это быстро запутывается как провода в тумбочке. Простой выход — использовать готовые решения типа Umbrel, которые абстрагируют всё это за тебя и дают свой типа App Store. Для большинства юзеров пойдёт. Но если планируешь запускать много кастомных докеров — готовые решения могут быть болью в жопе. Тут на ум приходит популярный в кругах Go'шников старый добрый Traefik, который всё это богатство красиво собирает под себя. Traefik — это такой же реверс-прокси как Nginx, только написанный в этом десятилетии. Он уже по-умолчанию заточен под работу с докерами, а еще даёт из коробки SSL, подсети, авторизацию, и кучу других полезных плагинов, ради которых раньше приходилось долго танцевать в конфигах Nginx и Let's Encrypt. В простейшем случае, чтобы развернуть контейнер на новом поддомене, нужно просто добавить пару-тройку "меток" (labels) в ваш Docker Compose, чтобы Traefik их прочитал и сделал всю магию автоматически. Даже перезапускать его не надо, всё дискаверится автоматически. Даже не нужно лезть в конфиги самого Traefik, контейнеры дискаверятся автоматически Моя домашняя сеть недоступна из интернета, потому я пока забил на SSL. Но это плохо, обязательно наверну его позже. 7 комментариев 15 Yaroslav Storozhenko я просто использую caddy, который из коробки умеет в ssl и вообще его конфиг выглядит азбукой на фоне уебищного nginx где 2 тысячи мест для конфигов, еще 2 миллиона на подходе, а чтоб подключить ssl надо бойлерплейта килограмм накопировать. А для авторизации есть удобный плагин, который легко настраивается Сервисов у меня своих крутится в докере штук 15, пока что я просто для них рандомный порт назначаю из головы, пока что еще не было коллизий 4 Petr Korolev О, вот это самое интересное! Всем хорош nextcloud, пока дело не доходит до Шеринга данных с кем-то еще. А если шарить только для себя - можно пробросить tailscale. Крайне рекомендую. Он добавляет девайсы в одну VPN-ку и ты можешь общаться со всем домашним зоопарком из любой точки мира. 0 us2h Yaroslav Storozhenko, а че за плагин для авторизации подскажи плз. А то я вот так у себя basic auth реализовал на caddy: https://github.com/us2h/docker-registry-stack/blob/master/manual-installation-disk-storage/data/caddy/start-caddy.sh https://github.com/us2h/docker-registry-stack/blob/master/manual-installation-disk-storage/data/caddy/Caddyfile и запускаю в compose это через command: sh /start-caddy.sh 0 us2h Petr Korolev, я сейчас тоже все через tailscale зарулил, но мне не нравится что он не полностью selfhosted, "голова" все равно у них. Хочу как то разобраться с netmaker и пересесть на него. 0 Sergey Petrov us2h, у tailscale можно просто поднять свой control server чтобы закрыться в себе https://github.com/juanfont/headscale 0 us2h Sergey Petrov, О, пасиб, посмотрю. 0 feduza Для Caddy есть плагин, тоже позволяющий прописывать настройки в лейблах контейнеров: https://github.com/lucaslorentz/caddy-docker-proxy Ещё можно автоматически выписывать настоящие SSL-сертификаты на купленный домен, не открывая доступ из интернета с помощью DNS-challenge: https://caddyserver.com/docs/automatic-https#dns-challenge (тоже с помощью плагинов для провайдеров DNS) Войти и написать Еще Traefik дает классный дашборд, где всегда можно посмотреть почему сервис не завёлся как надо и откуда сыпятся ошибки 🕸️ mDNS — выдаём локальные имена Каждый сервис живет на своем локальном поддомене. home.local — это главная страница всего (дашборд со ссылками), а дальше идут syncthing.home.local, homeassistant.home.local, gitea.home.local, stats.home.local и так далее. Откуда берутся локальные домены? Старый добрый avahi-daemon анонсирует их все через Multicast DNS на вашу домашную сеть автоматически. Даже не надо поднимать свой DNS сервер, чтобы у тебя были красивые URL. У гостей тоже работает (если у них не доисторические девайсы). На убунте оно уже буквально включено из коробки. Просто откройте в браузере [ваш_хостнейм].local и узрите. Если нет — просто делаем sudo apt install avahi-daemon и вот оно магически появляется. 5 комментариев 0 Andrii Havryliuk Спасибо! Как раз задался вопросом как весь зоопарк портов во что-то запоминаемое превратить. 13 Вастрик Andrii Havryliuk, там у mDNS все еще с поддоменами проблема, но есть лайфхак — анонсировать каждый поддомен самому (у меня это Ansible делает). Типа того: "avahi-publish -a subdomain.home.local -R 192.168.1.10 &" Вот пост: https://pi3g.com/2019/04/10/avahi-how-to-assign-several-local-names-to-same-ip/ 1 Sergey Grishin Я для этого как раз написал https://github.com/grishy/go-avahi-cname Делает тоже самое, что и avahi-publish, но не нужно указывать IP и на все адреса 2 Artem Tiumentcev Можно рассмотреть такой вариант https://github.com/hardillb/traefik-avahi-helper, просто запускается рядом. 0 us2h Я использую в локалке pihole и его же указываю как первичный DNS, а в нем в свою очередь прописываю локальные айпи для поддоменов. Получается что вне моей локалки я хожу на nas.example.com и попадают на внешний айпи которой делает порт форвардинг в локалку, а в локалке этот же домен резолвится в локальный айпи. Войти и написать 🖼️ Home Page Дальше встает выбор дашборда. Можно, конечно, хранить все эти ссылки просто в закладках, но мне удобнее когда я захожу на home.local и сразу кликаю на нужный мне сервис. Traefik даже умеет пробрасывать всем единые хедеры с авторизацией, чтобы не вводить каждый раз логин-пароль. Дашбордов на гитхабе дофига, я выбрал Homer с темой Homer v2. Он так же разворачивается через docker-compose и встает одним из сервисов. Все универсально, нравится. 2 комментария 4 Yaroslav Storozhenko я этих дашбордов наелся, работают все на тонне джаваскрипта, чет постоянно не грузится или лишнее кешируется. Поэтому сделал свой дашборд для аутистов и вывалил на гитхаб: https://github.com/AngryJKirk/navigation-dashboard 2 Vladimir @nett00n Bu У меня эту роль выполняет https://github.com/benphelps/homepage Люблю минимализьму Войти и написать Homer. Если бы он умел еще конфиги Traefik автоматически парсить чтобы добавлять новые плитки — вообще был бы пушкой 🎛️ Приложеньки Дальше уже можно разворачивать любые сервисы из списка Awesome Selfhosted и играться как ребенок с кубиками. У меня набор пока минимален: Syncthing. Одно из самых моих любимых приложений вообще. Оно неубиваемое, делает одну вещь и делает ее хорошо вот уже много лет — синхронизирует файлы напрямую между машинами без облака. Filebrowser. Да, прям так и называется. Легковестная браузилка файлов, выручает когда нужно «найти в архиве документов свой старый контракт» или что-то такое. Почти ничего больше не умеет, но оно и не нужно. Nextcloud. Комбаин всё-в-одном — и файлохранилище, и календарь, и чат, да даже почту умеет за вас забирать. Раньше пользовался активно, но сейчас немного устал от монструозности и выбираю решения попроще. Однако, главным плюсом Nextcloud все еще остается мобильное приложение — через него удобно как смотреть что-то на сервере, так и бекапить фоточки с телефона. Home Assistant. Установлен из докера, потому немного урезан по фичам. Например, не умеет устанавливать всякие приложения внутри — SSH-терминал или HomeKit-хаб. Но мне так даже больше нравится, а при желании я могу всё это поставить сам рядом. Cronicle. У меня куча периодических cron-задачек, которые кто-то должен исполнять и мониторить чтобы не падали. Бекапы всех моих сайтов, скрипты, группирующие чеки по папочкам для налоговой, и прочее. С обычными крон-тасками главная проблема — он внезапно ломаются и ты об этом узнаешь только спустя месяц. Portainer. Для меня это просто удобная веб-админка ко всем докерам. Посмотреть логи, какие контейнеры запущены, где кеши надо почистить и прочее. Gitea. Локальный гитхаб, туда зеркалятся все мои репо. Зачем? Ну вот когда настоящий Гитхаб наконец-то забанит меня потому что я русский ванька (как он делает с иранцами, например) — тогда и поймёте зачем. PhotoPrism. Ваш собственный Google/Apple Photos. Его даже немножечко обмазали нейросетями и он умеет находить фотки по простым запросам типа «car» или «budapest». У меня есть ритуал — каждое рождество сливать все фотки за год из облаков на диск в хайрезе, потому что все мы слышали истории как тот же Google со временем просто пережимал ваши фотки в 10 шакалов, чтобы экономить место. Теперь они все еще и автоматом индексируются PhotoPrism'ом и их можно потом смотреть с друзьями через аппку на телефоне. Your Spotify. Ваш собственный Last.fm. Ну, почти. Простая аппка, которая сохраняет себе всю историю ваших прослушиваний Spotify и может показывать статистику а-ля Spotify Wrapped только не раз в год, а хоть раз в месяц или раз в неделю. Чисто залипалово. Ну и локальное хистори музыки всегда полезно. Эх, аж заскучал по Last.fm. ArchiveBox. Ваш собственный Internet Archive (он же Wayback Machine). Я еще не угорел по «архивации всего, что я смотрел и читал», но в тусовке есть любители. Работает так: ставишь плагин в свой Firefox и он автоматически сохраняет тебе на сервер ВСЁ, что ты браузил в интернете. Даже если контент был удалён (что сейчас часто бывает) — ты всегда можешь прочитать его из личного архива. Всё равно HDD стоят дешево. Pi-hole. Блокировщик рекламы и локальный DNS-резолвер. Давно не использую, поставил чисто по привычке, но вдруг! Glances. Максимально простая и удобная страничка мониторинга сервера. Просто условный htop + docker ps + df -h еще пара стандартных команд, выведенных в одном месте. Нравится. Даже передумал ставить стандартную связку Prometheus + Grafana, так как его хватает. Но может поставлю еще чисто для статистики. 🏴‍☠️ В моем списке нет популярных сервисов типа Plex, Transmission и Jellyfin, которые офигенно позволяют построить свой Netflix на торрентах. Это всё опять из-за Германии, где торренты запрещены. Но вам я очень рекомендую! Отыграйтесь там за мою боль. 2 комментария 0 Vladimir @nett00n Bu Вместо portainer я бы рекомендовал Yacht, так как он не пытается в кластеризацию, зато хорошо дружит с контейнерами, поднятыми не через стол портейнера 1 feduza PhotoPrism у меня не справился с чтением таймстемпов из метаданных и некоторые фотки вставил куда попало. Посмотрел на конкурентов и в итоге выбрал Immich. Сравнительная таблица: https://meichthys.github.io/foss_photo_libraries/ Войти и написать Glances покрывает необходимый минимум параметров сервера, чтобы не ходить всё время по SSH 📚 Ansible! (не умер) Потому что всё точно сломается и придется накатывать с нуля Последний вопрос — как это всё хранится и конфигурируется. Для этого у меня есть локальный гит-репо со всеми конфигами и старый добрый Ansible. Да-да, он еще живой. Они даже с питона 2 его наконец-то переписали. И десять лет не прошло. Ансибл используется для накатывания всего моего сетапа с нуля. Я не так часто настраиваю новый сервер и каждый раз вспоминаю «чо там еще надо было установить». Теперь всё это просто записано в плейбуке, в конце которого Ансибл просто копирует весь репо на хост и делает docker-compose up -d для каждого сервиса. Красиво. Надо лишь не забывать время от времени конфиги подкоммичивать в гит. Когда что-то меняешь через UI — будущие поколения об этом не узнают. Длинный playbook, который сетапит всё добро с нуля одной командой 4 комментария 10 Никита Сороковиков На секции про докер сдержался от упоминания NixOS-a, на секции про ансибл не сдержался 34 Валерий Симонов hoeassistant lol 51 Вастрик Валерий Симонов, ах вот блять почему не открывается! 1 us2h Плейбук красив своей простотой. А есть где почитать роли? А то я сейчас тоже весь свой хоумлаб в ансибл описываю и хожу смотрю как народ делает. Основная цель - читабельность и простота, что бы и другим было легко читать и себе через год. Войти и написать 💾 RAID1 через mdadm, zfs или простой rsync В детстве такой проблемы не было. Данных было немного, а линуксы переустанавливались каждые пару месяцев. С годами, или как в моем случае с десятилетиями, ты начинаешь замечать насколько хрупки HDD, даже если покупаешь специальные WD Red для NAS. Однажды утром ты просыпаешься, наливаешь себе кофе, а левым ухом слышишь треск из под телевизора — один из твоих HDD сдох. Ты идешь и покупаешь в два раза больше дисков и делаешь на них RAID1. Ну либо, если у тебя уже дофига дисков разного размера — делаешь ZFS по-модному. Ну а если ты нищеброд — просто по старинке настраиваешь cron+rsync всех важных папочек на соседний диск. Каждый подход имеет свои плюсы и минусы. Выбирайте сами. В линуксах есть просто прекрасный своей простотой mdadm, позволяющий буквально в две команды собрать себе софтварный рейд-массив, а в случае деградации — пересобрать. Mdadm позволяет жонглировать дисками как горячими пирожками, хотя и каждый раз стрёмно, конечно. Потому сейчас я решил попробовать чуть более олдскульный метод — rsync'ать все данные с диска на диск раз в неделю и мониторить это отдельно. Так тоже можно, если вам важно именно иметь бекапы, а не high availability. Но для новичков это всё еще опционально. В идеале лучше вообще всё бекапить в облако, ведь даже самый лучший домашний RAID-массив можно просто физически наебнуть с полки на пол и потерять всё. Не хотелось бы. 4 комментария 3 Magistr если у тебя уже дофига дисков разного размера — делаешь ZFS по-модному Для zfs это антипаттерн, и там обычно как раз используют диски одного размера, а вот когда дофига дисков разного размера тогда unraid пригождается 4 Yaroslav Storozhenko Я забил на все рейды когда я умудрился похерить одновременно оба диска путем разъебывания файловой системы. Теперь у меня просто есть три внешних диска куда я закидываю данные просто по очереди, чуть дольше, но 1) ошибку не повторю 2) высокая надежность 3) в самолете если везти с собой диски то их можно держать у разных людей в разных чемоданах 0 mcornholio Я считаю, что zfs стоит того из-за прекрасного тулинга и снапшотов. В идеале лучше вообще всё бекапить в облако, ведь даже самый лучший домашний RAID-массив можно просто физически наебнуть с полки на пол и потерять всё. Не хотелось бы. Вот кстати у меня бэкапы двух компьютеров (домашнего и дедика) сделаны отправлением zfs-снапшотов друг в друга. Охуенно просто, горжусь. 2 us2h У меня локально Synology с raid5, а бекаплю важное с него в Minio кластер (s3). Нашел VPS хостинг, виртуалки по 5 баксов за террабайт. Поднял три в разных странах. Собрал в кластер (написал ансибл, где указываешь три айпишника, адрес где будет прокси и домен и готово, все поднимается в докере) и в итоге у меня S3 like сторадж, на 2ТБ за 15 баксов в месяц, в котором может упасть любая из трех нод и он продолжит работать. Туда делаются бекапы важных данных (все кроме фильмов и сериалов) из локального NAS, причем он их на своей стороне энкриптит и кладет уже зашифрованные. Войти и написать 🛣️ Cloudflare Tunnel? Ну а вишенкой на торте и самым хайтеком современного селф-хостинга считается Cloudflare Tunnel. Я пока не знаю зачем он мне, но очень хочется. Ты по сути можешь так и держать свой сервер только в домашней сети (за NAT'ом), но поставить на него специального демона, который устанавливает приватный шифрованный тоннель с Cloudflare и дальше может через него иметь доступ ко всем своим домашни сервисам из любой точки интернета. Сейчас люди с публичными IP адресами такие «эээ, а в чем разница???», но я живу в стране, где иметь дома публичный IP это как иметь дома Porsche (и то вторых больше), так что тут народ прям ликует по поводу Cloudflare Tunnel. 9 комментариев 9 Андрей Руденко а tailscale видел? 1 Вастрик Андрей Руденко, ага, он тоже популярное решение, даже старше Cloudflare. Он классный, что может делать тебе твой личный VPN прямо домой через удобную аппку. Ну как соберусь делать, может еще повыбираю между ними 3 Holovin А я zerotier юзаю, его при желании можно даже заселфхостить (координатор например на свой vps поставить) 2 Nikita Burtsev С некоторым количеством мата я пробросил home assistant через cloudflare tunnel + zero access для google auth, порадовался как все круто работает в браузере и запустил ios app который со всеми этим оказывается совсем не дружит. Буду придумывать новые костыли. 11 Вадим Ипполитов Ещё вариант доступа: на дешёвом VPS настраиваем Wireguard, к которому цепляемся с мобильных девайсов и с домашнего сервера (все пиры пихаем в одно адресное пространство). Минусы: с рандомного компа не зайдёшь. Плюсы: более секьюрно. 0 Lagunovsky Ivan Использую для этого https://github.com/fatedier/frp 0 Vlad Zaitsev О, прикольно, еще полтора года назад он еще не умел нормальный туннель. Сидел на tailscale. Но у него какая-то бага с мобильным клиентом, он очень любит мобильный. трафик жрать. Ушел на свой WG: https://habr.com/en/company/xakep/blog/699000/ 2 us2h в Украине не было проблем со статическим айпи дома и так к этому привык что в Европе удивился узнав что это редкость и сложно. Набросал себе такой себе dyndns скрипт который в докере крутится прямо на насе и проверяет внешний айпи, если поменялся идет по API в Route53 (домен хощу на aws) и апдейтит рекорды. https://github.com/us2h/ddns 0 us2h Но вообще все девайсы завернуты в tailscale и например есть торентокачалка в виде vps в Украине, там поднят торрент клиент с вебмордой настроенный на watch определенной папки и скачивающий торренты в другую папку, а папки смотрят в NFS шару домашнего NAS, связаны они при этом в локалку через tailscale. Просто бросаешь торрент файлик в папку, и через какое то время в соседней уже лежит скачаное. Прогресс можно смотреть через вебморду, ну или если надо кастомизировать закачку. Войти и написать 🔗 Ссылочки для вкатывания Вместо заключения положу вам ссылочек, чтобы процесс вкатывания во всю эту историю с селф-хостингом и автоматизацией был попроще. r/selfhosted, r/homelab и r/homeaassistant на Реддите для входновения (сортируете по top of the year или top all time и залипаете) Awesome-Selfhosted и Self Hosting Guide — курируемые списки приложений, которые можно селфхостить. Рекомендую еще глянуть топ гитхаба по тегу. Ultimate Traefik Docker Compose Guide [2022] with LetsEncrypt — статья, где по шагам рассказывают примерно мой сетап Селфхостишь? и Что у вас крутится на Raspberry Pi? — вопросы-треды в Клубе Umbrel — интересный пример как сделав красивый фронтенд к docker-compose можно поднять $3 млн инвестиций. Jeff Geerling и Wolfgang's Channel — популярные каналы на ютюбе Комментировать Войти и написать
==============
В тексте описывается эволюция домашней инфраструктуры автора, начиная от старых серверных решений и заканчивая современным селф-хостингом. Автор рассказывает о переходе от Raspberry Pi к полноценным компьютерам, использованию Docker, Traefik, и Home Assistant. Особое внимание уделяется проблеме информационной безопасности и желанию контролировать свои данные. Автор также делится опытом настройки домашней сети с помощью Cloudflare Tunnel и рекомендует различные инструменты и ресурсы для селф-хостинга. В тексте также обсуждаются альтернативные решения, такие как Syncthing, Nextcloud, и различные VPN-сервисы.
