Моя Raspberry Pi 5 (8Gb) последнее время крутилась в таком корпусе. Но после скачков напряжения, всё знатно троило, приходилось регулярно использовать
ㅤ
В очередной раз меня это заебало, всё накрылось пиздой, micro-sd явно к такому не была готова. И я пошел гуглить.
Ну и нагуглил:
1. Корпус: Geekbord X1201-C1
2. Куллер: Active Cooler Geekworm H505
3. Плата расширения: Geekworm X1201 V1.1
4. Адаптер NVME: HAT X1001 2280 2242 2230
Смысл данного сетапа: 2 батарейки 18650 используются для резервного питания, ну и самое главное это замена micro-sd на полноценный NVME диск.
Заказал. Довольно быстро пришло. Собрал всё в кучу, особых трудностей не возникло. Ну а дальше…
Как обычно. Если хочешь, чтобы что-то заработало, нужно допилить напильником. В моём случае куллер отказывался вообще включаться.
По итогу 2х часов пиздостраданий я скомпилировал этот модуль и доставил еще каких-то 100500 пакетов. Ну естественно нихуя не заработало.
Пришлось писать python скрипт, который нужно было сделать сервисом. Скрипт отслеживает температуру и запускает вертушку при необходимом пороге перегрева.
Кусок скрипта выглядит так:
Это пиздец конечно. Если вздумаешь брать эти железяки, сразу готовься маленько поебстись.
Еще из минусов: 2 дырки под вход питания, сначала я пихал в родную дырку малины, а потом уже прочитал что сука надо пихать в другую дырку, но предварительно поплевать, чтобы трения не было. Хорошо, что ничего не спалил и не взорвалось.
То есть на корпусе 2 дырки под питание. Родное малиновское и через плату расширения через банки 18650.
Короче победил, погонял, провёл стресс тесты, отключил питание, 18650 отлично держат, не засекал сколько, чисто проверял переключение питания.
Ну и графики завел в графану чтобы потом визуально оценить происходящее.
Хоть сетап и проблемный, но проблемы решаются. По итогу получаешь энергонезависимое устройство да еще и на NVME диске.
Пока доволен. Дальше видно будет.
Такие дела…
А еще меня смущает надпись на плате расширение - Не используйте батареи 18650 с встроенной защитой. А я в душе не ебу какие у меня аккумуляторы туда вставлены.
Собственно вопрос в зал — кто шарит за электронику, чем грозит вставка батареек с защитой? Мне почему-то всегда казалось что такие батарейки намного надежнее чем просто без защиты. Слышал что если на плате есть BMS, то защита в батарейках не нужна.
Напишите в комменты, а то мож у меня этот сетап через неделю прикажет долго жить.
🛠 #selfhosting #hardware
—
✅ @bashdays / @linuxfactory / @blog
fsck, да чё греха таить порой и это не помогало.ㅤ
В очередной раз меня это заебало, всё накрылось пиздой, micro-sd явно к такому не была готова. И я пошел гуглить.
Ну и нагуглил:
1. Корпус: Geekbord X1201-C1
2. Куллер: Active Cooler Geekworm H505
3. Плата расширения: Geekworm X1201 V1.1
4. Адаптер NVME: HAT X1001 2280 2242 2230
Смысл данного сетапа: 2 батарейки 18650 используются для резервного питания, ну и самое главное это замена micro-sd на полноценный NVME диск.
Заказал. Довольно быстро пришло. Собрал всё в кучу, особых трудностей не возникло. Ну а дальше…
Как обычно. Если хочешь, чтобы что-то заработало, нужно допилить напильником. В моём случае куллер отказывался вообще включаться.
Ребята из Geekwormпидарасытакую лютую хуйню в документации написали, что после их рекомендаций пришлось перекатывать OS заново. И уже вдумчиво все ковырять.
По итогу 2х часов пиздостраданий я скомпилировал этот модуль и доставил еще каких-то 100500 пакетов. Ну естественно нихуя не заработало.
Пришлось писать python скрипт, который нужно было сделать сервисом. Скрипт отслеживает температуру и запускает вертушку при необходимом пороге перегрева.
Кусок скрипта выглядит так:
try:
while True:
temp = get_temp()
print(f"Temperature: {temp}")
if temp > 50:
lgpio.gpio_write(h, GPIO, 1)
else:
lgpio.gpio_write(h, GPIO, 0)
time.sleep(5)
Это пиздец конечно. Если вздумаешь брать эти железяки, сразу готовься маленько поебстись.
Еще из минусов: 2 дырки под вход питания, сначала я пихал в родную дырку малины, а потом уже прочитал что сука надо пихать в другую дырку, но предварительно поплевать, чтобы трения не было. Хорошо, что ничего не спалил и не взорвалось.
Собственно, как и в реальной жизни. Сначала с черного входа зашел, потом получил по ебалу и нормально сделал.
То есть на корпусе 2 дырки под питание. Родное малиновское и через плату расширения через банки 18650.
Короче победил, погонял, провёл стресс тесты, отключил питание, 18650 отлично держат, не засекал сколько, чисто проверял переключение питания.
Ну и графики завел в графану чтобы потом визуально оценить происходящее.
Хоть сетап и проблемный, но проблемы решаются. По итогу получаешь энергонезависимое устройство да еще и на NVME диске.
Пока доволен. Дальше видно будет.
Чуть позже расскажу про — Pironman 5 Series. Это уже лакшери корпус для малинки, с ним вообще никаких проблем, ни по сборке ни по софту, ребята молодцы!
Такие дела…
А еще меня смущает надпись на плате расширение - Не используйте батареи 18650 с встроенной защитой. А я в душе не ебу какие у меня аккумуляторы туда вставлены.
Собственно вопрос в зал — кто шарит за электронику, чем грозит вставка батареек с защитой? Мне почему-то всегда казалось что такие батарейки намного надежнее чем просто без защиты. Слышал что если на плате есть BMS, то защита в батарейках не нужна.
Напишите в комменты, а то мож у меня этот сетап через неделю прикажет долго жить.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 44
Вопрос из зала — а что я кручу на хую малине?
Да всё просто — не proxmox!
На ней у меня Ubuntu 24.10 под ARM (без десктопа, чисто серверная версия), ну и тот самый dockge в котором я запускаю контейнеры.
ㅤ
К этой малине у меня подключено 2 внешних диска WD RED (2x2TB) по USB3.
Программный зеркальный рейд я ебал на таком создавать, поэтому второй диск синкает через
Достаточно удачный сет, однажды первый диск приказал долго жить, второй выручил. Понятно, хуёвый бэкап, но самые критичные данные с этого диска бэкапятся у меня прям в S3 Selectel, там около 100 гигов. Выходит около 200р в месяц за S3 — чашка кофея. Бэкапится всё так же через
Проверка подключения дисков по USB проверяется через сервис, если диск отвалился или по какой-то причине отмонтировался — оно пытается его обратно примонтировать. Если не получилось — пиздит в телегу. Но обычно в 100% случаев таких проблем не возникало.
Какие контейнеры я гоняю
1. Seafile (пришел на замену пиздострадальному nexcloud).
2. Jellyfin (медиа сервер, DLNA и т.п. мультики смотрю).
3. Uptime Kuma (мониторит мои серваки в проде, LF, боты и т.п.).
4. Syncthing (бекапятся десктопные машины, с которых тебе пишу посты).
5. QBittorrent (качалка контента для Jellyfin).
6. Grafana + Prometheus (мониторинг домашние и прод инстансы).
На этом задачи малины заканчиваются.
По ресурсам там прям минимальное поджиралово — 2 гига оперативы занято, проц
В планах — сделать нормальный бэкап Seafile, накрутить Samba (хуй знает зачем, опять же хватает Seafile).
Смотрел еще в сторону локального
Короче обычная рутина, ничего сверх естественного.
🛠 #selfhosting #hardware
—
✅ @bashdays / @linuxfactory / @blog
Да всё просто — не proxmox!
На ней у меня Ubuntu 24.10 под ARM (без десктопа, чисто серверная версия), ну и тот самый dockge в котором я запускаю контейнеры.
ㅤ
К этой малине у меня подключено 2 внешних диска WD RED (2x2TB) по USB3.
Программный зеркальный рейд я ебал на таком создавать, поэтому второй диск синкает через
rclone всё что лежит на первом.Достаточно удачный сет, однажды первый диск приказал долго жить, второй выручил. Понятно, хуёвый бэкап, но самые критичные данные с этого диска бэкапятся у меня прям в S3 Selectel, там около 100 гигов. Выходит около 200р в месяц за S3 — чашка кофея. Бэкапится всё так же через
rclone.Проверка подключения дисков по USB проверяется через сервис, если диск отвалился или по какой-то причине отмонтировался — оно пытается его обратно примонтировать. Если не получилось — пиздит в телегу. Но обычно в 100% случаев таких проблем не возникало.
Какие контейнеры я гоняю
1. Seafile (пришел на замену пиздострадальному nexcloud).
2. Jellyfin (медиа сервер, DLNA и т.п. мультики смотрю).
3. Uptime Kuma (мониторит мои серваки в проде, LF, боты и т.п.).
4. Syncthing (бекапятся десктопные машины, с которых тебе пишу посты).
5. QBittorrent (качалка контента для Jellyfin).
6. Grafana + Prometheus (мониторинг домашние и прод инстансы).
И да я собрал еще один сетап, прям на нормальной матери и там поднял proxmox, в нем кластер куба, опять же для уроков для LF, так что скоро будет интенсив по кубику. По этому сетапу напишу отдельно.
На этом задачи малины заканчиваются.
По ресурсам там прям минимальное поджиралово — 2 гига оперативы занято, проц
0.14 0.28 0.22. По температурам и т.п. был пост выше. При использовании Jellyfin само собой нагрузки растут, но не критично.В планах — сделать нормальный бэкап Seafile, накрутить Samba (хуй знает зачем, опять же хватает Seafile).
Жду еще NAS из китая (чисто коробка, диски отдельно у меня валяются по 4TB), буду на него фотки бэкапить, чет их пиздец за 500 гигабайт перевалило, а в S3 лить в падлу.
Смотрел еще в сторону локального
minIO, но я ебал, чем больше технологий, тем больше ебли и точек отказа. Всегда стремись упрощать!Короче обычная рутина, ничего сверх естественного.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Всё же меня заковыряла жизнь без proxmox, мне блядь лабы писать для LF, а я сапожник без сапог.
ㅤ
Короче сходил в гараж, нашел свой старый мини писюк, на котором лет 100 назад крутил публичный майнкрафт сервак и прочие непотребности.
Конфиг внутри оказался такой: материнка GA-B75N (1155), 16 рама, проц g2020, винтов нет.
Апгрейдим. Заказал на озоне проц i7-3770 под сокет 1155, памяти не нашел подходящей, 2 слота всего, максимум 8+8, остальная не подходит, судя по спекам к мамке. Похуй, оставил та что была изначально.
Интересно что на озоне и вб продают такие беушные штуки, как-то даже кайфанул что не нужно с долбаёбами на авито общаться.
Ну да ладно, 16ти хватит за глаза, разъебашить куб и показать ребятам чё к чему.
Вспомнил молодость, поковырялся в железках, термопаста, болтики, кисточки от пыли. Весь изрезался, изматерился, извозился, ёбом токнуло, но победил. Накатил proxmox, провел post install. Всё взлетело прям без подводных камней. И это заебись!
Ну чё могу сказать, этому сетапу я теперь на 100500% доверяю, нежели покупки китайской коробочки которая мне сделала головняк. Этот мини пека у меня отработал 4-5 лет в нонстопе 24/7. Были в нем рейды и т.п. ни разу не подвел.
Короче посмотрим. Пока и по температуре заебись и по ресурсам. Гонять 24/7 я его не буду, оно мне не нужно, есть куча малин в обиходе. Использоваться будет как лаба, включил/выключил.
Минусы — на этой матери не работает Wake up on lan, победить не получилось, но опять же не критично. Крон и умная розетка решает это проблему если уж надо.
Кстати по китайской коробочке — припарировал как только можно, ничего не помогло, уходит в защиту и похуй. Всё прозвонил, греется поебота на питании, ну как и предполагалось.
Вытащил из нее винт на терабайт, закинул его во внешний кейс и прицепил к малине (пока сам не понял — а нахуя?).
Добавить больше нечего, просто держу в курсе событий, этакий воскресный ВЛОГ получился. Тут больше пользы наверное что на озоне и вб можно беуху заказать для старых железяк.
🛠 #selfhosting #hardware
—
✅ @bashdays / @linuxfactory / @blog
ㅤ
Короче сходил в гараж, нашел свой старый мини писюк, на котором лет 100 назад крутил публичный майнкрафт сервак и прочие непотребности.
Конфиг внутри оказался такой: материнка GA-B75N (1155), 16 рама, проц g2020, винтов нет.
Проц конечно говнище то еще.
Апгрейдим. Заказал на озоне проц i7-3770 под сокет 1155, памяти не нашел подходящей, 2 слота всего, максимум 8+8, остальная не подходит, судя по спекам к мамке. Похуй, оставил та что была изначально.
Интересно что на озоне и вб продают такие беушные штуки, как-то даже кайфанул что не нужно с долбаёбами на авито общаться.
И знатно охуел что g2020 стоит 300 рублей )) А покупал я в то время его как крыло от самолёта.
Ну да ладно, 16ти хватит за глаза, разъебашить куб и показать ребятам чё к чему.
Вспомнил молодость, поковырялся в железках, термопаста, болтики, кисточки от пыли. Весь изрезался, изматерился, извозился, ёбом токнуло, но победил. Накатил proxmox, провел post install. Всё взлетело прям без подводных камней. И это заебись!
Ну чё могу сказать, этому сетапу я теперь на 100500% доверяю, нежели покупки китайской коробочки которая мне сделала головняк. Этот мини пека у меня отработал 4-5 лет в нонстопе 24/7. Были в нем рейды и т.п. ни разу не подвел.
Да, еще прикупил запасной блок питания TFX 350W, на всякий случай.
Короче посмотрим. Пока и по температуре заебись и по ресурсам. Гонять 24/7 я его не буду, оно мне не нужно, есть куча малин в обиходе. Использоваться будет как лаба, включил/выключил.
Минусы — на этой матери не работает Wake up on lan, победить не получилось, но опять же не критично. Крон и умная розетка решает это проблему если уж надо.
Кстати по китайской коробочке — припарировал как только можно, ничего не помогло, уходит в защиту и похуй. Всё прозвонил, греется поебота на питании, ну как и предполагалось.
Вытащил из нее винт на терабайт, закинул его во внешний кейс и прицепил к малине (пока сам не понял — а нахуя?).
Добавить больше нечего, просто держу в курсе событий, этакий воскресный ВЛОГ получился. Тут больше пользы наверное что на озоне и вб можно беуху заказать для старых железяк.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю заниматься селф-хостингом, на этот раз меня заебала температура малинки, хоть там и стоит куллер, его явно маловато. Средняя температура без нагрузки 58-60 градусов. Ну хуйня же!
Пошел гуглить и нагуглил отличнейшее решение с внешней вертушкой для роутеров и приставок. Да блядь, чего только не придумают.
Суть устройства такова: внешняя вертушка выступает в роле подставки, на резиновых ножках, да еще и с возможностью регулировать скорость.
ㅤ
Заказал здесь на озоне, пришло, малинка идеально встала с учетом железного корпуса. Тут еще момент, что снизу корпуса есть много отверстий и получается поток воздуха проходит насквозь.
Что по шуму. Да нет его, даже на максимальных оборотах, по крайней мере я ничего не слышу. Поэтому регулировку скорости я отключил, кабель на коннекторах, туда-сюда.
Еще резиновые ножки не гасят вибрации, пришлось вырезать дополнительную подложку из какого-то материала, который нашел в коробке из под видеокарты.
По результатам: температура снизилась до стабильных 48-50 градусов, при нагрузке включается штатный вентилятор и в пике греется до 53-55.
Вот такие пироги!
🛠 #selfhosting #hardware
—
✅ @bashdays / @linuxfactory / @blog
Пошел гуглить и нагуглил отличнейшее решение с внешней вертушкой для роутеров и приставок. Да блядь, чего только не придумают.
Суть устройства такова: внешняя вертушка выступает в роле подставки, на резиновых ножках, да еще и с возможностью регулировать скорость.
ㅤ
Заказал здесь на озоне, пришло, малинка идеально встала с учетом железного корпуса. Тут еще момент, что снизу корпуса есть много отверстий и получается поток воздуха проходит насквозь.
Что по шуму. Да нет его, даже на максимальных оборотах, по крайней мере я ничего не слышу. Поэтому регулировку скорости я отключил, кабель на коннекторах, туда-сюда.
Еще резиновые ножки не гасят вибрации, пришлось вырезать дополнительную подложку из какого-то материала, который нашел в коробке из под видеокарты.
По результатам: температура снизилась до стабильных 48-50 градусов, при нагрузке включается штатный вентилятор и в пике греется до 53-55.
Кстати эта внешняя вертушка запитывается прям от малины по USB.
Вот такие пироги!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Поднимаем свой «Хероку»
Наверняка все знают Heroku. Если кратко, эта херотень позволяет запускать приложения. Будь то веб-приложения, докер-контейнеры и т.п. без необходимости настраивать и поддерживать серверную инфраструктуру.
ㅤ
Короче что-то вроде среды для запуска всего и вся с возможностью быстрого управления и масштабирования. С мордочкой и кнопочками, как ты любишь.
Принцип работы простой:
1. Пушишь свой код в git
2. Условный «Heroku» это видит через webhook
3. Забирает код и собирает
4. Запускает в изолированном контейнере
5. Маршрутизирует трафик в контейнер
Чтобы развернуть всё это дело на своих серверах и никому не платить, можно воспользоваться двумя более-менее хорошими opensource проектами.
➡️ Dokploy и Coolify
Как всё это дело ставить и запускать, рассказывать не буду. Вся документация есть в официальных гит репозиториях.
Но я предпочитаю всё же использовать k3s либо docker compose, потому что Dekploy и Coolify ты вряд ли встретишь в компаниях, они более нишевые.
Подойдут для самохостинга и для тех, кому насрать на девопс. А вот если тебе не насрать на девопс, старайся хоть раз в день работать с кубом, манифестами и контейнерами и будешь всегда в рынке.
Короче интересные проекты я тебе принес, а дальше тебе самому решать, как этой информацией правильно воспользоваться. Изучай.
🛠 #selfhosting
—
✅ @bashdays / @linuxfactory / @blog
Наверняка все знают Heroku. Если кратко, эта херотень позволяет запускать приложения. Будь то веб-приложения, докер-контейнеры и т.п. без необходимости настраивать и поддерживать серверную инфраструктуру.
ㅤ
Короче что-то вроде среды для запуска всего и вся с возможностью быстрого управления и масштабирования. С мордочкой и кнопочками, как ты любишь.
У меня раньше телеграм боты в heroku успешно крутились, потом эти письки закрыли бесплатный план и пришлось мигрировать.
Принцип работы простой:
1. Пушишь свой код в git
2. Условный «Heroku» это видит через webhook
3. Забирает код и собирает
4. Запускает в изолированном контейнере
5. Маршрутизирует трафик в контейнер
Чтобы развернуть всё это дело на своих серверах и никому не платить, можно воспользоваться двумя более-менее хорошими opensource проектами.
Coolify более раскручен, но по сути те же яйца, только с боку.
Как всё это дело ставить и запускать, рассказывать не буду. Вся документация есть в официальных гит репозиториях.
Да, можно поднять в докере и не ебать мозги.
Но я предпочитаю всё же использовать k3s либо docker compose, потому что Dekploy и Coolify ты вряд ли встретишь в компаниях, они более нишевые.
Подойдут для самохостинга и для тех, кому насрать на девопс. А вот если тебе не насрать на девопс, старайся хоть раз в день работать с кубом, манифестами и контейнерами и будешь всегда в рынке.
По себе знаю, если я сделаю паузу в кубе хотя бы на недельку-другую, всё, пезда, начинается деградация, а это уже звоночек.
Короче интересные проекты я тебе принес, а дальше тебе самому решать, как этой информацией правильно воспользоваться. Изучай.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 51
Я тут порой пишу для одного интернет журнала (не для хабра, в пизду его). Ну и встал вопрос, как передавать материалы заказчику, чтобы не в голом markdown, а уже сверстано, стили, картинки и т.п.
ㅤ
Вариантов было много, hugo, mkdocs и т.п. По итогу выбрал Writefreely, оно отлично подошло. Оупенсорц, написан на GO, ставится на свои сервера, работает шустро.
Аналог Телеграфа и Телетайпа, но на стероидах. Можно делать разные блоги под разные задачи. Есть черновики, доступ по паролю и т.п.
Короче доволен, базовые потребности закрыты, поднимается так:
Способ не официальный. Потому что если делать, как в официальной документации, то как обычно — нихуя не работает из коробки. Классика!
Следующая проблема — картинки по ctrl+c/ctrl+v в writefreely не вставляются. Их нужно предварительно закончать и потом через ссылку вставлять. Дела…
По FTP я ебал это делать, поэтому был поднят Picsur.
Отличнейшее решение для любителей self-hosting. Аналог Imgur, но свой!
Запускается так:
Тем более эта хератень отлично дружит со скриншотилкой ShareX которую я совсем недавно начал использовать.
Рекомендую, там ебать комбайн под все задачи, хранилища и хотелки.
Как работает связка:
Делаешь скриншот, оно автоматически заливается в Picsur и в буфере обмена у тебя уже готовая ссылка для вставки в markdown. Удобно просто пиздец!
Такие дела. Вот и еще один полезный сервис в моей домашней лаборатории.
Потыкай, глядишь найдешь применение в своих задачках.
🛠 #services #selfhosting #workflow
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Вариантов было много, hugo, mkdocs и т.п. По итогу выбрал Writefreely, оно отлично подошло. Оупенсорц, написан на GO, ставится на свои сервера, работает шустро.
Аналог Телеграфа и Телетайпа, но на стероидах. Можно делать разные блоги под разные задачи. Есть черновики, доступ по паролю и т.п.
Короче доволен, базовые потребности закрыты, поднимается так:
services:
write-freely:
image: nephatrine/write-freely:latest
container_name: write-freely
environment:
TZ: America/New_York
PUID: 1000
PGID: 1000
ports:
- "127.0.0.1:8085:8080/tcp"
volumes:
- ./write-freely:/mnt/config
Способ не официальный. Потому что если делать, как в официальной документации, то как обычно — нихуя не работает из коробки. Классика!
Следующая проблема — картинки по ctrl+c/ctrl+v в writefreely не вставляются. Их нужно предварительно закончать и потом через ссылку вставлять. Дела…
По FTP я ебал это делать, поэтому был поднят Picsur.
Отличнейшее решение для любителей self-hosting. Аналог Imgur, но свой!
Запускается так:
services:
picsur:
image: ghcr.io/caramelfur/picsur:latest
container_name: picsur
ports:
- '127.0.0.1:8080:8080'
environment:
PICSUR_DB_HOST: picsur_postgres
volumes:
- ./storage:/picsur/storage
restart: unless-stopped
picsur_postgres:
image: postgres:17-alpine
container_name: picsur_postgres
environment:
POSTGRES_DB: picsur
POSTGRES_PASSWORD: picsur
POSTGRES_USER: picsur
restart: unless-stopped
volumes:
- picsur-data:/var/lib/postgresql/data
volumes:
picsur-data:
Тем более эта хератень отлично дружит со скриншотилкой ShareX которую я совсем недавно начал использовать.
Рекомендую, там ебать комбайн под все задачи, хранилища и хотелки.
В настройках Picsur генеришь json и двойным кликом интегрируешь с ShareX, ничего руками прописывать не нужно.
Как работает связка:
Делаешь скриншот, оно автоматически заливается в Picsur и в буфере обмена у тебя уже готовая ссылка для вставки в markdown. Удобно просто пиздец!
Такие дела. Вот и еще один полезный сервис в моей домашней лаборатории.
Потыкай, глядишь найдешь применение в своих задачках.
Кстати нашел ShareX под Linux, если кому надо.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
6 72
This media is not supported in your browser
VIEW IN TELEGRAM
Ха! Сегодня будем тыкать палкой «Крокодила».
ㅤ
Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.
Работает по принципу «отправь, введи код, получипо ебалу».
Установка под всё:
Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.
На Linux сервере запускаю:
Получаем:
Так, идем на Windows машину и запускаем:
То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:
А на Linux машине:
Вуаля! Проверяем файл на винде, всё прекрасно передалось!
«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.
Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.
Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.
🛠 #utilites #tools #selfhosting
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.
Работает по принципу «отправь, введи код, получи
Установка под всё:
curl https://getcroc.schollz.com | bash
brew install croc
scoop install croc
choco install croc
winget install schollz.croc
Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.
На Linux сервере запускаю:
cd /tmp && echo "Hello BashDays" >> bashdays.txt
croc send bashdays.txt
Получаем:
Sending 'bashdays.txt' (15 B)
Code is: 2811-spray-cabinet
On the other computer run:
(For Windows)
croc 2811-spray-cabinet
(For Linux/macOS)
CROC_SECRET="2811-spray-cabinet" croc
Так, идем на Windows машину и запускаем:
croc 2811-spray-cabinet
То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:
C:\Users\user>croc 2811-spray-cabinet
Accept 'bashdays.txt' (15 B)? (Y/n) Y
Receiving (<-92.52.131.227:10350)
bashdays.txt 100% |████████████████████| (15/15 B, 73 B/s)
А на Linux машине:
Sending (->92.52.131.227:9015)
bashdays.txt 100% |████████████████████| (15/15 B, 41 kB/s)
Вуаля! Проверяем файл на винде, всё прекрасно передалось!
«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.
Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.
Да, есть прикол, что при получении ты вводишь «секретный код» и он отпечатается в истории команд, это хуйня. Поэтому просто запускаем croc и оно в интерактиве запросит код, вводишь код и дело в шляпе. В историю команд ничего не попало.
А если автокоды тебе в хуй не уперлись, можешь через ключик -code впендюрить свой код доступа. Всё гибко, покури репку и описание, там прям можно на многое повлиять, вплоть до создания своего relay.
Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.
На Android кстати тоже порт есть в F-Droid.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 67
А вот это нам надо!
TUI админка для Proxmox. И да, ее можно поставить себе локально и цепануть к ней все твои Proxmox кластера, которые находятся где-то в сети.
ㅤ
Называется всё это добро — pvetui
Работает под всеми операционками, так как реализован на GO.
А зачем? Ну я заебался каждый раз лезть в браузер, чтобы сделать какие-то рутинные действия, да и айпишники я никогда не помню чтобы к ним по ssh подключиться. А через
Установка и запуск:
Под другие ОС:
При первом запуске утилита попросит сконфигурировать её. Жмем пару раз Enter, открывается редактор конфига, заполняем необходимые поля.
Я заполнил URL, логин и пароль от панели Proxmox. Чтобы оно не орало, нужно стереть данные в полях API, тогда оно даст сохранить конфигурационный файл.
Инициализация, закончена, видим сообщение:
Запускаем морду и смотрим что получилось.
Эту штуку можно повесить на alias либо прописать в PATH, чтобы полные пути до бинарника каждый раз не писать.
А получилось у нас прям заебись. Теперь я нажимаю ALT+2 и попадаю в список всех своих виртуальных машин. Стрелочками выбираю нужную мне машину и нажимаю букву «m», открывается менюшка.
В менюшке можно сразу провалиться в машину по SSH, что мне и нужно. Но это еще не всё, там и ребуты и миграции, даже VNC есть (нужен xdg). Короче базовый минимум поадминить присутствует.
Да, если нажать «ESC» то откроется еще одна глобальная менюшка для конфигурации самой утилиты, выбор профилей, управление плагинами и т.п.
Короче явки-ссылки я тебе дал, дальше сам смотри, всё там гибко конфигурируется и настраивается. И тем более TUI интерфейсы сейчас прям в трендах.
Хорошей тебе рабочей недели! Не болей!
🛠 #selfhosting #linux #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
TUI админка для Proxmox. И да, ее можно поставить себе локально и цепануть к ней все твои Proxmox кластера, которые находятся где-то в сети.
ㅤ
Называется всё это добро — pvetui
Работает под всеми операционками, так как реализован на GO.
А зачем? Ну я заебался каждый раз лезть в браузер, чтобы сделать какие-то рутинные действия, да и айпишники я никогда не помню чтобы к ним по ssh подключиться. А через
pvetui такое можно провернуть в два счета.Ты скажешь — дак сделай алиасы для айпишников и цепляйся к нужным виртуалкам. Справедливо, но мне лень. Тем более виртуалки у меня постоянно создаются, удаляеются и я ебал каждый раз алиасы делать.
Установка и запуск:
go install github.com/devnullvoid/pvetui/cmd/pvetui@latest
/home/user/go/bin/pvetui
Под другие ОС:
yay -S pvetui-bin
yay -S pvetui-git
brew install --cask devnullvoid/pvetui/pvetui
scoop bucket add pvetui https://github.com/devnullvoid/scoop-pvetui
scoop install pvetui
# либо из исходников
git clone https://github.com/devnullvoid/pvetui.git
cd pvetui
make install
При первом запуске утилита попросит сконфигурировать её. Жмем пару раз Enter, открывается редактор конфига, заполняем необходимые поля.
Я заполнил URL, логин и пароль от панели Proxmox. Чтобы оно не орало, нужно стереть данные в полях API, тогда оно даст сохранить конфигурационный файл.
Но опять же если у тебя API ключ, делаешь под своё конфигурацию.
Инициализация, закончена, видим сообщение:
✅ Configuration is ready!
🔄 Please re-run 'pvetui' to start the application with your new configuration.
🚪 Exiting.
Запускаем морду и смотрим что получилось.
/home/user/go/bin/pvetui
Эту штуку можно повесить на alias либо прописать в PATH, чтобы полные пути до бинарника каждый раз не писать.
А получилось у нас прям заебись. Теперь я нажимаю ALT+2 и попадаю в список всех своих виртуальных машин. Стрелочками выбираю нужную мне машину и нажимаю букву «m», открывается менюшка.
В менюшке можно сразу провалиться в машину по SSH, что мне и нужно. Но это еще не всё, там и ребуты и миграции, даже VNC есть (нужен xdg). Короче базовый минимум поадминить присутствует.
Да, если нажать «ESC» то откроется еще одна глобальная менюшка для конфигурации самой утилиты, выбор профилей, управление плагинами и т.п.
Короче явки-ссылки я тебе дал, дальше сам смотри, всё там гибко конфигурируется и настраивается. И тем более TUI интерфейсы сейчас прям в трендах.
Хорошей тебе рабочей недели! Не болей!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
7 69
Как я обновил Proxmox и остался жив
Здрасти, приехали. Сегодня будем обновлять proxmox 8 на 9.1 Оно в принципе и необязательно, но очень хотелось потыкать новую фичу с OCI.
А нахуя? Чтобы проще запускать приложения, которые уже существуют в виде Docker-образов. Теперь в LXC не нужно поднимать отдельно докер демон, все работает из коробки.
Ладно, отвлеклись. Про OCI отдельно распишу. Сегодня обновляем всю эту трихомудию до нужной версии.
Бекапить я ничего не буду, бекапы для слабаков. Но ты меня не слушай, делай правильно и подстилай соломку.
По классике сюда всё не влезло, поэтому гоу в блог читать продолжение 👇
🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️
➡️ https://two.su/4ui2c
🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️
🛠 #proxmox #devops #selfhosting
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Здрасти, приехали. Сегодня будем обновлять proxmox 8 на 9.1 Оно в принципе и необязательно, но очень хотелось потыкать новую фичу с OCI.
OCI это способ запускать контейнеры из Docker-образов. То есть proxmox теперь умеет скачивать Docker-образы (OCI-images) и превращать их в LXC-контейнеры.
А нахуя? Чтобы проще запускать приложения, которые уже существуют в виде Docker-образов. Теперь в LXC не нужно поднимать отдельно докер демон, все работает из коробки.
Ладно, отвлеклись. Про OCI отдельно распишу. Сегодня обновляем всю эту трихомудию до нужной версии.
Бекапить я ничего не буду, бекапы для слабаков. Но ты меня не слушай, делай правильно и подстилай соломку.
Даже если у меня всё пойдет по пиздец, это отличный кейс, чтобы отдебажить проблему и решить её.
По классике сюда всё не влезло, поэтому гоу в блог читать продолжение 👇
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Bashdays
Обновляем Proxmox 8 до Proxmox 9 (OCI)
Подробная инструкция по переходу на новую ветку Debian Trixie в Proxmox. Фиксим репы, обновляем ключи, прогоняем pve8to9 и устанавливаем всё, что предлагает система. Даю комментарии по каждому этапу, чтобы апдейт не превратился в ад.
11 41
В Proxmox 9.1 завезли OCI. В предыдущем посте про обновление с 8ки на 9ку я это уже упоминал, поэтому повторяться не буду.
Сегодня посмотрим как OCI работает на практике.
ㅤ
OCI это не какая-то отдельная сущность, это тот же самый LXC контейнер в котором будет запущен нужный тебе контейнер.
Тут важное замечание — тебе не нужно устанавливать руками docker демона в LXC и только затем запускать контейнер. OCI все сделает само. Это не какой-то встроенный docker или k8s. Всё так или иначе работает под управлением LXC.
К примеру возьмем заезженный образ nginx, который валяется в dockerhub:
Заходим в Proxmox и идем в раздел с шаблонами, там будет кнопка
➡️ ЧИТАТЬ ПРОДОЛЖЕНИЕ
🛠 #proxmox #devops #selfhosting
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
➡️ Как я обновлял Proxmox и остался жив
Сегодня посмотрим как OCI работает на практике.
ㅤ
OCI это не какая-то отдельная сущность, это тот же самый LXC контейнер в котором будет запущен нужный тебе контейнер.
Тут важное замечание — тебе не нужно устанавливать руками docker демона в LXC и только затем запускать контейнер. OCI все сделает само. Это не какой-то встроенный docker или k8s. Всё так или иначе работает под управлением LXC.
К примеру возьмем заезженный образ nginx, который валяется в dockerhub:
nginx:latest
Заходим в Proxmox и идем в раздел с шаблонами, там будет кнопка
Pull from OCI Registry.—
Please open Telegram to view this post
VIEW IN TELEGRAM
6 23
Как расшифровать бекапы TrueNAS
У меня в домашней лаборатории self-hosted торчит TrueNas и по шедуллеру заливает бекапы критичных файлов по протоколу webdav в облако.
ㅤ
В облаке каждый файл имеет расширение .bin, если скачать к себе на машину такой файл, то внутри будет мусор.
И тут возник логичный вопрос, если мой TrueNas пойдет по пизде, как мне забрать из бекапа файлы и расшифровать их без участия TrueNas?
Оказалось все довольно просто. Под капотом TrueNas установлен rclone, который и выполняет задачу резервирования данных. Получается имея на своей локальной машине rclone теоретически можно забрать шифрованные бекапы и легко их расшифровать.
Давай попробуем реализовать задуманное.
Бекапы шифруются с помощью
Для начала расшифруем один файл, посмотрим как всё проёдет.
Зашифрованный бекап файла я скачал к себе на машину и положил в папку
Если файл открыть на просмотр, увидим такое:
Пишем конфиг
Этот конфиг сгенерился автоматически, после запуска
Чтобы получить зашифрованный пароль из командной строки, воспользуйся командой:
Потом эти данные можешь подставить в конфиг.
Проверяем:
Отлично! Что-то сработало. Давай наконец-то расшифруем этот файл:
Всё, задача решена, в папке
Аналогично поступаешь и с другими файлами. Тут суть закинуть весь зашифрованный бекап в папку
По итогу имеем удобный и практичный способ восстанавливать такие штуки без участия TrueNas.
А так-же можно проверять такие бекапы после заливки их в облако, чтобы точно быть уверенным, что бекап точно рабочий.
Концепт проверки: автоматически забрать несколько контрольных файлов из бекапа, расшифровать, сверить внутренности с шаблоном и при проблемах — плюнуть в графану или в телегу алертом.
На этом всё. Хороших тебе выходных!
🛠 #selfhosting #backup #crypt
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
У меня в домашней лаборатории self-hosted торчит TrueNas и по шедуллеру заливает бекапы критичных файлов по протоколу webdav в облако.
ㅤ
В облаке каждый файл имеет расширение .bin, если скачать к себе на машину такой файл, то внутри будет мусор.
И тут возник логичный вопрос, если мой TrueNas пойдет по пизде, как мне забрать из бекапа файлы и расшифровать их без участия TrueNas?
Оказалось все довольно просто. Под капотом TrueNas установлен rclone, который и выполняет задачу резервирования данных. Получается имея на своей локальной машине rclone теоретически можно забрать шифрованные бекапы и легко их расшифровать.
Давай попробуем реализовать задуманное.
Бекапы шифруются с помощью
Encryption Password и Encryption Salt, эти параметры задаются в TrueNas, соответственно нам понадобятся эти данные.Для начала расшифруем один файл, посмотрим как всё проёдет.
Зашифрованный бекап файла я скачал к себе на машину и положил в папку
/tmp/encrypted/file.jpg.binЕсли файл открыть на просмотр, увидим такое:
RCLONE......hx^..]]NN..
..=._.S...4:..b...P...3`.^u0yO Ҭ..)..fkMP...K..
Пишем конфиг
~/.config/rclone.conf:[cryptbackup]
type = crypt
remote = /tmp/encrypted
filename_encryption = off
directory_name_encryption = false
password = ZK6U8CZRqP-vT5fK0HwjO_Q
password2 = -GGulJpRclHETHVhp1MMs
Этот конфиг сгенерился автоматически, после запуска
rclone config и заполнения данных.Чтобы получить зашифрованный пароль из командной строки, воспользуйся командой:
rclone obscure "<password>"
rclone obscure "<salt>"
Потом эти данные можешь подставить в конфиг.
Если в TrueNas включено шифрование имен, то в параметре filename_encryption нужно прописать standard. Не проебись, на конце буква «d».
Проверяем:
rclone ls cryptbackup:
1974875 file.jpg
Отлично! Что-то сработало. Давай наконец-то расшифруем этот файл:
rclone copy cryptbackup: /tmp/decrypted
Всё, задача решена, в папке
/tmp/decrypted лежит расшифрованная картинка и прекрасно открывается.Аналогично поступаешь и с другими файлами. Тут суть закинуть весь зашифрованный бекап в папку
/tmp/encrypted и одной командой copy все прекрасно расшифруется в /tmp/decrypted сохраняя структуру папок.По итогу имеем удобный и практичный способ восстанавливать такие штуки без участия TrueNas.
А так-же можно проверять такие бекапы после заливки их в облако, чтобы точно быть уверенным, что бекап точно рабочий.
Концепт проверки: автоматически забрать несколько контрольных файлов из бекапа, расшифровать, сверить внутренности с шаблоном и при проблемах — плюнуть в графану или в телегу алертом.
На этом всё. Хороших тебе выходных!
🔥 Да, забыл, до 01.01.26 действует промокод FACTORY_26 (1000р) на первый месяц в Linux Factory.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 40
Сегодня будем хакать Proxmox и создавать работоспособный кластер из 2х нод.
ㅤ
Ты скажешь - фии… Легкотня! Да, добавить ноду в кластер легко, но если у тебя всего 2 ноды в кластере, ни о каком кворуме речь не идет. Кворум предполагает наличие 3х нод. Либо Q-Device сервера.
Если выключить одну из нод, то например при попытке сделать бекапы ты получишь ошибку — твой кластер пошел по пизде, сначала пофикси эту проблему и лишь потом я сделаю бекапы.
Да, если кластер развален, то файловая система переходит в режим R/O. И хуй ты че с этим сделаешь.
Прям вызов! И че делать? Очевидно вернуть ноду в кластер и произвести некие манипуляции пока кластер не развален.
Мыж с тобой не пальцем деланные, давайнаебем хакнем эту поеботу. И подтасуем результаты кворума в нашу пользу.
Сразу скажу — так делать нельзя!
Включаем ноду, чтобы кластер восстановился. Заходим по ssh на proxmox ноду, которая включена 24/7 (у меня она называется
В файле видим описания кластера:
Видим
И ниже в блоке
Чтобы проверить, запускаем:
И видим что нода
Поздравляю, теперь ты можешь прокачать свою домашнюю лабораторию и выключать ненужные узлы кластера как тебе вздумается.
Развлекайся!
🛠 #selfhosting #proxmox #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Ты скажешь - фии… Легкотня! Да, добавить ноду в кластер легко, но если у тебя всего 2 ноды в кластере, ни о каком кворуме речь не идет. Кворум предполагает наличие 3х нод. Либо Q-Device сервера.
Если выключить одну из нод, то например при попытке сделать бекапы ты получишь ошибку — твой кластер пошел по пизде, сначала пофикси эту проблему и лишь потом я сделаю бекапы.
Да, если кластер развален, то файловая система переходит в режим R/O. И хуй ты че с этим сделаешь.
Если кластер потерял кворум, /etc/pve автоматически монтируется только для чтения, и никакие chmod/chown/chattr не помогут, т.к. это не обычный ext4/xfs.
Прям вызов! И че делать? Очевидно вернуть ноду в кластер и произвести некие манипуляции пока кластер не развален.
Мыж с тобой не пальцем деланные, давай
Сразу скажу — так делать нельзя!
Включаем ноду, чтобы кластер восстановился. Заходим по ssh на proxmox ноду, которая включена 24/7 (у меня она называется
pvx). vim /etc/pve/corosync.conf
Да, предварительно не забудь забекапить все файлы, в которые вносишь изменения. Вообще никогда не забывай этого делать, особенно на проде. В будущем это спасет тебе жизнь и сохранит кучу нервных клеток.
В файле видим описания кластера:
nodelist {
node {
name: pvx
nodeid: 1
quorum_votes: 1
ring0_addr: 192.168.10.60
}
node {
name: wenom
nodeid: 2
quorum_votes: 1
ring0_addr: 192.168.10.55
}
}Видим
quorum_votes. Это и есть ключевая опция для хака. Для pvx ноды я меняю 1 на 2. То есть искусственно присваиваю два голоса без кворума.И ниже в блоке
totem меняем параметр config_version: c 2 на 3. Все! Ничего перезагружать не нужно.Чтобы проверить, запускаем:
pvecm status
Membership information
----------------------
Nodeid Votes Name
0x00000001 2 192.168.10.60 (local)
0x00000002 1 192.168.10.55
И видим что нода
pvx получила 2 голоса. Теперь если выключить вторую ноду. Файловая система не перейдет в режим R/O и всё будет работать, как и раньше с одной нодой.Поздравляю, теперь ты можешь прокачать свою домашнюю лабораторию и выключать ненужные узлы кластера как тебе вздумается.
Развлекайся!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11 55
Синхронизируем настройки Pi-Hole между инстансами.
ㅤ
У меня в сети живет несколько нод с pi-hole, которые раскиданы по разным устройствам (proxmox, raspberry pi и т.п.). И сразу встала необходимость, чтобы все ноды с pi-hole имели одинаковые настройки.
Стратегия такая, одна нода будет master, где производятся все основное настройки, затем все эти настройки раскатываются на другие ноды (slave).
Раньше такой кейс разруливали с помощью Orbital Sync, Nebula Sync и т.п. Но одно сдохло, другое работает через хуй-пизда-копыто. Короче нужно рабочее решение.
Пишем свой велосипед
В
Сохраняем, чмодим, кидаем в крон (а лучше в systemd с таймерами):
Не забываем прокинуть ssh ключи с master на slave, чтобы скрипт не уперся рогом в логин и пароль.
Вроде мелочь, а полезная, да еще и на bash. Хороших тебе предстоящих выходных и береги себя!
🛠 #bash #linux #devops #selfhosting
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
У меня в сети живет несколько нод с pi-hole, которые раскиданы по разным устройствам (proxmox, raspberry pi и т.п.). И сразу встала необходимость, чтобы все ноды с pi-hole имели одинаковые настройки.
Pi-hole — это сетевой DNS‑фильтр и блокировщик рекламы с открытым исходным кодом. Он работает как свой DNS‑сервер, перехватывает DNS‑запросы от устройств в локальной сети и блокирует домены из списков рекламы, трекеров и вредоносных сайтов, возвращая «пустой» ответ вместо IP‑адреса рекламного ресурса.
Стратегия такая, одна нода будет master, где производятся все основное настройки, затем все эти настройки раскатываются на другие ноды (slave).
Раньше такой кейс разруливали с помощью Orbital Sync, Nebula Sync и т.п. Но одно сдохло, другое работает через хуй-пизда-копыто. Короче нужно рабочее решение.
Пишем свой велосипед
#!/usr/bin/env bash
set -euo pipefail
PRIMARY_PIH_DIR="/etc/pihole"
SECONDARY_USER="root"
SECONDARY_PIH_DIR="/etc/pihole"
SECONDARY_HOSTS=(
"192.168.10.97"
"192.168.10.98"
"192.168.10.99"
)
RSYNC_EXCLUDES=(
"--exclude=pihole-FTL.db"
"--exclude=macvendor.db"
"--exclude=*.log"
)
echo "[pihole-sync] $(date): start"
for host in "${SECONDARY_HOSTS[@]}"; do
echo "[pihole-sync] ---- host ${host} ----"
rsync -az \
"${RSYNC_EXCLUDES[@]}" \
"${PRIMARY_PIH_DIR}/" \
"${SECONDARY_USER}@${host}:${SECONDARY_PIH_DIR}/"
echo "[pihole-sync] ${host}: restart dns"
ssh "${SECONDARY_USER}@${host}" "pihole restartdns >/dev/null 2>&1" || \
echo "[pihole-sync] ${host}: FAILED to restart dns"
done
echo "[pihole-sync] $(date): done"
В
SECONDARY_HOSTS забиваем айпишники slave инстансов, этакий массив. На этом настройка скрипта закончена. Весь лишний мусор вроде логов и статистики синхронизироваться не будет.Сохраняем, чмодим, кидаем в крон (а лучше в systemd с таймерами):
Про таймеры подробно писал тут и тут.
crontab -e
*/5 * * * * /usr/local/sbin/pihole-sync.sh >> /var/log/pihole-sync.log 2>&1
Не забываем прокинуть ssh ключи с master на slave, чтобы скрипт не уперся рогом в логин и пароль.
Вроде мелочь, а полезная, да еще и на bash. Хороших тебе предстоящих выходных и береги себя!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 30
Stop Using Pi-Hole – Technitium DNS Is Better
В комментах к посту про «ПИ-ДЫРКУ» ребята посоветовали присмотреться к Technitium DNS. Ну вот я и присмотрелся, прислушался к авторитетному мнению.
ㅤ
Ключевым фактором стало — кластеризация и синхронизация из коробки, без велосипедов на Bash скриптах. Да и по интерфейсу нет ебанутых новогодних ёлок и гирлянд.
Поднял я это у себя на 2х нодах в докерах, одну на малине, другую в proxmox, ну и на роутере прописал чтобы по DHCP раздавались DNSки в локальную сеть.
Поднимается элементарно:
Если нужны енвы или порты, расскоментируй строчки по потребностям, мне хватило минимальных вмешательств.
Затем заходим в морду:
Зоны добавляются в разделе Zones, после добавления зоны, создаешь «A» запись например для домена
Создаём кластер
Чтобы создать кластер, идем во вкладку Administration → Cluster. Создаем кластер, а на второй ноде в этом же разделе жмем кнопку Join Cluster. Заполняем очевидные поля, явки, пароли и радуемся синхронизации.
Теперь при добавлении новой зоны на первой ноде, эта зона улетит на вторую ноду. Главное не забыть выбрать Catalog Zone при добавлении зоны.
Никаких танцев с бубном. Ааа.. Есть танцы, возможно ты столкнешься с ошибкой, что 53 порт уже занят. Это нормально, фиксим:
Если у тебя какие-то другие резолверы стоят, то:
Собственно на этом всё. Базу я тебе показал, дальше сам. А всем кто привел меня к этому решению - спасибо и премного благодарен! Скрасил воскресный вечер не за кружкой бухла, а за полезным занятием.
Изучай!
🛠 #selfhosting #proxmox #devops
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
В комментах к посту про «ПИ-ДЫРКУ» ребята посоветовали присмотреться к Technitium DNS. Ну вот я и присмотрелся, прислушался к авторитетному мнению.
ㅤ
Ключевым фактором стало — кластеризация и синхронизация из коробки, без велосипедов на Bash скриптах. Да и по интерфейсу нет ебанутых новогодних ёлок и гирлянд.
Поднял я это у себя на 2х нодах в докерах, одну на малине, другую в proxmox, ну и на роутере прописал чтобы по DHCP раздавались DNSки в локальную сеть.
Поднимается элементарно:
services:
dns-server:
container_name: technitium-dns1
hostname: technitium-dns1
image: technitium/dns-server:latest
ports:
- 5380:5380/tcp # Web console (HTTP)
- 53:53/udp # DNS service
- 53:53/tcp # DNS service
- "53443:53443/tcp" # Web console (HTTPS)
# Optional ports - uncomment as needed:
# - "853:853/udp" # DNS-over-QUIC
# - "853:853/tcp" # DNS-over-TLS
# - "443:443/udp" # DNS-over-HTTPS (HTTP/3)
# - "443:443/tcp" # DNS-over-HTTPS (HTTP/1.1, HTTP/2)
# - "67:67/udp" # DHCP service
# environment:
# - DNS_SERVER_DOMAIN=dns.local
# - DNS_SERVER_FORWARDERS=10.1.149.10
# Production options:
# - DNS_SERVER_ADMIN_PASSWORD=your_secure_password
# - DNS_SERVER_PREFER_IPV6=false
# - DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks
volumes:
- technitium-dns-data:/etc/dns
restart: unless-stopped
sysctls:
- net.ipv4.ip_local_port_range=1024 65000
volumes:
technitium-dns-data:
driver: local
networks: {}
Если нужны енвы или порты, расскоментируй строчки по потребностям, мне хватило минимальных вмешательств.
Затем заходим в морду:
http://<IP>:5380 и конфигурируем по необходимости. Зоны добавляются в разделе Zones, после добавления зоны, создаешь «A» запись например для домена
nextcloud.local и прописываешь IP своего nginx proxy manager (далее NPM), ну а дальше в NPM разруливаешь на нужные IP адреса и порты.Создаём кластер
Чтобы создать кластер, идем во вкладку Administration → Cluster. Создаем кластер, а на второй ноде в этом же разделе жмем кнопку Join Cluster. Заполняем очевидные поля, явки, пароли и радуемся синхронизации.
Теперь при добавлении новой зоны на первой ноде, эта зона улетит на вторую ноду. Главное не забыть выбрать Catalog Zone при добавлении зоны.
Никаких танцев с бубном. Ааа.. Есть танцы, возможно ты столкнешься с ошибкой, что 53 порт уже занят. Это нормально, фиксим:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Если у тебя какие-то другие резолверы стоят, то:
sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq
sudo systemctl stop bind9
sudo systemctl disable bind9
Собственно на этом всё. Базу я тебе показал, дальше сам. А всем кто привел меня к этому решению - спасибо и премного благодарен! Скрасил воскресный вечер не за кружкой бухла, а за полезным занятием.
Изучай!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5 44