Всем привет, хочу поделиться своей хоумлабой и всем что я самохосчу в удобном формате compose файла, чтобы тем, кому лень собирать свой compose, воспользовались моим.
Я сам еще новичек, так что критика приветствуется.
И так начнем…
Железо:
- мини пк szbox z58
- ryzen 7 5800H
- 64gb ddr4
- SSD nvme 1tb - для proxmox и lxc/vm
- 2tb HDD toshiba - хранилище
64гб оперативы хорошо, но думаю 32/48 всем хватит, такое количество оперативы бывает полезно при перекидывании файлов на nas или immich/photoprism, но у меня все в icloud, так что мне и 48 хватило бы
- роутер xiaomi ax3000t на openwrt
- док/кейс для hdd
Прежде всего сеть:
Сеть
ax3000t подключен как бридж от роутера провайдера.
на серваке развернут technitium как dns.server+adblocker.
Роутер выдает ip technitium, каждому устройству т.к. я не захотел разбираться как сделать кастомный multidns в самом openwrt.
Как реверс прокси у меня прекрасный traefik(далее в compose).
Итого: устройство подключается к сети, получает днс technitium, все запросы к домену внутри сети адресуются к домену в докер-машине, минуя внешнюю сеть.
А также в proxmox прописан technitium отдельно.
Для “защиты” стоит sso tinyauth, мне хватает, ставится в 1 клик, работает через labels в compose как и traefik, ничего больше настраивать не надо. Но для серьезной защиты малофункционален
Crowdsec не стоит, ибо смысла особо не вижу, хоумлаба закрыта за CG-NAT, а всё что из внешней сети стоит за cloudflared с аутентификацией через google(не совет, по crowdsec смотрите сами, что вам нужно)
Почему не dnsforward внутри openwrt?
- Некоторые запросы утекают во внешнюю сеть по неведомой мне причине.
- В ax3000t мало внутренней памяти, чтобы развернуть adguard home со всеми блоклистами.
Почему technitium, а не adguard home?
Лично мой выбор, мне он показался более гибким, удобным и понятным, хоть и интерфейс весьма топорный.
По сети вроде все, двигаемся дальше…
Proxmox
HDD в proxmox прокинут как zfspool из одного диска.
Зачем? Не знаю, делал все по гайду англоязычного ютубера, без понятия насколько данное решение верно, но все работает чудесно.
В качестве альтернативы portainer у меня komodo, мне он нравится больше + удобно подключать и рулить доп. машинами.
Arca- arr/медиа стэк, основная докер-машина
balda - вторая докер-машина, в ней сервисы которые можно не бэкапить и всякий мусор
docktest - тестовая машина с докером, если хочется поиграться со всяким разным
webmin-vm, mongodb, redis - дб и тд
кстати доступ к дб у меня через прокинутые порты в traefik. Так делать, насколько я знаю, очень плохо, но я не хочу запоминать их ip и вообще отстаньте я так хочу
netbird - zerotrust, раньше использовал, но т.к. надо устанавливать клиенты, отказался, не удобно по мне, но иногда если нужно оказаться именно внутри сети, включаю
pulse - берет данные по мониторингу с proxmox, просто вкладка с мониторингом прокса в отдельном месте
ssm - squirrel servers manager, новый сервис по мониторингу и менеджменту, пока сырой, поставил поиграться
technitium - dns сервер, см. выше
immich - не пользуюсь, т.к. есть icloud+
crafty - майнкрафт сервер, в игры не играю, поставил на будущее, если будет желание
pelican-panel+mumble - панель для запуска разного рода серверов для игр и машина которой эта панель управляет
beszel - мониторинг, не пользуюсь, не удалил, потому, что… сейчас удалю ![]()
cloudflared - туннель, по мне самое удобное решение для удаленного доступа. Zero-Trust лучше конечно во много, тот же pangolin, но я выбрал данное решение
heroku - userbot для telegram
gpu - вм в которую прокинут ryzen igpu, планировалась как вм для стриминга простеньких игр и нейросетей. Нет возможности проводного подключения, так что играть не сильно приятно. А нейросеть локально лично мне не слишком полезна, хоть и скорость на встройке оказалась очень даже терпима(8b моделей)
owncloud - название говорит за себя, не nextcloud, так как там много всего что мне не надо, что делает его излишним + непросто настроить чтобы все работало как надо, получилось завести только onlyoffice
win - windows-машина, у меня только macbook air 2015 на arch, так что часто нужна windows машина для всякого разного
фухх, с proxmox закончили, дальше больше ![]()
Dashboard
В качестве дашборда у меня homepage
Imgur: The magic of the Internet
Dashboard - конфиг к моему compose
- main:
- proxmox:
icon: proxmox.png
href: https://proxmox.domain.ru
showName: false
widget:
type: proxmox
url: https://192.168.1.100:8006
username: #юзернейм формата см доки - homepage@pam!homepage
password: # токен формата см доки - 72971443-d410-45kk-95b0-c27k6172a8a4
# node: pve-1 # optional
# description: Proxmox VE
- komodo:
icon: komodo.svg
href: https://komodo.domain.ru
# description: Proxmox VE
widget:
type: komodo
url: http://192.168.1.111:9120/
key:
secret:
showSummary: true # optional, default: false
showStacks: true # optional, default: false
- traefik:
icon: traefik.svg
href: https://traefik.domain.ru
widget:
type: traefik
url: https://traefik.domain.ru
# description: Proxmox VE
- openwrt:
icon: openwrt.svg
href: http://openwrt.lan
# description: Proxmox VE
widget:
type: openwrt
url: http://192.168.1.1
username: root
password:
# interfaceName: eth0 # optional
- quantum:
icon: filebrowser-quantum.png
href: https://arrfiles.domain.ru
- balda:
icon: filebrowser-quantum.png
href: https://baldafiles.domain.ru
- webmin:
icon: webmin.svg
href: https://webmin.domain.ru/
- vscode:
icon: code.svg
href: https://vscode.domain.ru/
- nexterm:
icon: nexterm.svg
href: https://nexterm.domain.ru/
- arr:
- flood:
icon: flood.svg
href: https://flood.domain.ru/
widget:
type: flood
url: https://flood.domain.ru/
username: # if set
password:
- jellyfin:
icon: jellyfin.svg
href: https://jellyfin.domain.ru/
widget:
type: jellyfin
url: https://jellyfin.domain.ru/
key:
enableBlocks: true # optional, defaults to false
enableNowPlaying: false # optional, defaults to true
enableUser: true # optional, defaults to false
enableMediaControl: true # optional, defaults to true
showEpisodeNumber: true # optional, defaults to false
expandOneStreamToTwoRows: false
- jellyseerr:
icon: jellyseerr.svg
href: https://jellyseerr.domain.ru/
widget:
type: jellyseerr
url: https://jellyseerr.domain.ru/
key:
- prowlarr:
icon: prowlarr.svg
href: https://prowlarr.domain.ru/
widget:
type: prowlarr
url: http://192.168.1.111:9696/
key:
- radarr:
icon: radarr.svg
href: https://radarr.domain.ru/
widget:
type: radarr
url: http://192.168.1.111:7878/
key:
- sonarr:
icon: sonarr.svg
href: https://sonarr.domain.ru/
widget:
type: sonarr
url: http://192.168.1.111:8989/
key:
- lidarr:
icon: lidarr.svg
href: https://lidarr.domain.ru/
widget:
type: lidarr
url: http://192.168.1.111:8686/
key:
- readarr:
icon: readarr.svg
href: https://readarr.domain.ru/
widget:
type: readarr
url: http://192.168.1.111:8787/
key:
- kavita:
icon: kavita.svg
href: https://kavita.domain.ru/
widget:
type: kavita
url: http://192.168.1.111:5021
# username:
# password: password
key: # Optional, e.g. if not using username and password
- qbit:
icon: qbittorrent.svg
href: https://qbit.domain.ru/
- watcharr:
icon: watcharr.svg
href: https://watcharr.domain.ru/
- pinchflat:
icon: pinchflat.png
href: https://pinch.domain.ru/
- metube:
icon: metube.svg
href: https://metube.domain.ru/
- slskd:
icon: slskd.svg
href: https://slskd.domain.ru/
- nicotine:
icon: nicotine-plus.svg
href: https://nicotine.domain.ru/
- monitoring:
- Uptime-kuma:
icon: uptime-kuma.svg
href: https://kuma.domain.ru/
widget:
type: uptimekuma
url: http://192.168.1.111:3001
slug: dash
- beszel:
icon: beszel.svg
href: https://beszel.domain.ru/
widget:
type: beszel
url: http://192.168.1.159:8090
username: # email
password:
# systemId: systemId # optional
version: 2 # optional, default is 1
- homelaba:
icon: grafana.svg
href: https://grafana.domain.ru/d/homelaba/
- traefik:
icon: grafana.svg
href: https://grafana.domain.ru/d/traefik
# widget:
# type: grafana
# version: 2 # optional, default is 1
# # alerts: alertmanager # optional, default is grafana
# url: https://grafana.domain.ru
# username:
# password:
- gotify:
icon: gotify.svg
href: https://gotify.domain.ru
# widget:
# type: gotify
# url: http://192.168.1.111:8030
# key:
- dozzle:
icon: dozzle.svg
href: https://dozzle.domain.ru/
- pulse:
icon: pulse.svg
href: https://pulse.domain.ru/
- portracker:
icon: portracker.svg
href: https://portracker.domain.ru/
- lan:
icon: watchyourlan.png
href: https://lan.domain.ru/
- speedtest:
icon: openspeedtest.svg
href: https://speedtest.domain.ru/
- misc:
- vaultwarden:
icon: vaultwarden.svg
href: https://vaultwarden.domain.ru/
- technitium:
icon: technitium.png
href: https://dns.domain.ru/
- navidrome:
icon: navidrome.svg
href: https://navidrome.domain.ru/
- romm:
icon: romm.svg
href: https://romm.domain.ru/
- aria:
icon: ariang.png
href: https://aria.domain.ru
- neko:
icon: neko-light.svg
href: https://neko.domain.ru/
- pingvin:
icon: pingvin.svg
href: https://pingvin.domain.ru/
Все остальное во 2 части, так как форум не дает писать больше 30к символов

