Используемое ПО и инструкции по его установке Одна из самых объемных книг в bookstack в ней подробно описаны процессы по установке используемого и не используемого ПО в инфраструктуре papercastle Инструкции по установке и первичной настройке ПО на серверах Актуальные инструкции по установке и первичной настройке ПО на серверах Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh Подключение через UI proxmox Подключение к ноде В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее перейти во вкладку Shell Подключение к LXC контейнеру В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее выбрать необходимый LXC контейнер, и перейти во вкладку Console Подключение к виртуальной машине В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее выбрать необходимую виртуальную машину, и перейти во вкладку  Console Подключение через ssh клиент В proxmox, lxc контейнерах и виртуальных машинах уже предустановлен пакет openssh-server но для подключения с root правами нам необходимо отредактировать файл sshd_config Редактирование файла sshd_config Для редактирования файла необходимо подключиться с помощью одного из способов выше nano /etc/ssh/sshd_config В редакторе необходимо добавить или раскомментировать строки PermitRootLogin yes PasswordAuthentication yes Сохранить файл CTRL+X далее Y далее ENTER Чтобы применить изменения без разрыва текущих SSH‑сессий, используй reload. systemctl reload sshd Теперь у нас есть возможность подключаться через ssh к консоли нашего сервера под пользователем root. Подключение через клиент putty В поле Host Name (or IP address) вводим ip сервера, в поле Port вводим 22, нажимаем Open login as: вводим root нажимаем ENTER далее вводим пароль, при вводе символы не отображаются, после ввода пароля нажимаем ENTER Подключение с помощью cmd windows В консоли CMD нужно ввести команду ssh root@ и нажать ENTER   Консоль запросит Are you sure you want to continue connecting (yes/no/[fingerprint])? вводим yes и нажимаем ENTER, вводим пароль нажимаем ENTER Создание LXC контейнера proxmox LXC (Linux Containers) — это технология контейнеризации на уровне операционной системы Linux , позволяющая запускать несколько изолированных экземпляров ОС на одном хосте без эмуляции аппаратного обеспечения. Основные характеристики Использует пространства имён (namespaces) для изоляции процессов, сети, файловых систем и пользователей, а также cgroups для контроля ресурсов (CPU, память, I/O). Поддерживает полноценные системные контейнеры с init-системой, SSH и сервисами, похожие на лёгкие VM. Преимущества в homelab В Proxmox LXC экономит ресурсы по сравнению с VM, позволяет динамически менять CPU/RAM/диск без перезагрузки и подходит для VPN/сетевых сервисов. ​ Процесс скачивания Templates Для создания lxc контейнера так же как и для создания виртуальной машины, необходим образ системы, в proxmox этот образ называется Templates , для его скачивания реализован весь необходимый функционал в самом гипервизоре. Для того что бы скачать Templates выберите необходимую ноду , перейдите в раздел local (<название ноды>) и перейдите во вкладку CT Templates Нажмите на кнопку Templates , в открывшемся меню выберите необходимый образ и нажмите на кнопку Download Создание LXC контейнера После того как вы скачали необходимый Templates  можете приступать к созданию LXC контейнера Справа сверху в интерфейсе proxmox нажмите на Create CT General Node: Выбор ноды (сервера) в кластере Proxmox, на котором разместится контейнер. ​ CT ID: Уникальный числовой идентификатор контейнера (100-999), используется для ссылок и команд. ​ Hostname:  Имя хоста контейнера, отображаемое в системе и сети (алфавитно-цифровое). ​ Unprivileged container:  Включение делает контейнер непривилегированным — процессы маппятся на непривилегированные UID/GID хоста для повышенной безопасности. ​ Nesting:  Разрешает запуск вложенных контейнеров (LXC/Docker внутри LXC), полезно для сложных setup'ов. ​ Add to HA:  Включение добавляет контейнер в High Availability кластер для автоматического перезапуска на другом узле при сбое. ​ Resource Pool:  Привязка к пулу ресурсов — логической группе контейнеров/VM для удобного управления (требует предварительного создания). ​ Password / Confirm password:  Установка root-пароля для консольного доступа к контейнеру. ​ SSH public key(s): Добавление публичных SSH-ключей для безпарольного входа под root или другими пользователями. Template Storage:  Выбор диска на котором находятся Template Template:  Образ который будет использоваться при установке контейнера Disks Storage:  Дисковое пространство на котором будет храниться контейнер Disk size (GiB): Объем выделяемый под контейнер CPU CPU: Количество выделяемых виртуальных ядер процессора Memory Memory (MiB): Объем выделяемой оперативной памяти Swap (MiB): Объем выделяемой памяти на случай если Memory не хватит Network Name: название сетевого интерфейса которое будет отображаться в lxc  MAC address: MAC адрес сетевого интерфейса Bridge: Виртуальный интерфейс в самом proxmox VLAN Tag: VLAN к которому будет привязан интерфейс Firewall: внутренний межсетевой экран proxmox IPv4: при выборе static необходимо указать статический ip и шлюз (как правило ip роутера), при выборе dhcp ip выдаст dhcp сервер IPv6: не используется DNS DNS domain: dns сервер DNS servers: dns сервер Confirm В этом разделе можно сверить все выбранные раннее настройки Start after created: Запуск сразу после создания После заполнения форм нужно нажать кнопку Finish Установка и настройка wireguard и WGDashboard в lxc контейнере Для удаленного подключения и свободного доступа к сервисам в локальной сети, необходим стабильный vpn тунель , одним из предпочтительных вариантов в homelab является использование протокола wireguard отличительной особенностью которого является его легковестность и скорость настройки, что позволит нам использовать его в lxc контейнере . Для удобства управления подключениями и последующей настройки подключения мы так же установим WGDashboard . Установка wireguard+WGDashboard Для установки нам потребуется скрипт с сайта   https://community-scripts.github.io/ProxmoxVE/scripts?id=wireguard В консоли ноды необходимо ввести bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/wireguard.sh)" Выбираем default install При запросе Would you like to add WGDashboard? отвечаем y Установка WGDashboard занимает довольно много времени После успешной установки появится адрес по которому доступен web-интерфейс http://:10006 Настройка WGDashboard При первом входе необходимо выполнить первичную настройку дашборда Логин : admin Пароль : admin Необходимо создать новую УЗ Сервис предлагает настроить двуфакторную аутентификацию это опционально поэтому для того что бы пропустить этот шаг необходимо нажать на I dont need MFA После создания УЗ мы попадаем на главную страницу web-интерфейса , в настройках можно указать Русский язык, но для первичной настройки нам нужно создать клиента для подключения и выполнить первичную настройку. Слева необходимо перейти во вкладку settings далее Peers Settings (Опционально) В dns указать ip локального dns сервера , актуально при использовании ubound dns/split dns/adguard/pihole В  Peer Remote Endpoint указать внешний ip адрес (узнать можно на сайте 2ip.ru) Далее необходимо вернуться на вкладку home, ТК скрипт установил wireguard в конфигурации уже указан wg0 , нажимаем на него. Справа сверху необходимо начать на кнопку включения, для того что бы конфигурация стала активной, далее необходимо нажать на кнопку peer для того что бы добавить клиента В настройках клиента необходимо указать только name и после этого нажать на add Внизу страницы появится клиент при нажатии на . . . появятся варианты для подключения Открыть порт 51820 в OPNsense После установки и настройки wireguard и настройки клиента на необходимом устройстве, необходимо открыть порт 51820 в opnsense  Для начала необходимо настроить NAT , перенаправление внешнего порта к ip адресу внутри локальной сети, для этого необходимо перейти во вкладку firewall далее NAT далее port forward и нажать на + Далее необходимо выполнить такие настройки Interface : WAN Protocol : UDP Destination : WAN address Destination port range : from 51820 to 51820 Redirect target IP : Single host or Network Redirect target port : 51820 Description : wireguard (опционально) Далее нажать Save и Apply settings Далее необходимо перейти во вкладку rules и перейти к интерфейсу wan в открывшемся окне нажать + Далее необходимо выполнить такие настройки Interface : WAN Direction : in Protocol : UDP Source : any Destination : Single host or Network Destination port range : from 51820 to 51820 Description : wireguard (опционально) Далее нажать Save и Apply settings   Установка и первичная настройка BookStack в LXC на Proxmox BookStack  — простая open-source платформа для создания структурированной документации и вики. ​ Организует знания по принципу полки → книги → главы → страницы  с WYSIWYG-редактором и поддержкой Markdown. Идеальна для командной работы, технической документации, инструкций и баз знаний. Ключевые возможности: Иерархическая структура контента Поиск по всем уровням Роли и права доступа Экспорт в PDF/HTML Версионность изменений Вложения и изображения https://www.bookstackapp.com/ Установка BookStack BookStack предполагает использование в рамках docker контейнера, но так как у меня установлен гипервизор proxmox я имею возможность создания lxc контейнеров и запуска на них docker приложений c помощью node.js Для установки нам необходимо попасть в консоль необходимой ноды с помощью ssh Комьюнити proxmox довольно большое поэтому энтузиастами был сформирован довольно большой список скриптов для установки ПО, мне повезло и скрипт для BookStack был на сайте https://community-scripts.github.io/ProxmoxVE/scripts?id=bookstack После подключения к ноде необходимо ввести bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/bookstack.sh)" В диалоговом окне выбираем Default Install  нажимаем ENTER После завершения установки появится ip адрес для подключения по http в локальной сети для теста вводим в браузере http:// Предустановленный пользователь: Username:  admin@admin.com Password:  password Первичная настройка BookStack После установки нам необходимо подключиться к lxc контейнеру через ssh в консоли необходимо ввести nano /opt/bookstack/.env В открывшемся файле необходимо отредактировать или добавить строки # Русский язык APP_LANG=ru # Отключаем автодетект языка для гостей (опционально) APP_AUTO_LANG_PUBLIC=false # Указываем URL приложения если сделали его в npm (опционально) APP_URL=https://<твой домен> После сохранения файла и перезагрузки контейнера, можно переходить на http:// или https://<твой домен>  Установка и настройка TorrServer в lxc контейнере и просмотр кино и сериалов через lampa TorrServer - сервис для онлайн просмотра торрент файлов, в отличии от Jellyfin, для просмотра, контент не нужно скачивать, а трансляция идет напрямую из torrent сети. Установка TorrServer Для установки необходимо создать lxc контейнер с настройками OS: Debian 12 CPU: 2 cores RAM: 2048 MiB Disk: 16-32 ГБ Swap: 512 MiB После подключения к lxc контейнеру через ssh необходимо перейти в GitHub разработчика TorrServer и уточнить ссылку на актуальную версию приложения, после этого в консоли lxc контейнера ввести: cd /opt wget https://github.com/YouROK/TorrServer/releases/download/MatriX.137/TorrServer-linux-amd64 chmod +x TorrServer-linux-amd64 mv TorrServer-linux-amd64 torrserver # опционально, для удобства ./torrserver -port 8090 & Проверьте http://:8090 есть веб-интерфейс доступен в консоли lxc контейнера создаем автозагрузку: cat > /etc/systemd/system/torrserver.service << EOF [Unit] Description=TorrServer After=network.target [Service] Type=simple User=root WorkingDirectory=/opt ExecStart=/opt/torrserver -port 8090 Restart=always [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable --now torrserver Установка и настройка TorrServer в lampa Добавление парсера Установите публичные парсеры для поиска фильмов/сериалов. Настройки → Расширения → Добавить:  https://lampame.github.io/main/pubtorr.js ​ Настройки → Парсеры → Выберите "Каталог парсеров" (Jacred.xyz или аналог — зелёный статус). Настройка TorrServer в lampa Настройки → TorrServer → укажите :8090 Вывод температуры cpu и hdd в Summary Proxmox Для контроля температур, в стандартном пакете proxmox нет необходимых утилит, ниже описан гайд для их установки. В консоли ноды proxmox apt update apt install lm-sensors sensors-detect Во время установки скрипт будет задавать вопросы, ниже указаны ответы. Display temperatures for all cores : A Display temperatures in Celsius : C Enable UPS information : N Enable system information : N wget https://raw.githubusercontent.com/Meliox/PVE-mods/main/pve-mod-gui-sensors.sh bash pve-mod-gui-sensors.sh install systemctl restart pveproxy pveproxy-ssl Установка и настройка vaultwarden в lxc контейнере Vaultwarden — это легковесная реализация сервера Bitwarden, написанная на Rust. Ключевые особенности : Совместим с официальными клиентами Bitwarden (браузер, мобильные apps, desktop) Self-hosted — ставится на свой сервер/LXC/Proxmox Маленький — ~10MB RAM против 1GB+ у официального Bitwarden Открытый код (unofficial Bitwarden server) Зачем нужен : Вместо облачного Bitwarden ($10/мес) ставишь свой менеджер паролей на домашний сервер, используешь те же приложения и расширения браузера. Установка Для установки vaultwarden понадобится скрипт с сайта  https://community-scripts.github.io/ProxmoxVE/scripts?id=vaultwarden А так же настроенный VPN на роутере, для того что бы включить VPN соединение на всей сети, это необходимо так как некоторые пакеты в скрипте не доступны из России В консоли ноды необходимо ввести  bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/vaultwarden.sh)" Во время установки могут возникнуть ошибки по конфигурации ipv4 , скрипт не пройдет проверки, сообщение о ошибках можем игнорировать, на все вопросы отвечает Y Установка может занять довольно много времени После установки в ноде появится контейнер, к нему необходимо подключиться. Настройка Далее необходимо сгенерировать admin token , он понадобится при настройке файла конфигурации, сделать это можно в тестовом или текущем контейнере командой openssl rand -base64 48 Вывод необходимо записать Далее необходимо отредактировать файл конфигурации /opt/vaultwarden/.env Файл конфигурации необходимо привести к виду ADMIN_TOKEN='' ROCKET_ADDRESS=0.0.0.0 DATA_FOLDER=/opt/vaultwarden/data DATABASE_MAX_CONNS=10 WEB_VAULT_FOLDER=/opt/vaultwarden/web-vault WEB_VAULT_ENABLED=true После чего перезагрузить lxc контейнер . Панель vaultwarden доступна только через https c ssl сертификатом , поэтому нам необходимо выдать для :8000 домен через любой обратный прокси. Установка и настройка MCSManager для minecraft сервера в lxc контейнере+создание srv записи на reg.ru Создание LXC контейнера Инструкция по созданию lxc контейнера OC : debian 12 CPU : 2-4 cores RAM : 4096MB+ Root Disk : 20GB Установка Java 21 apt update && apt install wget curl -y cd /opt wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.6+7/OpenJDK21U-jre_x64_linux_hotspot_21.0.6_7.tar.gz tar -xzf OpenJDK21U-jre_x64_linux_hotspot_21.0.6_7.tar.gz mv jdk-21.0.6+7-jre java-21 # Глобальная настройка echo 'export JAVA_HOME=/opt/java-21' >> /etc/profile echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile source /etc/profile update-alternatives --install /usr/bin/java java /opt/java-21/bin/java 1 java --version # OpenJDK 21.0.6 Установка MCSManager WebUI apt install curl -y cd /opt curl -s https://api.github.com/repos/MCSManager/MCSManager/releases/latest | grep browser_download_url | grep linux_release | cut -d '"' -f 4 | wget -i - tar -xzf mcsmanager_linux_release.tar.gz cd mcsmanager # Node.js для Web curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt install nodejs -y # Запуск nohup ./start-web.sh > web.log 2>&1 & nohup ./start-daemon.sh > daemon.log 2>&1 & Создание systemctl для web-интерфейса cat > /etc/systemd/system/mcsm-web.service << 'EOF' [Unit] Description=MCSManager Web After=network.target [Service] Type=simple WorkingDirectory=/opt/mcsmanager/web ExecStart=/usr/bin/node app.js Restart=always User=root Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Install] WantedBy=multi-user.target EOF Создание systemctl для daemon cat > /etc/systemd/system/mcsm-daemon.service << 'EOF' [Unit] Description=MCSManager Daemon After=network.target [Service] Type=simple WorkingDirectory=/opt/mcsmanager/daemon ExecStart=/usr/bin/node app.js Restart=always User=root Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Install] WantedBy=multi-user.target EOF Запуск и активация systemctl daemon-reload systemctl enable mcsm-web.service mcsm-daemon.service systemctl start mcsm-web.service mcsm-daemon.service Доступ : http://:23333 После перехода в web-интерфейс необходимо выбрать язык и нажать кнопку Далее  и пройти процедуру создания УЗ Открытие порта для доступа к серверу в opnsense Для того что бы у клиентов была возможность подключаться к нашему серверу необходимо открыть порт для безопасности мы будем открывать не стандартный порт 25565 , а другой 24848 (Можно выбрать любой), локально порт останется тем же. В OPNsense : Firewall → NAT → Port Forward → Add Interface : WAN Protocol : TCP/UDP Destination : WAN address Destination port range : 24848 (From/To) Redirect target IP : Redirect target port : 25565 Description : Minecraft 24848 Save → Apply Changes Rules в Firewall  создастся автоматически Cоздание srv записи на reg.ru Для комфортного подключения к игровому серверу, мы можем использовать домен, для этого необходимо создать srv запись у dns регистратора, в моем случае это reg.ru Для этого необходимо на сайте reg,ru перейти в настойки далее домены , выбрать ваш домен и перейти в DNS-серверы и управление зоной,  далее добавить новую ресурсную запись , тип А В subdomain указать то что будет указано перед вашим основным доменом .<ваш домен> будет использоваться для подключения к серверу. После заполнения формы необходимо нажать кнопку Готово Далее нам необходимо создать новую ресурсную запись на этот раз необходимо выбрать тип SRV В форме необходимо заполнить следующие поля Service : <_название сервиса>.<_tcp>.<созданный раннее subdomain> Priority : 0 Weight : 0 Port : <Порт открытый в opnsense> Target : <Созданный раннее subdomain записанный целиком>. После заполнения формы необходимо нажать кнопку Готово Через 15-30 минут DNS записи обновятся и появится возможность подключится к серверу через домен Установка и настройка homepage в lxc контейнер Установка Для установки homepage в lxc контейнер, нам понадобится скрипт с сайта  https://community-scripts.github.io/ProxmoxVE/scripts?id=homepage В консоли ноды необходимо ввести команду bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/homepage.sh)" Если все в порядке, после установки у вас появится доступ к панели по адресу http://:3000 Настройка Рекомендую настроить подключение через ssh так как для настройки понадобится редактировать большое количество файлов и загружать материалы через sftp После подключения необходимо отредактировать файл конфигурации В консоли lxc контейнера nano /opt/homepage/.env Файл необходимо привести к виду HOMEPAGE_ALLOWED_HOSTS=localhost:3000,:3000,<поддомен если используете обратный прокси> Отличительной особенностью от версии с докером является то что все медиа файлы располагаются в каталоге  /opt/homepage/public/ Дальнейшую настройку homepage рекомендую выполнять через официальную документацию документацию homepage dashoboard   nekobox с управлением через gui как vpn клиент в lxc контейнере LXC‑клиент с GUI, noVNC и Nekobox 1. Создание контейнера в Proxmox Параметры: Template: Debian 12 или Ubuntu Server 22.04 Privileged: рекомендуется Yes CPU/RAM: 1–2 vCPU, 1–2 ГБ RAM Disk: 8–16 ГБ Network: Bridge: vmbr0 IPv4: статический, например 192.168.51.41/24 Gateway: IP OPNsense В Options включи: Nesting = 1 После создания запусти контейнер и войди в него (через консоль Proxmox или SSH). 2. Базовая настройка системы apt update && apt upgrade -y apt install -y sudo mc curl wget ca-certificates 3. Установка GUI и VNC apt install -y xfce4 xfce4-goodies x11vnc xvfb fluxbox git websockify Fluxbox — лёгкий оконный менеджер, подходит для этого сценария. 4. Установка noVNC git clone https://github.com/novnc/noVNC.git /opt/novnc cd /opt/novnc mv vnc.html index.html 5. Установка Nekobox (GUI‑клиент) Создай каталог для Nekobox и скачай актуальный релиз (AppImage или бинарь для Linux amd64) с GitHub репозитория Nekobox. В примере используется файл Nekobox.AppImage, подмени имя на реальное из релиза. mkdir -p /opt/nekobox cd /opt/nekobox wget https://example.com/path/to/NekoBox.AppImage -O nekobox chmod +x nekobox Проверь ручной запуск (после старта Xvfb): export DISPLAY=:1 cd /opt/nekobox ./nekobox & 6. Скрипт автозапуска GUI + VNC + noVNC + Nekobox Создай файл /root/start.sh (или отредактируй, если уже существует): nano /root/start.sh Вставь содержимое: #!/bin/bash # Виртуальный X-сервер Xvfb :1 -screen 0 1920x1080x24 & sleep 2 export DISPLAY=:1 # Оконный менеджер fluxbox & # VNC сервер x11vnc -display :1 -nopw -forever -bg -shared sleep 2 # noVNC на 80 порту websockify -D --web /opt/novnc 80 localhost:5900 # Автозапуск Nekobox cd /opt/nekobox ./nekobox & # Поддержание процесса активным while true; do sleep 3600 done wait Сделай файл исполняемым: chmod +x /root/start.sh Добавь автозапуск через cron: crontab -e Добавь строку: @reboot /root/start.sh Перезапусти контейнер: reboot 7. Доступ через браузер и работа с Nekobox После перезапуска открой в браузере: http://IP_LXC/ Подключись к noVNC, увидишь рабочий стол XFCE/Fluxbox, на котором автоматически запустится Nekobox. Через Nekobox настрой подписку, прокси и маршрутизацию по своему сценарию. Установка и настройка Nginx proxy manager в docker, настройка split dns, настройка wildcard-сертификата Nginx Proxy Manager (NPM)  — это удобный инструмент с веб-интерфейсом для управления обратным прокси на базе Nginx, который упрощает маршрутизацию трафика к сервисам в Docker, LXC или VM без редактирования конфигов вручную. Основные функции Поддерживает проксирование по доменам/поддоменам, автоматическое получение SSL-сертификатов Let's Encrypt, HTTP-аутентификацию, списки доступа (ACL) и блокировку IP. Позволяет настраивать перенаправления, кастомные страницы ошибок и потоки TCP/UDP через Streams. ​ После покупки домена и регистрации его у dns провайдеров у нас появляется возможность реализовать обратный прокси трафика по доменному имени, это позволит нам убрать отображение ip адресов из нашей homelab и реализовать доступ из интернета к веб панелям необходимых нам сервисов. Установка Nginx Proxy Manager Создание lxc контейнера Для установки NPM в docker, нам понадобится  создать lxc контейнер 2 vCPU, 2 ГБ RAM, 20+ ГБ диска. ОС: Debian 12/13 или Ubuntu 22.04 LTS. Установка Docker и compose Подключаемся к созданному контейнеру через ssh Ставим зависимости apt update apt install -y ca-certificates curl gnupg lsb-release Добавляем официальный репозиторий Docker install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg \ -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \ $(. /etc/os-release; echo "$VERSION_CODENAME") stable" \ > /etc/apt/sources.list.d/docker.list apt update Устанавливаем Docker + compose‑plugin apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin systemctl enable --now docker Проверка docker version docker compose version Готовим каталог и docker‑compose.yml Создаём каталог под NPM mkdir -p /opt/npm/data mkdir -p /opt/npm/letsencrypt   Создаём docker‑compose.yml cat > /opt/npm/docker-compose.yml << 'EOF' version: "3.8" services: app:   image: docker.io/jc21/nginx-proxy-manager:latest   container_name: nginxproxymanager   restart: unless-stopped   ports:     - "80:80"     - "81:81"     - "443:443"   volumes:     - /opt/npm/data:/data     - /opt/npm/letsencrypt:/etc/letsencrypt   environment:     TZ: "Asia/Novosibirsk" EOF restart: unless-stopped гарантирует авто‑подъём после любого ребута, пока жив Docker. Все данные (конфиги, база, серты) лежат в /opt/npm, независимы от жизни контейнера. Старт NPM Запуск cd /opt/npm docker compose up -d Проверка: docker ps Должен быть контейнер nginxproxymanager со статусом Up. Первый вход В браузере: http://:81 Стандартный логин: Email : admin@example.com Password : changeme Если все в порядке, после установки у вас появится доступ к панели по адресу http://:81 Настройка Nginx Proxy Manager После установки нам необходимо выполнить несколько обязательных вещей Проброс портов к npm В OPNsense нам необходимо перейти в раздел  Firewall , далее  NAT  и перейти в  Port Forward , в открывшемся окне нажать справа сверху на  + (add)   В открывшемся окне нужно заполнить поля Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTP; to: HTTP Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTP Description : NPM HTTP for Let's Encrypt Нажать кнопку  Save После этого нажимаем кнопку  Apply changes  и создаем следующее правило кнопкой  + (add) Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTPS; to: HTTPS Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTPS Description : NPM HTTPS for Let's Encrypt Нажать кнопку  Save После этого нажимаем кнопку  Apply changes Покупка домена reg.ru Для настройки доменных имен в npm доменное имя необходимо купить по этому поводу уже написана  подробная статья После покупки доменного имени и указания его у ДНС провайдера потребуется время что бы запись появилась у ДНС резолверов, проверить это проще всего командой на любом клиенте сети с установленным линукс, я для этих целей создал отдельный тестовый  lxc контейнер dig <ваш домен> В выводе команды должен отобразится внешний ip адрес, запись проводится в течении 1-24 часов. Настройка сертификата Так как мы планируем использовать большое количество поддоменов нам не подходит вариант с обычным запросом сертификата через  certbot, reg.ru  позволяет запрашивать  wildcard  сертификат на домен и все поддомены, поэтому мы будем настраивать сразу его.  На сайте  reg.ru  заходишь в личный кабинет, далее Настройки API, запрашиваешь ключ API, его необходимо записать. В  NPM  нужно создать  wildcard-сертификат , во вкладке  Certificates  нужно нажать на кнопку  Let's Encrypt via DNS В открывшемся окне необходимо заполнить поля Domain Names : тут указываешь <твоедоменноеимя.ru> и <*.твоедоменноеимя.ru> DNS Provider : reg.ru Credentials File Content : dns_username=<твоя почта на reg.ru> dns_password= Propagation Seconds:  Лучше указать 600 так как сервера reg.ru могут работать не стабильно После этого необходимо нажать кнопку  Save  и подождать 1-5 минут. Настройка split dns Так как мы не хотим что бы все наши домены были доступны из сети, и для оптимизации подключения к доменам, нам необходимо настроить  split dns  на нашем  opnsense.  Технически можно реализовать эту технологию на любом локальном  dns  сервере, но в opnsense уже установлен  unbound dns , в котором есть необходимый нам функционал (ubound dns должен быть включен и настроен), для этого нам необходимо перейти во вкладку  Services , далее  Unbound DNS , далее  Overrides , в открывшемся окне в разделе  Hosts  нажать на  + В открывшемся окне необходимо заполнить поля Enabled : Галочка Host : * Domain : <твой домен> Type : A (IPv4 address) IP address : Description : NPM Далее нажать кнопку  Save  и  Apply Следующим шагом нужно указать Query forwarding для нашего сертификата, что бы избежать проблем с сертификатами в локальной сети при переходе по нашим доменам. Для этого необходимо перейти во вкладку  Query forwarding  нажать на  +  и в открывшемся окне заполнить поля Enabled : Галочка Domain : ocsp.int-x3.letsencrypt.org Server IP : 1.1.1.1 Далее нажать  Save  и  Apply Теперь необходимо перейти в панель  npm  и настроить там группу доступа которую мы будем указывать при создании доменов. Для этого необходимо перейти во вкладку  Acces list  нажать на кнопку  Add Acces list  и в открывшемся окне заполнить форму Во вкладке  Details  необходимо указать имя нашей группы Во вкладке  Rules  необходимо добавить подсети из которых у нас будет доступ к нашим доменам Создание и настройка поддомена Для создания поддомена нам необходимо перейти во вкладку Proxy Hosts и нажать на кнопку Add Proxy Host, в открывшемся окне необходимо заполнить поля Domain Names : Вводим необходимы домен или поддомен Scheme : В зависимости от панели к которой хотим открыть доступ выбираем http или https Forward Hostname / IP : ip нашего сервиса, Forward Port : Порт нашего сервиса Access List : в зависимости от того хотим ли что бы сервис работал только локально или был публичным выбираем созданную нами группу доступа или Publicly Accessible Cache Assets : (Опционально) Включает кэширование статических ресурсов (CSS, JS, изображения) на прокси-сервере для ускорения загрузки страниц, снижая нагрузку на backend-сервер.  ​ Block Common Exploits : (Опционально) Активирует встроенные правила Nginx для защиты от распространённых веб-атак (XSS, SQL-инъекции, кликджекинг) через заголовки безопасности вроде X-Frame-Options и Content-Security-Policy. ​ Websockets Support : (Опционально) Включает поддержку WebSocket-протокола (ws://, wss://), необходимую для real-time приложений вроде чатов, дашбордов или игр (например, Grafana, Homarr в homelab). Переходим во вкладку  SSL  в открывшемся окне необходимо заполнить поля SSL Certificate : Указываем созданный нами раннее сертификат Force SSL : (Опционально) Принудительно перенаправляет весь HTTP-трафик (порт 80) на HTTPS (порт 443) с помощью 301-редиректа, обеспечивая обязательное шифрование. ​ HSTS Enabled : (Опционально) Включает HTTP Strict Transport Security — браузеры запоминают домен как HTTPS-only на заданный период (max-age), предотвращая MITM-атаки и downgrade до HTTP. ​ HTTP/2 Support : (Опционально) Активирует протокол HTTP/2 для мультиплексирования запросов, сжатия заголовков и ускорения загрузки (требует SSL). ​ HSTS Sub-domains : (Опционально) Расширяет HSTS-политику на все поддомены (includeSubDomains), заставляя браузеры применять HTTPS ко всем *.domain.com. ​ После нажатия кнопки  Save  домен появится в списке и ресурс станет доступен по заданному домену Установка и настройка mDNS repeater в OPNsense для подключения умной лампочки matter к HomeAssistant mDNS repeater — это сервис-посредник, который пересылает multicast -запросы mDNS (UDP порт 5353, адрес 224.0.0.251) между разными подсетями/VLAN. Matter (и HomeKit/AirPlay/ESPHOME) используют mDNS для обнаружения устройств (.local имена, типа lamp.local), но multicast не проходит через роутер — repeater "отражает" пакеты Для нас он нужен для того что бы подключить лампочку работающую на matter от Яндекса, сложность заключается в том что как правило HomeAssistant и локальные устройства подключенные через wifi имеют разные подсети, и в случае с ipv4 проблема решается банальным правилом в межсетевом экране, но протокол matter использует ipv6, как раз для подобных случаев, был создан mDNS repeater . Установка в OPNsense System > Firmware > Plugins > os-mdns-repeater > Install . Services > mDNS Repeater : Enable, Interfaces: <Подсеть с HA>,. Итог После проведенных действий в OPNsense, при условии что у вас включен ipv4 в этих подсетях, интеграция matter должна заработать корректно. Подключение zabbix agent 2 в lxc контейнер Установка Для debian 12 apt-get update && apt-get install -y zabbix-agent2 Для debian 13 grep -rl 'mirror.mariadb.org' /etc/apt/ | xargs -I {} mv {} {}.bak apt-get update && apt-get install -y zabbix-agent2 Настройка nano /etc/zabbix/zabbix_agent2.conf Изменить server= закоментировать serverActive= изменить hostname= systemctl restart zabbix-agent2 systemctl enable zabbix-agent2 Проверить статус systemctl status zabbix-agent2 В разработке В разработке Установка и первичная настройка Proxmox  ✓ Disabled 'pve-enterprise' repository  ✓ Disabled 'ceph enterprise' repository  ✓ Added 'pve-no-subscription' repository  ✓ 'ceph' package repository (no-subscription) already exists (skipped)  ✗ Selected no to Adding 'pvetest' repository  ✓ Disabled subscription nag (Delete browser cache)  ✗ Selected no to Disabling high availability  ✓ Updated Proxmox VE  ✓ Completed Post Install Routines root@pve2:~#  Установка и первичная настройка OPNsense в виртуальной машине proxmox установка и настройка sig-box в lxc контейнере+настройка socs5+установка и настройка tun2socks в opnsense+настройка маршрутизации трафика в opnsense по спискам ip Создание недокластера из 2 нод proxmox Установка Truenas Установка nextcloud в docker Truenas Настройка бэкапов lxc контейнеров и ВМ proxmox, в zfs truenas Миграция homeassistant из virtualbox debian на proxmox Не актуально Не актуальные инструкции, тк более не используются в моей инфраструктуре. Установка docker и Portainer в lxc контейнере proxmox Использование Proxmox и lxc контейнеров в нем, позволяет оптимизировать использование ресурсов и повышает отказоустойчивость инфраструктуры, по сути lxc контейнер является сильно "облегченной" операционной системой, на которую можно установить только те пакеты которые необходимы. Но сама по себе идея работы lxc контейнера, не является новой, одним из самых популярных аналогов lxc контейнеров является docker. Так как я не ограничен никакими рамками в использовании ПО отказываться от docker и docker-compose я не вижу никакого смысла. Proxmox и его lxc контейнеры никак не ограниченны в установке ПО поэтому мне ничего не мешает выделить ресурсы ноды под использование другой контейнерной структуры. Portainer — это открытый веб-интерфейс для управления контейнерами Docker, который упрощает работу частично освобождая от использования командной строки. В гайде описан процесс установки в lxc контейнер docker и portainer Создание LXC контейнера Процесс создания lxc контейнера описан тут Нам необходимо создать контейнер с такими настройками: General : Hostname=portainer-docker Template : Ubuntu 22.04 или Debian 12 Disks : 8GB CPU : 2 cores Memory : 2048 MB Далее необходимо подключиться к нему через ssh Установка docker apt update && apt install curl -y curl -fsSL https://get.docker.com | sh systemctl enable --now docker Установка portainer docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest Доступ http://:9000 Установка и настройка Nginx proxy manager в docker portainer, настройка split dns, настройка wildcard-сертификата После установки docker portainer Nginx Proxy Manager (NPM) — это удобный инструмент с веб-интерфейсом для управления обратным прокси на базе Nginx, который упрощает маршрутизацию трафика к сервисам в Docker, LXC или VM без редактирования конфигов вручную. Основные функции Поддерживает проксирование по доменам/поддоменам, автоматическое получение SSL-сертификатов Let's Encrypt, HTTP-аутентификацию, списки доступа (ACL) и блокировку IP. Позволяет настраивать перенаправления, кастомные страницы ошибок и потоки TCP/UDP через Streams. ​ После покупки домена и регистрации его у dns провайдеров у нас появляется возможность реализовать обратный прокси трафика по доменному имени, это позволит нам убрать отображение ip адресов из нашей homelab и реализовать доступ из интернета к веб панелям необходимых нам сервисов. Установка Nginx Proxy Manager Для установки Nginx Proxy Manager (npm) в docker через portainer, нам необходимо перейти в веб-интерфейс portainer http://:9000 В веб интерфейсе необходимо перейти в docker Слева или в центре экрана выбрать Stacks Слева сверху выбрать +Add stack В name указать название нашего контейнера npm Ниже в поле для ввода кода Web editor , вводим код нашего docker-compose файла version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # HTTP - '443:443' # HTTPS - '81:81' # Админка NPM volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt environment: DISABLE_IPV6: 'true' После ввода необходимо нажать кнопку Deploy the stack Если все в порядке, после установки у вас появится доступ к панели по адресу http://:81 Настройка Nginx Proxy Manager После установки нам необходимо выполнить несколько обязательных вещей Проброс портов к npm В OPNsense нам необходимо перейти в раздел Firewall , далее NAT и перейти в Port Forward , в открывшемся окне нажать справа сверху на + (add)   В открывшемся окне нужно заполнить поля Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTP; to: HTTP Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTP Description : NPM HTTP for Let's Encrypt Нажать кнопку Save После этого нажимаем кнопку Apply changes  и создаем следующее правило кнопкой + (add) Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTPS; to: HTTPS Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTPS Description : NPM HTTPS for Let's Encrypt Нажать кнопку Save После этого нажимаем кнопку Apply changes Покупка домена reg.ru Для настройки доменных имен в npm доменное имя необходимо купить по этому поводу уже написана подробная статья После покупки доменного имени и указания его у ДНС провайдера потребуется время что бы запись появилась у ДНС резолверов, проверить это проще всего командой на любом клиенте сети с установленным линукс, я для этих целей создал отдельный тестовый lxc контейнер dig <ваш домен> В выводе команды должен отобразится внешний ip адрес, запись проводится в течении 1-24 часов. Настройка сертификата Так как мы планируем использовать большое количество поддоменов нам не подходит вариант с обычным запросом сертификата через certbot, reg.ru позволяет запрашивать wildcard сертификат на домен и все поддомены, поэтому мы будем настраивать сразу его.  На сайте reg.ru заходишь в личный кабинет, далее Настройки API, запрашиваешь ключ API, его необходимо записать. В NPM нужно создать wildcard-сертификат , во вкладке Certificates  нужно нажать на кнопку Let's Encrypt via DNS В открывшемся окне необходимо заполнить поля Domain Names : тут указываешь <твоедоменноеимя.ru> и <*.твоедоменноеимя.ru> DNS Provider : reg.ru Credentials File Content : dns_username=<твоя почта на reg.ru> dns_password= После этого необходимо нажать кнопку Save  и подождать 1-5 минут. Настройка split dns Так как мы не хотим что бы все наши домены были доступны из сети, и для оптимизации подключения к доменам, нам необходимо настроить split dns  на нашем opnsense.  Технически можно реализовать эту технологию на любом локальном dns сервере, но в opnsense уже установлен unbound dns , в котором есть необходимый нам функционал (ubound dns должен быть включен и настроен), для этого нам необходимо перейти во вкладку Services , далее Unbound DNS , далее Overrides , в открывшемся окне в разделе Hosts нажать на + В открывшемся окне необходимо заполнить поля Enabled : Галочка Host : * Domain : <твой домен> Type : A (IPv4 address) IP address : Description : NPM Далее нажать кнопку Save и Apply Следующим шагом нужно указать Query forwarding для нашего сертификата, что бы избежать проблем с сертификатами в локальной сети при переходе по нашим доменам. Для этого необходимо перейти во вкладку Query forwarding нажать на +  и в открывшемся окне заполнить поля Enabled : Галочка Domain : ocsp.int-x3.letsencrypt.org Server IP : 1.1.1.1 Далее нажать Save и Apply Теперь необходимо перейти в панель npm и настроить там группу доступа которую мы будем указывать при создании доменов. Для этого необходимо перейти во вкладку Acces list нажать на кнопку Add Acces list и в открывшемся окне заполнить форму Во вкладке Details необходимо указать имя нашей группы Во вкладке Rules необходимо добавить подсети из которых у нас будет доступ к нашим доменам Создание и настройка поддомена Для создания поддомена нам необходимо перейти во вкладку Proxy Hosts и нажать на кнопку Add Proxy Host, в открывшемся окне необходимо заполнить поля Domain Names : Вводим необходимы домен или поддомен Scheme : В зависимости от панели к которой хотим открыть доступ выбираем http или https Forward Hostname / IP : ip нашего сервиса, Forward Port : Порт нашего сервиса Access List : в зависимости от того хотим ли что бы сервис работал только локально или был публичным выбираем созданную нами группу доступа или Publicly Accessible Cache Assets : (Опционально) Включает кэширование статических ресурсов (CSS, JS, изображения) на прокси-сервере для ускорения загрузки страниц, снижая нагрузку на backend-сервер.  ​ Block Common Exploits : (Опционально) Активирует встроенные правила Nginx для защиты от распространённых веб-атак (XSS, SQL-инъекции, кликджекинг) через заголовки безопасности вроде X-Frame-Options и Content-Security-Policy. ​ Websockets Support : (Опционально) Включает поддержку WebSocket-протокола (ws://, wss://), необходимую для real-time приложений вроде чатов, дашбордов или игр (например, Grafana, Homarr в homelab). Переходим во вкладку SSL в открывшемся окне необходимо заполнить поля SSL Certificate : Указываем созданный нами раннее сертификат Force SSL : (Опционально) Принудительно перенаправляет весь HTTP-трафик (порт 80) на HTTPS (порт 443) с помощью 301-редиректа, обеспечивая обязательное шифрование. ​ HSTS Enabled : (Опционально) Включает HTTP Strict Transport Security — браузеры запоминают домен как HTTPS-only на заданный период (max-age), предотвращая MITM-атаки и downgrade до HTTP. ​ HTTP/2 Support : (Опционально) Активирует протокол HTTP/2 для мультиплексирования запросов, сжатия заголовков и ускорения загрузки (требует SSL). ​ HSTS Sub-domains : (Опционально) Расширяет HSTS-политику на все поддомены (includeSubDomains), заставляя браузеры применять HTTPS ко всем *.domain.com. ​ После нажатия кнопки Save домен появится в списке и ресурс станет доступен по заданному домену Установка и настройка homepage в portainer Установка homepage Для установки homepage в docker через portainer , нам необходимо перейти в веб-интерфейс portainer http://:9000 В веб интерфейсе необходимо перейти в docker Слева или в центре экрана выбрать Stacks Слева сверху выбрать +Add stack В name указать название нашего контейнера homepage Ниже в поле для ввода кода Web editor , вводим код нашего docker-compose файла version: "3.8" services: homepage: image: ghcr.io/gethomepage/homepage:latest container_name: homepage ports: - "3000:3000" volumes: - /opt/homepage/config:/app/config # Конфиги (services.yaml, settings.yaml) - /opt/homepage/images:/app/public/images # Фоны и кастомные картинки - /opt/homepage/icons:/app/public/icons # Иконки сервисов - /opt/homepage/custom:/app/custom # Кастом CSS/JS - /var/run/docker.sock:/var/run/docker.sock:ro # Docker виджеты - /etc/localtime:/etc/localtime:ro # Часовой пояс environment: - HOMEPAGE_ALLOWED_HOSTS=:3000,<домен созданный в NPM>,localhost:3000 #ВНИМАТЕЛЬНО!!! restart: unless-stopped После ввода необходимо нажать кнопку Deploy the stack Если все в порядке, после установки у вас появится доступ к панели по адресу http://:3000 Настройку homepage рекомендую выполнять через официальную документацию документацию homepage dashoboard Установка Nginx Proxy Manager в lxc контейнер Nginx Proxy Manager (NPM)  — это удобный инструмент с веб-интерфейсом для управления обратным прокси на базе Nginx, который упрощает маршрутизацию трафика к сервисам в Docker, LXC или VM без редактирования конфигов вручную. Основные функции Поддерживает проксирование по доменам/поддоменам, автоматическое получение SSL-сертификатов Let's Encrypt, HTTP-аутентификацию, списки доступа (ACL) и блокировку IP. Позволяет настраивать перенаправления, кастомные страницы ошибок и потоки TCP/UDP через Streams. ​ После покупки домена и регистрации его у dns провайдеров у нас появляется возможность реализовать обратный прокси трафика по доменному имени, это позволит нам убрать отображение ip адресов из нашей homelab и реализовать доступ из интернета к веб панелям необходимых нам сервисов. Установка Nginx Proxy Manager Для установки NPM в lxc контейнер, нам понадобиться скрипт с сайта https://community-scripts.github.io/ProxmoxVE/scripts?id=nginxproxymanager А так же VPN подключение на роутере, для того что бы весь трафик в сети шел через VPN , некоторые пакеты в скрипте не доступны из России В консоли ноды необходимо ввести bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/nginxproxymanager.sh)" Сообщения о ошибках можно игнорировать, на все вопросы отвечаем Y Если все в порядке, после установки у вас появится доступ к панели по адресу http://:81 Настройка Nginx Proxy Manager После установки нам необходимо выполнить несколько обязательных вещей Проброс портов к npm В OPNsense нам необходимо перейти в раздел  Firewall , далее  NAT  и перейти в  Port Forward , в открывшемся окне нажать справа сверху на  + (add)   В открывшемся окне нужно заполнить поля Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTP; to: HTTP Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTP Description : NPM HTTP for Let's Encrypt Нажать кнопку  Save После этого нажимаем кнопку  Apply changes  и создаем следующее правило кнопкой  + (add) Interface : WAN TCP/IP Version : IPv4 Protocol : TCP Destination : WAN adress Destination port range : from: HTTPS; to: HTTPS Redirect target IP : Single host of Network, ниже ip используемого lxc контейнера Redirect target port : HTTPS Description : NPM HTTPS for Let's Encrypt Нажать кнопку  Save После этого нажимаем кнопку  Apply changes Покупка домена reg.ru Для настройки доменных имен в npm доменное имя необходимо купить по этому поводу уже написана  подробная статья После покупки доменного имени и указания его у ДНС провайдера потребуется время что бы запись появилась у ДНС резолверов, проверить это проще всего командой на любом клиенте сети с установленным линукс, я для этих целей создал отдельный тестовый  lxc контейнер dig <ваш домен> В выводе команды должен отобразится внешний ip адрес, запись проводится в течении 1-24 часов. Настройка сертификата Так как мы планируем использовать большое количество поддоменов нам не подходит вариант с обычным запросом сертификата через  certbot, reg.ru  позволяет запрашивать  wildcard  сертификат на домен и все поддомены, поэтому мы будем настраивать сразу его.  На сайте  reg.ru  заходишь в личный кабинет, далее Настройки API, запрашиваешь ключ API, его необходимо записать. В  NPM  нужно создать  wildcard-сертификат , во вкладке  Certificates  нужно нажать на кнопку  Let's Encrypt via DNS В открывшемся окне необходимо заполнить поля Domain Names : тут указываешь <твоедоменноеимя.ru> и <*.твоедоменноеимя.ru> DNS Provider : reg.ru Credentials File Content : dns_username=<твоя почта на reg.ru> dns_password= Propagation Seconds:  Лучше указать 600 так как сервера reg.ru могут работать не стабильно После этого необходимо нажать кнопку  Save  и подождать 1-5 минут. Настройка split dns Так как мы не хотим что бы все наши домены были доступны из сети, и для оптимизации подключения к доменам, нам необходимо настроить  split dns  на нашем  opnsense.  Технически можно реализовать эту технологию на любом локальном  dns  сервере, но в opnsense уже установлен  unbound dns , в котором есть необходимый нам функционал (ubound dns должен быть включен и настроен), для этого нам необходимо перейти во вкладку  Services , далее  Unbound DNS , далее  Overrides , в открывшемся окне в разделе  Hosts  нажать на  + В открывшемся окне необходимо заполнить поля Enabled : Галочка Host : * Domain : <твой домен> Type : A (IPv4 address) IP address : Description : NPM Далее нажать кнопку  Save  и  Apply Следующим шагом нужно указать Query forwarding для нашего сертификата, что бы избежать проблем с сертификатами в локальной сети при переходе по нашим доменам. Для этого необходимо перейти во вкладку  Query forwarding  нажать на  +  и в открывшемся окне заполнить поля Enabled : Галочка Domain : ocsp.int-x3.letsencrypt.org Server IP : 1.1.1.1 Далее нажать  Save  и  Apply Теперь необходимо перейти в панель  npm  и настроить там группу доступа которую мы будем указывать при создании доменов. Для этого необходимо перейти во вкладку  Acces list  нажать на кнопку  Add Acces list  и в открывшемся окне заполнить форму Во вкладке  Details  необходимо указать имя нашей группы Во вкладке  Rules  необходимо добавить подсети из которых у нас будет доступ к нашим доменам Создание и настройка поддомена Для создания поддомена нам необходимо перейти во вкладку Proxy Hosts и нажать на кнопку Add Proxy Host, в открывшемся окне необходимо заполнить поля Domain Names : Вводим необходимы домен или поддомен Scheme : В зависимости от панели к которой хотим открыть доступ выбираем http или https Forward Hostname / IP : ip нашего сервиса, Forward Port : Порт нашего сервиса Access List : в зависимости от того хотим ли что бы сервис работал только локально или был публичным выбираем созданную нами группу доступа или Publicly Accessible Cache Assets : (Опционально) Включает кэширование статических ресурсов (CSS, JS, изображения) на прокси-сервере для ускорения загрузки страниц, снижая нагрузку на backend-сервер.  ​ Block Common Exploits : (Опционально) Активирует встроенные правила Nginx для защиты от распространённых веб-атак (XSS, SQL-инъекции, кликджекинг) через заголовки безопасности вроде X-Frame-Options и Content-Security-Policy. ​ Websockets Support : (Опционально) Включает поддержку WebSocket-протокола (ws://, wss://), необходимую для real-time приложений вроде чатов, дашбордов или игр (например, Grafana, Homarr в homelab). Переходим во вкладку  SSL  в открывшемся окне необходимо заполнить поля SSL Certificate : Указываем созданный нами раннее сертификат Force SSL : (Опционально) Принудительно перенаправляет весь HTTP-трафик (порт 80) на HTTPS (порт 443) с помощью 301-редиректа, обеспечивая обязательное шифрование. ​ HSTS Enabled : (Опционально) Включает HTTP Strict Transport Security — браузеры запоминают домен как HTTPS-only на заданный период (max-age), предотвращая MITM-атаки и downgrade до HTTP. ​ HTTP/2 Support : (Опционально) Активирует протокол HTTP/2 для мультиплексирования запросов, сжатия заголовков и ускорения загрузки (требует SSL). ​ HSTS Sub-domains : (Опционально) Расширяет HSTS-политику на все поддомены (includeSubDomains), заставляя браузеры применять HTTPS ко всем *.domain.com. ​ После нажатия кнопки  Save  домен появится в списке и ресурс станет доступен по заданному домену Установка и настройка MTProto прокси для telegram на vps сервере через docker Установка docker на сервер curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh Создание каталога для конфигурационных файлов mkdir -p proxy-config Запуск docker контейнера docker run -d --name mtproto-proxy \ -p 8889:443 \ --restart=always \ -v proxy-config:/data \ telegrammessenger/proxy:latest Вместо 8889 можно указать любой не занятый порт Формирование ссылки для подключения docker logs mtproto-proxy В логах будет указана ссылка на подключение к MTProto формата  tg://proxy?server=&port=443&secret=<секретный код> При отправке ссылки в telegram нужно заменить порт на тот что вы указали при запуске контейнера в моем случае это 8889 Pangolin Pangolin — это селф-хост платформа для организации безопасного удаленного доступа к внутренним сервисам (по веб-протоколам, SSH, RDP и VNC) прямо через браузер. Она использует систему обратных туннелей, что позволяет публиковать локальные ресурсы в интернет без необходимости пробрасывать порты (Port Forwarding) на домашнем роутере. Если по простому то Pangolin  это ПО которое используется для доступа к ресурсам не напрямую, а через отдельную машину, в нашем случае VPS. Кратко, он работает как VPN то есть при обращении к нашему ресурсу, пользователь обращается сначала к VPS на которой установлен Pangolin , а далее уже через wireguard туннель обращается к ресурсу который мы хостим дома. Для чего это нужно? Первый вопрос который решает Pangolin,  это вопрос безопасности, в крайнем случае злоумышленники получат доступ к VPS, а не к машине дома, даже если что то нахулиганят, мы просто восстановим Pangolin  из бэкапа. Второй вопрос, это возможность использования multi-WAN, динамический ip, статический, какой провайдер или оператор, нас больше не будет интересовать, благодаря Pangolin  мы имеем возможность подключить балансировку к своему домашнему интернету и варианты подключения не ограничены. Установка Довольно подробно установка и первичная настройка описывается в ролике ProHomeLab ссылка для нас важно понимать, что если раннее мы использовали какой либо обратный прокси сервис, то отказываться от его использования не нужно, он все еще нужен для локального доступа к ресурсам, единственное изменение в логике заключается лишь в том что теперь публичные домены и сервисы будут работать через  Pangolin Инструкции по установке и первичной настройке ПО на других устройствах Инструкции по установке и первичной настройке ПО на других устройствах Установка приложений на телевизор hisense с vidaa 5,6,7,8 Энтузиасты устали от встроенного магазина приложений в телевизорах hisense и реализовали свой, ниже описана инструкция по установке приложений из этого магазина Доступ к магазину 1. Сменить DNS-сервер_1 на 195.58.50.236 Последовательно нажать: кнопку меню на пульту -> настройки -> сеть -> конфигурация сети -> настройки IP -> Вручную -> в поле DNS-сервер 1 прописать 195.58.50.236 , в поле DNS-сервер 2 оставить 0.0.0.0 -> Сохранить 2.  Открыть на ТВ браузер и вбить в адресную строку  vidaahub.com При загрузке в браузере появится окно соглашения, нажимаем continue Если  при открытии ссылки будет ошибка  202 как на фото ниже, нажмите ссылку на странице 3.  В открывшемся магазине приложений переместите курсор на приложение  Moovies (  в правом нижнем углу появятся цифры  5/60 ) 4.  Последовательно нажмите кнопки пульта дистанционного управления:  4124 Это разблокирует все доступные для установки приложения. В левом нижнем углу экрана появится сообщение об успешной разблокировке и Master Key из 6 цифр. Запишите  или сфотографируйте этот Master Key на смартфон. Он позволит вам получить доступ к альтернативному магазину приложений, даже если телевизор был перепрошит или сброшен до заводских настроек.  Достаточно будет просто набрать  Master Key после загрузки vidaahub.com в браузере.  Получить  Master Key в любое время можно  по зеленой кнопке на пульте ТВ или Get Log на странице. Теперь ВСЕГДА, когда вы зайдете на vidaahub.com , откроется полноценный магазин приложений и можно добавить страницу в закладки  браузера ТВ. 5. Выбираем нужное приложение, жмем ОК для установки. 6. Перезагружаем ТВ (выкл и снова вкл), НО ЛУЧШЕ отключить ТВ из розетки на несколько секунд   Обратите внимание! Чтобы приложения появились на вашем ТВ, необходимо выполнить его перезагрузку ! После в лаунчере нажать на иконку "More Apps " и смотреть под чертой "больше приложений" в  самом начале(для vidaa 6) или конце списка приложений(на vidaa 5). 7. После установки всего необходимого обязательно верните DNS включив в настройках сети DHCP (меню -> настройки -> сеть -> конфигурация сети -> настройки IP -> DHCP -> сохранить) Установка WireGuard, Entware и KVAS на роутер Keenetic Giga Entware - Терминал linux на роутере, нужен для запуска KVAS KVAS - Штука которая решает проблему со статической маршрутизацией на роутере, по сути имба, сам по себе Keenetic умеет отправлять часть трафика через VPN , но главная проблема кроется в том КАК это настраивается, из коробки можно настраивать статическую маршрутизацию , но для этого необходимо узнать ВСЕ ip адреса доменов к которым ты хочешь подключаться и каждый ip загрузить отдельно через шакальное меню роутера. Пакет KVAS делает всю работу за тебя, в него можно загрузить список ДОМЕНОВ и при работе он сам будет крутить вертеть ip этих доменов , при этом тебе ничего делать не нужно будет, он сам обновляет списки маршрутизации и ситуации где у тебя что-то отвалилось и тебе нужно куда-то лезть в роутере, просто не будет. Статья с гайдом для установки WireGuard клиента на роутер WireGuard VPN Статья с гайдом по настройке WireGuard клиента на роутере Настройка WireGuard VPN между двумя роутерами Keenetic Для работы KVAS необходимо установить Entware на роутер, это можно сделать на внутреннюю память и внешнюю, проблема в том что память может отвалиться, плюс в роутере ее довольно мало, поэтому рекомендуют использовать внешний накопитель, ниже статья с гайдом по настройке. Так же желательно установить ssh сервер в магазине keenetic , позволяет подключатся с помощью порта 222 сразу к Entware Установка системы пакетов репозитория Entware на USB-накопитель Установка самого KVAS , github довольно подробный, разработал его русский чел, поэтому гайды и в целом вся документация довольно понятная. Установка пакета Из этой статьи интересует ИСПОЛЬЗОВАНИЕ другой чел активно использует KVAS и ведет свой github, туда довольно часто подгружает списки актуальных заблокированных доменов. Одной командой, после установки KVAS можно загрузить большой список доменов. Он же снял довольно понятный ролик по маршрутизации и установке KVAS на роутер.