✏️ ️Посты 🌍 Путешествия Подписаться 👍 Донат
🔍
👤
02 декабря 2022
Дом-дурачок. 3 года спустя
+ много пропаганды селф-хостинга

Мой домашний серверный сетап меняется каждые 3-4 года. В Сибири у меня был огромный жужжащий ящик, в Литве я перебивался готовыми NAS'ами от WD и Synology, потом переезжал в дата-центр, а в последние годы держал домашний кластер Raspberry Pi.

Недавно я запостил в твиттер очередную фотку своего настенного планшета с новым виджетом и куча народа попросила рассказать как всё устроено.

Штош, три года прошло, время апдейтов.

На эту черную пятницу я прикупил себе кумплюктер. Последний раз я употреблял в своей речи слова SATA и DDR примерно лет пять назад, а последние годы моя «жизнь» вообще происходит исключительно за ноутбуком или планшетом. Я — тот бородатый хипстер их реклам Apple.

Но жизнь без настоящего кумплюктера — это, конечно, не жизнь. Хотя «настоящим» кумплюктер можно было назвать лишь отчасти, потому что он вот такой:

Даже стопка HDD на заднем плане, воткнутая в RAID-массов через USB-C донгл с отдельным питанием, выглядит толще
Даже стопка HDD на заднем плане, воткнутая в RAID-массов через USB-C донгл с отдельным питанием, выглядит толще

Это так называемый Mini PC, которые раньше были в основном уделом школьных кабинетов информатики, а теперь самые храбрые из них даже превратились в Steam Deck, на который дрочат все геймеры.

У меня довольно слабая модель — MinisForum U820 за €350, но и бралась она с расчетом, что мне не нужен гейминг и внешние видеокарты, а нужна экономичная машинка для замены моих Raspberry Pi.

Один мой RPi отвечал за умный дом с Home Assistant — тот самый, о котором я писал три года назад. Другой RPi был под домашнее облако-бекапилку-файлопомойку, на котором был RAID1 из 2x4Tb HDD с периодическими бекапами всех моих проектов, считалкой налогов (яж блять в Германии) ну и просто хранилищем для всех фоток, документов и прочего нажитого непосильным трудом. Эти два HDD переезжают со мной вот уже в третью подряд страну.

И вот когда мне понадобился третий RPi я сказал хватит. Пора брать что-то нормальное, ставить туда полноценную Убунту и устраивать хоум-лаб под себя как в лучших домах Европы.

Последние недели я усердно мигрировал свои домашние сервисы на эту пепяку, потому как раз появился повод рассказать как оно всё устроено для потомков.

Как вы вообще всё это упихали в коробку размером со стопку дисков от плейстейшона?
Как вы вообще всё это упихали в коробку размером со стопку дисков от плейстейшона?


2 комментария
1
Petr Korolev

@vas3k, казалось для HomaAssistant хорошо иметь Малину отдельную, потому что в докере некоторые фичи обрезаны (плагины).
А если в малину в докер HA запихнуть, это отзывчивость сильно скажется? Ты заметил разницу после переезда?

0
Nikita Baranov

А какой-нибудь Synology с поддержкой докера не зайдет под этим дела?

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

Сразу накину — за три года было выброшено практически всё.



Комментировать

☠️ Зоопарк Xiaomi китайских девайсов. Ожидаемо, эти ребята сгнили первыми.

Пока они новые — ты кайфуешь. За пять баксов ты можешь следить за температурой и влажностью в каждой комнате, а еще за десять — автоматически включать в них свет. Вау! Технологии!

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

Всё это хоть и кажется мелочами на первый взгляд, но когда всё разваливается по пятому кругу — ты просто забиваешь. Не лень мне и рукой свет включать.

Да, всё это было абсолютно ожидаемо и китайское барахло от Xiaomi/Aqara покупалось исключительно ради экспериментов и шуток про всратый IoT. Так что особо не жалко.

До сих пор иногда нахожу дохлые трупики старых датчиков по квартире и улыбаюсь.

☠️ Универсальные хабы, умные выключатели и прочие «сценарии». Любой сценарий, сложнее чем «нажал кнопку — включилась лампа» обречён со временем сдохнуть. Вы просто устанете каждый раз прописывать в него новые лампочки, триггеры, менять сцены и вообще заморачиваться со всем этим больше одного раза.

Потому все «умные выключатели» были содраны со стен и заменены обратно на тупые.

Особый кек случился с датчиками на батареях, которые якобы должны были «умно» подстраивать температуру комнаты под комфортную днём, снижать её ночью и экономить отопление, когда дома никого нет.

Так вот. Мне пришел счет за 2020 год, когда датчики стояли везде, и за 2021, когда я их снял. С «умными экономящими датчиками» за год я нажёг на 20% больше отопления, чем за год с тупыми крутилками, которые просто всегда стоят на единичке.

Заебись сэкономил!

В итоге из «умных устройств» у меня остался только набор икеевских кнопочек и розеток, которые не заменяют обычные выключатели, а скорее дополняют их — когда лень вставать с дивана перед сном, либо это напольная лампа, которой хочется управлять удалённо.

Но не более того. Даже гирлянда на балконе была заменена на обычную с собственным таймером. Никакой разницы.

☠️ Удалённое управление. Фича «выключить свет дома пока тебя нет» пригодилась за всё время ровно НОЛЬ раз.

Да, я восхищен как Apple HomeKit пробрасывает всё мое добро через любой NAT и позволяет мониторить мой дом откуда угодно через спящий где-то под телевизором Apple TV. Это круто. Но реально ни разу не пригодилось. Прости, Тим Кук.



2 комментария
5
Кирилл Томашпольский

Да, сколько видел домов, где "умный свет с 500 сценариев" тупо горел весь день или работал как выключатель - всем тупо лень забивать и разбираться!
И Xiaomi, скотина такая, у меня тоже глючит даже простейший глупый датчик влага-температура после года-полутора.
Для использования в загородном доме как раз функция удалённого включения + темп датчики оказалась самой нужной - выставляешь отопление в четверг, согревается, в пятницу приезжаешь как царь: за окном -20, а у тебя дома уже +10. Коньяк в бокал, дровишек в камин - и уже можно жить!

2
Ivan Zaitsev

Могу порекомендовать Philips Hue. Очень дорого, но весьма надежно. Первые их лампочки купил аж шесть лет назад. За это время ни одна не перегорела, и даже с софтом и интеграциями проблем не было. Стоят своих денег. Включаю их голосом или выключателем, ночью выключается все сразу.

Из датчиков движения я перешел на комбо из вот таких вот десятидолларовых сенсоров (https://www.amazon.com/gp/product/B00KAB4CRG), в которые втыкаются опять же десятидолларовые светодиодные ленты. Использую их в дополнение к обычным тупым выключателям, как ночники. Очень надежно, за 5+ лет ни одной проблемы.

Термостат — Nest. В основном использую ради голосового контроля и интеграций (утром включить, ночью выключить). Нареканий нет.

В качестве контроллера всего этого, вполне хватает Google Home.

✅ 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
Вот такое. Тема — iOS Dark Theme

По технике проблем особых не было. За три года ничего не выгорело, не сломалось, батарейка жива, счета за электричество меня не обанкротили. Там щас слой пыли с ноготь толщиной, но это пофиг, сломается — куплю новый.

Единственный косяк, я он нём уже рассказывал, что Амазон где-то раз в пару месяцев решает показать мне рекламу во весь экран. Нужно же как-то Джефу Безосу оставаться самым богатым человеком в мире. Плоти долор.



5 комментариев
4
Aleksandr Barmin

В последнем предложении толщина два раза. Так и должно быть?

4
Вастрик

Aleksandr Barmin, баг, конечно же

6
Vladimir @nett00n Bu

А если подключить на планшете "антирекламные" DNS, реклама амацона не уйдет?

25
Serhii Borovyk

а что за виджет с прогнозом погоды?

4
ReDetection

В каких пределах держишь влажность и чем регулируешь? На Кипре пока тепло, вроде около 60% болтается, я уже закупил порошочки, но ещё толком не использовал

Пока я перевозил всё свое добро с Raspberry Pi, заметил, что нам давно не хватало нормального виджета для транспорта. Раньше у нас был совсем маленький и он умел только трекать транспорт из точки А в точку В. А нам теперь надо весь. Так что я решил написать новый. Да, опять.

Вот код: https://github.com/vas3k/home-assistant-berlin-transport

Мне кажется, для олдов это уже скоро станет мемом — Вастрик в любом городе и при любых обстоятельствах делает свой трекинг транспорта. Новосибирские олды еще помнят NGTMap — это же был мой первый «стартап», который я продал «большой корпорации» аж за 500 догдашних долларов! Был очень горд собой, три месяца на них жил!



3 комментария
7
Ilya Zverev

Переехав в Таллинн, первым делом написал приложение для трекинга транспорта — все официальные и коммерческие решения отстойны. Отлично, пользуемся каждый день. Транспорт — самое важное.

5
Oleg Zakharchenko

Привет, скажи пожалуйста, как поставить на ХА твою кастовую карточку? Я уже всё перепробовал. HACS стоит, другие карточки работают, вроде всё по инструкции с Git сделал, но что-то ничего не получается, не видит карточку Home Assistant

3
Гауз

Спасибо за виджет, я адаптировал его для транспорта в Мюнхене

В последние годы я начал сильно больше заморачиваться по поводу своих данных и информационной безопасности. Может это техно-пессимистическая Германия на меня так влияет, может Берлин, с его глубокой хакерской культурой, а может потому что большая айтишечка сейчас в целом гниёт со страшной силой.

Хорошие сервисы, которыми я пользуюсь лет десять, обрастают тоннами ненужных фич и переписывают свои удобные маленькие приложения на монструозно-тормозное веб-говно. Продуктоунеры пришли, блять. «Насколько вы готовы рекомендовать наше приложение друзьям». Убивав бы.

Другие же активно строят цифровые гулаги и огороженные сады, где либо торгуют твоими данными, либо сливают их направо и налево.

Сейчас добавилась и третья боль — постоянные блокировки всего. Я уже боюсь утром почту открывать, ведь там опять будет письмо от какого-нибудь Гитхаба, Спотифая или Хецнера, что «им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин».

Потому я начал плавно склоняться в сторону «всё своё ношу с собой» и селф-хостинга для всего, что я считаю действительно важным.

Первым из мастодонтов пал Dropbox. Он так сильно сгнил, что был без жалости заменен сначала на Nextcloud, а потом вообще на Syncthing, потому что он простой и стабильный.

Вторым был убит GMail. Но честно селф-хостить имейл в 2020+ году нет никакого смысла (ваш IP сразу забанят все почтовики), потому он был заменен на независимый платный имейл-сервис, даже неважно какой, с бекапами истории в Nextcloud.

На очереди замена 1password на какой-нибудь Bitwarden/Vaultwarden, но с этим сложнее, потому что в 1password меня держит шаринг паролей с кучей людей, а тут без «облака» пока никуда.

Так что со временем я планирую всё больше и больше всего селф-хостить дома. Да, это требует времени и навыков, да, у селф-хостинга тоже есть свои опасности (недавно я чуть не уронил RAID-массив на пол), но плюсов для меня всё равно больше.

Планомерно пересаживаю всех домашних на это тоже.

Ну а еще это неплохое хобби — можно потренироваться с теми технологиями, которые редко используешь по работе.



15 комментариев
12
Nikita Doiun

A что было с GMail? Типа ко многому у них есть доступ?

2
Vladimir @nett00n Bu

Когда google упразднил халявный gmail for domain долго думал на что переходил и в итоге поднял свой почтарь на базе mailu. Но ооооочень думал не отдаться ли почтарю hey.

10
Вастрик

Nikita Doiun, не, они просто обнаглели и всех legacy-юзеров почты со своим доменом заставили плотить долор как будто они корпорации. Я подумал, что если уж платить — то точно не гуглу, и ушел на сторонний платный сервис :)

2
Vladimir @nett00n Bu

Как человек уже мигрировавший в bitwarden протокол в реализации selfhosted vaultwarden, остался им вполне доволен. Шарю пароли с женой. Один минус за почти год пользования - не работают "одноразовые" шары vaultwarden.

1
Tim Sattarov

Как человек, который делал 1Password cloud: А в чем проблема с 1password? большие приложения? Электрон с Растом? :) Переход в клауд был мотивирован в первую очередь шарингом, восстановлением доступа, если кто то его потерял и уменьшением нагрузки на поддержку как результат.

3
Vladimir @nett00n Bu

Tim Sattarov, ну прям в этом же блоке написано:

Сейчас добавилась и третья боль — постоянные блокировки всего. Я уже боюсь утром почту открывать, ведь там опять будет письмо от какого-нибудь Гитхаба, Спотифая или Хецнера, что «им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин».

1
Vladimir Lazarev

им очень жаль и они не могут продолжать со мной сотрудничество без объяснения причин

Интересно, что это за "независимый платный имейл-сервис", который не напишет так же однажды утром?

1
Вастрик

Vladimir Lazarev, вытащить аргументы из разных абзацев
@
представить их так, как будто они причина и следствие друг друга
@
передернуть факты
@
вы великолепны, обратитесь к начальнику твиттера для выдачи внеочередной премии за развитие интернета!

8
Вастрик

Tim Sattarov, предпоследним звоночком был Электрон, но я пережил, вроде норм сделали, лагает почти незаметно. Последним же было то, что вы тоже решили русню банить. Вот тут я уже точно заволновался, мало ли, всё-таки это реально все мои пароли, а опцию забекапить их себе вы отключили (как ты и сказал)

2
Dmitry Popov

Издавна сижу с KeepassX и синхронизацией через Syncthing, но это не решает вопрос шаринга паролей. Тоже в раздумьях

0
Tim Sattarov

Вастрик, на мой взгляд Электрон это неправильная причина не любить софт. Если правильно сделать даже Жаба будет летать :)
А русню блочить это да, можно написать в саппорт и поругаться на несправедливость. Политические решения мимо меня...

4
Вастрик

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.



Комментировать

Дальше докеры. Докеры — основа всего сейчас. Не знаю как мы жили без них. Сейчас, запуская приложение без докера, чувствуешь себя как будто голым на улицу вышел.

Современные ОС по-прежнему обожают засираться всякими пакетами, зависимостями, ошмётками кешей и конфигов. Это в молодости я думал, что я просто глупый и ничего не понимаю, но даже спустя 10+ лет я всё еще не понимаю что с этим делать.

Тут пакеты из pip, тут пакеты из aptitude, тут snap'ы, тут вообще какой-то инсталл-скрипт притащил для себя php и nodejs. Потому мне с докерами как-то проще: развернул контейнер одной командой — потыкал — удалил — система такая же чистая и новая.

Докеры — кайф. ? хотя пора бы переезжать на Podman, конечно

Можно прям через удаленный VS Code всё редактировать и перезапускать сразу на хосту. Главное потом не забыть закоммитить изменения в гит-репо
Можно прям через удаленный VS Code всё редактировать и перезапускать сразу на хосту. Главное потом не забыть закоммитить изменения в гит-репо

Потому для любого сервиса, который я хочу крутить на своем сервере, я первым делом гуглю "название + docker-compose" и в 99% случаев кто-то уже написал нормальный рабочий конфиг, который просто развернется одной командой — со всеми фронтендами, бекендами, базами данных, мониторингами, итд.

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

Чем проще делаешь — тем дольше проживет



7 комментариев
1
Артем Уткин

Привет, ты не мог ты скинуть настройки vscode (хотя бы тему)
На гитхабе у тебя не нашел

0
Вастрик

Да это же по-моему ванильный стандартный VS Code, не? Я кроме плагинов особо ничего не настраивал на этой машине :)

1
Tim Sattarov

Перевёл свой HomeAssistant на Podman и радуюсь жизни. Он даже в rootless режиме как systemd unit запускается, как сервис.

0
andr

Ну конечно докеры, у тебя ж 16 оперативы. А для простенькой VDS, где крутятся 5-6 разных селфхостед сервисов, ресурсов не хватит. Я на свой сервер ставил всё без докера, в итоге потребление ОЗУ 650МБ. А с докером только 1 сервис жрал больше, чем сейчас всё вместе жрет.

1
Вастрик

andr, вот этот самый сайт, на котором ты сейчас пишешь, хостится на самом дешевом VPS от хецнера за 5 баксов с еще 4 такими же сайтами в докерах, у каждого из которых своя база, тоже в своем докере. И ничо, брат жив.

1
us2h

andr, я чет не очень представляю, как один и тот же сервис жрет в два раза больше в докере чем без, миллион сервисов запускаю в докере и никогда такого не видел.

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

Простой выход — использовать готовые решения типа Umbrel, которые абстрагируют всё это за тебя и дают свой типа App Store. Для большинства юзеров пойдёт.

Но если планируешь запускать много кастомных докеров — готовые решения могут быть болью в жопе. Тут на ум приходит популярный в кругах Go'шников старый добрый Traefik, который всё это богатство красиво собирает под себя.

Traefik — это такой же реверс-прокси как Nginx, только написанный в этом десятилетии. Он уже по-умолчанию заточен под работу с докерами, а еще даёт из коробки SSL, подсети, авторизацию, и кучу других полезных плагинов, ради которых раньше приходилось долго танцевать в конфигах Nginx и Let's Encrypt.

В простейшем случае, чтобы развернуть контейнер на новом поддомене, нужно просто добавить пару-тройку "меток" (labels) в ваш Docker Compose, чтобы Traefik их прочитал и сделал всю магию автоматически. Даже перезапускать его не надо, всё дискаверится автоматически.

Даже не нужно лезть в конфиги самого Traefik, контейнеры дискаверятся автоматически
Даже не нужно лезть в конфиги самого Traefik, контейнеры дискаверятся автоматически

Моя домашняя сеть недоступна из интернета, потому я пока забил на SSL. Но это плохо, обязательно наверну его позже.



7 комментариев
9
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 дает классный дашборд, где всегда можно посмотреть почему сервис не завёлся как надо и откуда сыпятся ошибки
Еще Traefik дает классный дашборд, где всегда можно посмотреть почему сервис не завёлся как надо и откуда сыпятся ошибки

Каждый сервис живет на своем локальном поддомене. 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 и на все адреса

1
Artem Tiumentcev

Можно рассмотреть такой вариант https://github.com/hardillb/traefik-avahi-helper, просто запускается рядом.

0
us2h

Я использую в локалке pihole и его же указываю как первичный DNS, а в нем в свою очередь прописываю локальные айпи для поддоменов. Получается что вне моей локалки я хожу на nas.example.com и попадают на внешний айпи которой делает порт форвардинг в локалку, а в локалке этот же домен резолвится в локальный айпи.

Дальше встает выбор дашборда. Можно, конечно, хранить все эти ссылки просто в закладках, но мне удобнее когда я захожу на home.local и сразу кликаю на нужный мне сервис. Traefik даже умеет пробрасывать всем единые хедеры с авторизацией, чтобы не вводить каждый раз логин-пароль.

Дашбордов на гитхабе дофига, я выбрал Homer с темой Homer v2. Он так же разворачивается через docker-compose и встает одним из сервисов. Все универсально, нравится.



2 комментария
3
Yaroslav Storozhenko

я этих дашбордов наелся, работают все на тонне джаваскрипта, чет постоянно не грузится или лишнее кешируется. Поэтому сделал свой дашборд для аутистов и вывалил на гитхаб: https://github.com/AngryJKirk/navigation-dashboard

1
Vladimir @nett00n Bu

У меня эту роль выполняет https://github.com/benphelps/homepage

Люблю минимализьму

Homer. Если бы он умел еще конфиги Traefik автоматически парсить чтобы добавлять новые плитки — вообще был бы пушкой
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, так как он не пытается в кластеризацию, зато хорошо дружит с контейнерами, поднятыми не через стол портейнера

0
feduza

PhotoPrism у меня не справился с чтением таймстемпов из метаданных и некоторые фотки вставил куда попало. Посмотрел на конкурентов и в итоге выбрал Immich.
Сравнительная таблица: https://meichthys.github.io/foss_photo_libraries/

Glances покрывает необходимый минимум параметров сервера, чтобы не ходить всё время по SSH
Glances покрывает необходимый минимум параметров сервера, чтобы не ходить всё время по SSH

Последний вопрос — как это всё хранится и конфигурируется. Для этого у меня есть локальный гит-репо со всеми конфигами и старый добрый Ansible. Да-да, он еще живой. Они даже с питона 2 его наконец-то переписали. И десять лет не прошло.

Ансибл используется для накатывания всего моего сетапа с нуля. Я не так часто настраиваю новый сервер и каждый раз вспоминаю «чо там еще надо было установить». Теперь всё это просто записано в плейбуке, в конце которого Ансибл просто копирует весь репо на хост и делает docker-compose up -d для каждого сервиса. Красиво.

Надо лишь не забывать время от времени конфиги подкоммичивать в гит. Когда что-то меняешь через UI — будущие поколения об этом не узнают.

Длинный playbook, который сетапит всё добро с нуля одной командой
Длинный playbook, который сетапит всё добро с нуля одной командой


4 комментария
9
Никита Сороковиков

На секции про докер сдержался от упоминания NixOS-a, на секции про ансибл не сдержался

30
Валерий Симонов

hoeassistant lol

46
Вастрик

Валерий Симонов, ах вот блять почему не открывается!

1
us2h

Плейбук красив своей простотой. А есть где почитать роли? А то я сейчас тоже весь свой хоумлаб в ансибл описываю и хожу смотрю как народ делает. Основная цель - читабельность и простота, что бы и другим было легко читать и себе через год.

В детстве такой проблемы не было. Данных было немного, а линуксы переустанавливались каждые пару месяцев. С годами, или как в моем случае с десятилетиями, ты начинаешь замечать насколько хрупки 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-снапшотов друг в друга. Охуенно просто, горжусь.

0
us2h

У меня локально Synology с raid5, а бекаплю важное с него в Minio кластер (s3). Нашел VPS хостинг, виртуалки по 5 баксов за террабайт. Поднял три в разных странах. Собрал в кластер (написал ансибл, где указываешь три айпишника, адрес где будет прокси и домен и готово, все поднимается в докере) и в итоге у меня S3 like сторадж, на 2ТБ за 15 баксов в месяц, в котором может упасть любая из трех нод и он продолжит работать. Туда делаются бекапы важных данных (все кроме фильмов и сериалов) из локального NAS, причем он их на своей стороне энкриптит и кладет уже зашифрованные.

Ну а вишенкой на торте и самым хайтеком современного селф-хостинга считается Cloudflare Tunnel. Я пока не знаю зачем он мне, но очень хочется.

Ты по сути можешь так и держать свой сервер только в домашней сети (за NAT'ом), но поставить на него специального демона, который устанавливает приватный шифрованный тоннель с Cloudflare и дальше может через него иметь доступ ко всем своим домашни сервисам из любой точки интернета.

Сейчас люди с публичными IP адресами такие «эээ, а в чем разница???», но я живу в стране, где иметь дома публичный IP это как иметь дома Porsche (и то вторых больше), так что тут народ прям ликует по поводу Cloudflare Tunnel.



9 комментариев
9
Андрей Руденко

а tailscale видел?

1
Вастрик

Андрей Руденко, ага, он тоже популярное решение, даже старше Cloudflare. Он классный, что может делать тебе твой личный VPN прямо домой через удобную аппку. Ну как соберусь делать, может еще повыбираю между ними

2
Holovin

А я zerotier юзаю, его при желании можно даже заселфхостить (координатор например на свой vps поставить)

2
Nikita Burtsev

С некоторым количеством мата я пробросил home assistant через cloudflare tunnel + zero access для google auth, порадовался как все круто работает в браузере и запустил ios app который со всеми этим оказывается совсем не дружит. Буду придумывать новые костыли.

8
Вадим Ипполитов

Ещё вариант доступа: на дешёвом VPS настраиваем Wireguard, к которому цепляемся с мобильных девайсов и с домашнего сервера (все пиры пихаем в одно адресное пространство). Минусы: с рандомного компа не зайдёшь. Плюсы: более секьюрно.

0
Lagunovsky Ivan

Использую для этого https://github.com/fatedier/frp

0
Vlad Zaitsev

О, прикольно, еще полтора года назад он еще не умел нормальный туннель. Сидел на tailscale. Но у него какая-то бага с мобильным клиентом, он очень любит мобильный. трафик жрать. Ушел на свой WG: https://habr.com/en/company/xakep/blog/699000/

0
us2h

в Украине не было проблем со статическим айпи дома и так к этому привык что в Европе удивился узнав что это редкость и сложно. Набросал себе такой себе dyndns скрипт который в докере крутится прямо на насе и проверяет внешний айпи, если поменялся идет по API в Route53 (домен хощу на aws) и апдейтит рекорды.
https://github.com/us2h/ddns

0
us2h

Но вообще все девайсы завернуты в tailscale и например есть торентокачалка в виде vps в Украине, там поднят торрент клиент с вебмордой настроенный на watch определенной папки и скачивающий торренты в другую папку, а папки смотрят в NFS шару домашнего NAS, связаны они при этом в локалку через tailscale. Просто бросаешь торрент файлик в папку, и через какое то время в соседней уже лежит скачаное. Прогресс можно смотреть через вебморду, ну или если надо кастомизировать закачку.

Вместо заключения положу вам ссылочек, чтобы процесс вкатывания во всю эту историю с селф-хостингом и автоматизацией был попроще.



Комментировать
Комментарии 👇
Vladimir Lagunov 02 декабря 2022 в 12:24 #
36

Сколько времени уходит на поддержку всей этой экосистемы?

Вастрик 02 декабря 2022 в 12:27 #
6

Vladimir Lagunov,

Сколько времени уходит на поддержку всей этой экосистемы?

Стараюсь, чтобы нисколько не уходило. Только на первоначальную настройку. Если на поддержку уходит хоть какое-то время — такая экосистема скорее всего у меня не выживет, мне тупо лень будет :)

Ну раз в пару месяцев, конечно, появляется какая-нибудь новая идея "а было бы круто еще вот так попробовать", но это уже добровольно!

Maksym Bendeberia 02 декабря 2022 в 12:51 #
10

Были еще планы добавить туда всякие расписания вывоза мусора, но я не нашел нужных API для Берлина.

Наш муниципалитет раз в год публикует расписание на сайте.
Спарсил его из HTML, скрипт на питоне сгенерил ical файл, который заэкспортил в Google Calendar

Igor Mosyagin 02 декабря 2022 в 13:03 #
2

Кайфово! Пойду ловить Kindle Fire. У меня пока стадия raspberry pi, ботов и графаны, но это хотя бы после того как я сначала поднимал три вечера k0s кластер из нескольких RPi, потом один вечер радовался, а потом он у меня развалился и наконец-то дошло что я что-то делаю не так

Viacheslav Leonov 02 декабря 2022 в 13:14 #
1

У меня практически та же история и сетап похожий. Только я поставил truenas scale. на старый компик и воткнул пару дисков для zfs. Там тоже убунта, хелм и куб. Трафик идет через traefik, ssl с сабдоменами на все внутренние сервисы через бесплатный cloudflare dns и letsencrypt. Там же plex, на который киношки с голландского сидбокса через syncthing синкаются.

tptomas 02 декабря 2022 в 13:47 #
10

Всем кто только начинает въезжать в локальный сервер прямо крайне рекомендую купить вместо ущербной малины что-то на n5105 у китайцев. Стоить будет чуть дороже (реально чуть, вы цену на малину видели?) зато функционала не в пример. Плюсом возможное пассивное охлаждение получите. У меня малина у была громче, т.к. на ней активное охлаждение приходилось включать иначе температура к 70 улетала. Далее накатываете proxmox и сверху HA OS из репозиторий кастомного одной командой. И всё, свой сервер с отдельно-стоящей HA готов, на остальное ставь что хочешь, хоть бубунту, хоть докер, а внутри что хочешь, хоть самбу, хоть видеонаблюдение.

Dmitrii Medvedev 02 декабря 2022 в 14:39 #
0

У тебя получается один большой композ на все сервисы или их научили собираться в один большой композ из многих маленьких?

Вастрик 02 декабря 2022 в 14:40 #
1

Dmitrii Medvedev, много маленьких, мне удобнее ими независимо управлять. Но тут кому как удобно.

Дмитрий Прилипко 02 декабря 2022 в 15:22 #
5

Прикольно. Респект за звукопоглощающие панели за телевизором :)

Я тоже потихоньку строю хоумлаб. Только на Proxmox + LXC.

Еще я давным-давно купил корпус fanless chassis HPLEX H3. У меня там полноценный кампутер с процессором от Интел и никаких кулеров, т.е. шума. И выглядит клёво.

Ещё я долго думал, как организовать хранилище. Хотел купить NAS, но потом подумал, зачем мне покупать еще один компьютер, когда у меня уже простаивает один. В итоге взял внешний корпус на четыре диска: https://www.amazon.de/gp/product/B009O73WA0/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1

Он сам умеет в RAID, но я решил сделать софтверный через Proxmox и ZFS.

Дмитрий Прилипко 02 декабря 2022 в 15:25 #
2

Кстати, чего все так боятся торрентов? Я тут качаю уже лет десять. Понятно, что нужно предохраняться (VPN + кое-какие настройки клиента), но в целом это какой-то миф, что за торренты сразу прилетает.

Alexander Babenko 02 декабря 2022 в 15:39 #
0

Для семейного впн, который может сгодиться как альтернатива туннелям и смотрением во внешние интернету белым айпи, могут сгодиться решения типа tailscale.

Он соединяет девайсы и при желании контейнеры в единую сеточку, которая сама конфигурируется и коннектится.

Минусом является централизованность на сервисе тэискейла, который диспетчерит это дело. Как минимум сервис может быть забанен в какой-то стране. Но там есть заделы на замену этого сервиса своими нодами (headscale). Ну или ждать полностью распределенные альтернативы.

Мне позволил удобно сделать экзитноды из разных мест и опциональный роутинг во всякие рабочие впн. Так можно с любых своих девайсов без долгих настроек попасть в рабочие гитлабы и что-то посмотреть.

Как раз думаю не делать привязку к дому и физическому расположению сервисов, а чтобы они могли висеть "где удобно" и видеть друг друга в рамках своей сеточки. Так же можно поэкспериментировать с применением yggdrassil в качестве одного из слоев соединения. Таким образом меш может обрести применение живое.

Спасибо за ссылки и примеры компоузов! Понравились решения для фронтэнда и панели со ссылками.

Maksim Lebedev 02 декабря 2022 в 16:09 #
68

☠️ Удалённое управление. Фича «выключить свет дома пока тебя нет» пригодилась за всё время ровно НОЛЬ раз.

Конда жена долго не читает мои сообщения я светом во всей квартире мигаю

Лёша Худоченков 02 декабря 2022 в 17:53 #
6

Очень круто! Спасибо, что подробно рассказал. Я как раз только в это погружаюсь. Пока старый MacBook Air с внешним диском как сервер работает.

Вастрик, как ты получаешь доступ к документам в Nextcloud или ещё где, когда ты вне дома? Или пока ещё никак и потом будешь разбираться с Cloudflare Tunnel или Tailscale для этих целей?

Павел Скринник 02 декабря 2022 в 18:20 #
9

Я свой дом промигрировал с простых контейнеров на кубернетес. Разобравшись что-куда, управляется не сложнее docker-compose, но при этом много проблем решаются декларативно при добавлении новых сервисов - ингрессы, сертификаты, вольюмы. Но болячек тоже добавляет, да и процесс вкатывания довольно сложный

Зато потом можно рассказывать кулстори о том, как не смог включить свет в сортире из-за упавшей ноды

Tim Sattarov 02 декабря 2022 в 20:18 #
4

Maksim Lebedev, я однажды тоже так попробовал, не рекомендую, если цените семейное счастье :)

Yuriy Savenko 04 декабря 2022 в 03:33 #
1

А можно подробнее вот про это: "стопка HDD на заднем плане, воткнутая в RAID-массов через USB-C донгл с отдельным питанием"? Через донгл реализован raid, а через usb подключение к компу? И что это конкретно за устройство, и нет ли проблем, ну и вообще...

Sta2s 04 декабря 2022 в 13:19 #
0

От USB-винтов с любым питанием отказался несколько лет назад (не живут-с).
Сейчас, когда "жить на чемоданах" может случиться в любой день - нашёл для себя идеальное решение в плане размеров/веса/возможностей/уровня_шума в виде Synology ds620slim. Да, диски только 2.5", зато полноценная работа с винтами, их смартами, софтверные рейды и вышеупомянутые докеры с компоузами. Всё это упаковано в очень компактный корпус. Альтернатив такому пакету пока не нашёл.

Pavel Miroshnichenko 05 декабря 2022 в 07:11 #
0

Отличная статья. Кажется, что дальше будет просто HP Microserver вместо пачки микро-пк и дисков.

Есть ли эффект от акустических панелей? Акустика звучит лучше? Или эффект больше для интерьера? Спасибо

Kirill Komarov 05 декабря 2022 в 22:03 #
5

Очень мало юмора1!11 вастрик уже не торт

Вастрик 12 января 2023 в 15:03 #
8

Нука я проверю комментирование

Oskar Sharipov 12 января 2023 в 15:05 #
2

🪲🐞🐛

Oskar Sharipov 12 января 2023 в 15:24 #
1

🪲🐞🐛

Еще? Тогда вот