# Инструкции по установке и первичной настройке ПО на серверах

Актуальные инструкции по установке и первичной настройке ПО на серверах

# Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh

#### **Подключение через UI proxmox**

##### **Подключение к ноде**

В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее перейти во вкладку **Shell**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/e8fimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/e8fimage.png)

##### **Подключение к LXC контейнеру**

В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее выбрать необходимый LXC контейнер, и перейти во вкладку **Console**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/v6ximage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/v6ximage.png)

##### **Подключение к виртуальной машине**

В интерфейсе proxmox в левом меню необходимо выбрать ноду(pve) далее выбрать необходимую виртуальную машину, и перейти во вкладку **Console**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/YWGimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/YWGimage.png)

#### **Подключение через ssh клиент**

В proxmox, lxc контейнерах и виртуальных машинах уже предустановлен пакет openssh-server но для подключения с root правами нам необходимо отредактировать файл **sshd\_config**

##### **Редактирование файла sshd\_config**

Для редактирования файла необходимо подключиться с помощью одного из способов выше

```bash
nano /etc/ssh/sshd_config
```

В редакторе необходимо добавить или раскомментировать строки

```bash
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

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/bRQimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/bRQimage.png)

**login as:** вводим **root** нажимаем **ENTER** далее вводим пароль, при вводе символы не отображаются, после ввода пароля нажимаем **ENTER**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/rvPimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/rvPimage.png)

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/yZQimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/yZQimage.png)

##### **Подключение с помощью cmd windows**

В консоли **CMD** нужно ввести команду **ssh root@&lt;ip сервера&gt;** и нажать **ENTER**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/SvPimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/SvPimage.png)

Консоль запросит **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 (&lt;название ноды&gt;)** и перейдите во вкладку **CT Templates**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/UkAimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/UkAimage.png)

Нажмите на кнопку **Templates**, в открывшемся меню выберите необходимый образ и нажмите на кнопку **Download**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/n3Qimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/n3Qimage.png)


#### Создание LXC контейнера

После того как вы скачали необходимый **Templates** можете приступать к созданию **LXC** контейнера

Справа сверху в интерфейсе proxmox нажмите на **Create CT**


##### General

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/KGvimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/KGvimage.png)

**Node:** Выбор ноды (сервера) в кластере Proxmox, на котором разместится контейнер.<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**CT ID:** Уникальный числовой идентификатор контейнера (100-999), используется для ссылок и команд.<span class="inline-flex" data-state="closed">​</span>

**Hostname:** Имя хоста контейнера, отображаемое в системе и сети (алфавитно-цифровое).<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**Unprivileged container:** Включение делает контейнер непривилегированным — процессы маппятся на непривилегированные UID/GID хоста для повышенной безопасности.<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**Nesting:** Разрешает запуск вложенных контейнеров (LXC/Docker внутри LXC), полезно для сложных setup'ов.<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**Add to HA:** Включение добавляет контейнер в High Availability кластер для автоматического перезапуска на другом узле при сбое.<span aria-label="Глава 38. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**Resource Pool:** Привязка к пулу ресурсов — логической группе контейнеров/VM для удобного управления (требует предварительного создания).<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**Password / Confirm password:** Установка root-пароля для консольного доступа к контейнеру.<span aria-label="Глава 31. Создание и настройка контейнера LXC" class="inline-flex" data-state="closed">​</span>

**SSH public key(s):** Добавление публичных SSH-ключей для безпарольного входа под root или другими пользователями.


##### Template

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/HBtimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/HBtimage.png)

**Storage:** Выбор диска на котором находятся Template

**Template:** Образ который будет использоваться при установке контейнера


##### Disks

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/Y4Bimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/Y4Bimage.png)

**Storage:** Дисковое пространство на котором будет храниться контейнер

**Disk size (GiB):** Объем выделяемый под контейнер

##### CPU

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/Rlcimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/Rlcimage.png)

**CPU:** Количество выделяемых виртуальных ядер процессора

##### Memory

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/BFTimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/BFTimage.png)

**Memory (MiB):** Объем выделяемой оперативной памяти

**Swap (MiB):** Объем выделяемой памяти на случай если **Memory** не хватит

##### Network

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/CyQimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/CyQimage.png)

**Name:** название сетевого интерфейса которое будет отображаться в lxc

**MAC address:** MAC адрес сетевого интерфейса

**Bridge:** Виртуальный интерфейс в самом proxmox

**VLAN Tag:** VLAN к которому будет привязан интерфейс

**Firewall:** внутренний межсетевой экран proxmox

**IPv4:** при выборе static необходимо указать статический ip и шлюз (как правило ip роутера), при выборе dhcp ip выдаст dhcp сервер

**IPv6:** не используется

##### DNS

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/Xfoimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/Xfoimage.png)

**DNS domain:** dns сервер

**DNS servers:** dns сервер

##### Confirm

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/Hgzimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/Hgzimage.png)

В этом разделе можно сверить все выбранные раннее настройки

**Start after created:** Запуск сразу после создания

После заполнения форм нужно нажать кнопку **Finish**

# Установка и настройка wireguard и WGDashboard в lxc контейнере

Для удаленного подключения и свободного доступа к сервисам в локальной сети, необходим стабильный **vpn тунель**, одним из предпочтительных вариантов в **homelab** является использование протокола **wireguard** отличительной особенностью которого является его легковестность и скорость настройки, что позволит нам использовать его в **lxc контейнере**.  
Для удобства управления подключениями и последующей настройки подключения мы так же установим **WGDashboard**.

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/pAVimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/pAVimage.png)

#### Установка wireguard+WGDashboard

Для установки нам потребуется скрипт с сайта [https://community-scripts.github.io/ProxmoxVE/scripts?id=wireguard](https://community-scripts.github.io/ProxmoxVE/scripts?id=wireguard)

В консоли ноды необходимо ввести

```
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/wireguard.sh)"
```

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/wFWimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/wFWimage.png)

Выбираем **default install**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/sVuimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/sVuimage.png)

При запросе **Would you like to add WGDashboard? &lt;y/N&gt;** отвечаем **y**

Установка **WGDashboard** занимает довольно много времени

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/yuAimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/yuAimage.png)

После успешной установки появится адрес по которому доступен web-интерфейс **http://&lt;ip контейнера&gt;:10006**

#### Настройка WGDashboard

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

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/IvVimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/IvVimage.png)

**Логин**: admin

**Пароль**: admin

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/NzUimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/NzUimage.png)

Необходимо создать новую УЗ

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/uNqimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/uNqimage.png)

Сервис предлагает настроить двуфакторную аутентификацию это опционально поэтому для того что бы пропустить этот шаг необходимо нажать на **I dont need MFA**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/9NDimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/9NDimage.png)

После создания УЗ мы попадаем на главную страницу **web-интерфейса**, в настройках можно указать Русский язык, но для первичной настройки нам нужно создать клиента для подключения и выполнить первичную настройку.

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/3lnimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/3lnimage.png)

Слева необходимо перейти во вкладку **settings** далее **Peers Settings**

(Опционально) В **dns** указать **ip локального dns сервера**, актуально при использовании **ubound dns/split dns/adguard/pihole**

В **Peer Remote** **Endpoint** указать внешний ip адрес (узнать можно на сайте 2ip.ru)

Далее необходимо вернуться на вкладку **home,** ТК скрипт установил **wireguard** в конфигурации уже указан **wg0**, нажимаем на него.

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/IRjimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/IRjimage.png)

Справа сверху необходимо начать на кнопку включения, для того что бы конфигурация стала активной, далее необходимо нажать на кнопку **peer** для того что бы добавить клиента

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/Z5fimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/Z5fimage.png)

В настройках клиента необходимо указать только **name** и после этого нажать на **add**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/koLimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/koLimage.png)

Внизу страницы появится клиент при нажатии на . . . появятся варианты для подключения

#### Открыть порт 51820 в OPNsense

После установки и настройки wireguard и настройки клиента на необходимом устройстве, необходимо открыть порт 51820 в opnsense

Для начала необходимо настроить **NAT**, перенаправление **внешнего порта** к **ip адресу** внутри локальной сети, для этого необходимо перейти во вкладку **firewall** далее **NAT** далее **port forward** и нажать на **+**

**[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/YFXimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/YFXimage.png)**

Далее необходимо выполнить такие настройки

**Interface**: WAN

**Protocol**: UDP

**Destination**: WAN address

**Destination port range**: from 51820 to 51820

**Redirect target IP**: Single host or Network &lt;ip lxc контейнера&gt;

**Redirect target port**: 51820

**Description**: wireguard (опционально)

Далее нажать **Save** и **Apply settings**

Далее необходимо перейти во вкладку **rules** и перейти к интерфейсу **wan** в открывшемся окне нажать **+**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/Aquimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/Aquimage.png)

Далее необходимо выполнить такие настройки

**Interface**: WAN

**Direction**: in

**Protocol**: UDP

**Source**: any

**Destination**: Single host or Network &lt;ip lxc контейнера&gt;

**Destination port range**: from 51820 to 51820

**Description**: wireguard (опционально)

Далее нажать **Save** и **Apply settings**

# Установка и первичная настройка BookStack в LXC на Proxmox

**BookStack** — простая open-source платформа для создания структурированной документации и вики.<span class="inline-flex" data-state="closed">​</span>

Организует знания по принципу **полки** **→** **книги → главы → страницы** с WYSIWYG-редактором и поддержкой Markdown. Идеальна для командной работы, технической документации, инструкций и баз знаний.

**Ключевые возможности:**

- Иерархическая структура контента
- Поиск по всем уровням
- Роли и права доступа
- Экспорт в PDF/HTML
- Версионность изменений
- Вложения и изображения

[https://www.bookstackapp.com/](https://www.bookstackapp.com/)

##### **Установка BookStack**

BookStack предполагает использование в рамках docker контейнера, но так как у меня установлен гипервизор proxmox я имею возможность создания lxc контейнеров и запуска на них docker приложений c помощью node.js  
Для установки нам необходимо попасть в консоль необходимой ноды [с помощью ssh](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/podkliucenie-k-node-konteineru-ili-virtualnoi-masine-proxmox-cerez-ssh "Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh")

Комьюнити proxmox довольно большое поэтому энтузиастами был сформирован довольно большой список скриптов для установки ПО, мне повезло и скрипт для BookStack был на сайте   
[https://community-scripts.github.io/ProxmoxVE/scripts?id=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**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/GY1image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/GY1image.png)

После завершения установки появится ip адрес для подключения по http в локальной сети для теста вводим в браузере

http://&lt;ip из консоли&gt;

Предустановленный пользователь:

<div class="text-sm" id="bkmrk-username%3A%C2%A0admin%40admi">Username: <button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-secondary/80 py-1 px-3 rouded-xs">admin@admin.com</button></div><div class="text-sm" id="bkmrk-password%3A%C2%A0password">Password: <button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-secondary text-secondary-foreground hover:bg-secondary/80 py-1 px-3 rouded-xs">password</button></div><div class="text-sm" id="bkmrk--1"></div>##### **Первичная настройка BookStack**

После установки нам необходимо подключиться к lxc контейнеру [через ssh](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/podkliucenie-k-node-konteineru-ili-virtualnoi-masine-proxmox-cerez-ssh "Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh") в консоли необходимо ввести

```
nano /opt/bookstack/.env
```

В открывшемся файле необходимо отредактировать или добавить строки

```bash
# Русский язык
APP_LANG=ru

# Отключаем автодетект языка для гостей (опционально)
APP_AUTO_LANG_PUBLIC=false

# Указываем URL приложения если сделали его в npm (опционально)
APP_URL=https://<твой домен>
```

После сохранения файла и перезагрузки контейнера, можно переходить на http://&lt;ip контейнера&gt; или https://&lt;твой домен&gt;

# Установка и настройка TorrServer в lxc контейнере и просмотр кино и сериалов через lampa

TorrServer - сервис для онлайн просмотра торрент файлов, в отличии от Jellyfin, для просмотра, контент не нужно скачивать, а трансляция идет напрямую из torrent сети.

#### Установка TorrServer

Для установки необходимо создать [lxc контейнер](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/sozdanie-lxc-konteinera-proxmox "Создание LXC контейнера proxmox") с настройками

- OS: Debian 12
- CPU: 2 cores
- RAM: 2048 MiB
- Disk: 16-32 ГБ
- Swap: 512 MiB

После подключения к lxc контейнеру через ssh необходимо перейти в [GitHub разработчика TorrServer](https://github.com/YouROK/TorrServer/releases/) и уточнить ссылку на актуальную версию приложения, после этого в консоли lxc контейнера ввести:

```bash
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://&lt;ip lxc контейнера&gt;: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

##### Добавление парсера

Установите публичные парсеры для поиска фильмов/сериалов.

- Настройки → Расширения → Добавить: [<span class="text-box-trim-both">https://lampame.github.io/main/pubtorr.js</span>](https://lampame.github.io/main/pubtorr.js)<span aria-label="Просмотр и Загрузка торрентов в приложении Lampa" class="inline-flex" data-state="closed">​</span>
- Настройки → Парсеры → Выберите "Каталог парсеров" (Jacred.xyz или аналог — зелёный статус).

##### Настройка TorrServer в lampa

Настройки → TorrServer → укажите &lt;ip lxc контейнера&gt;: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
```

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/image.png)

# Установка и настройка 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](https://community-scripts.github.io/ProxmoxVE/scripts?id=vaultwarden)

А так же настроенный **VPN** на роутере, для того что бы включить **VPN** соединение на всей сети, это необходимо так как некоторые пакеты в скрипте **не доступны из России**

В консоли ноды необходимо ввести

```bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/vaultwarden.sh)"
```

Во время установки могут возникнуть ошибки по конфигурации **ipv4**, скрипт не пройдет проверки, сообщение о ошибках можем игнорировать, на все вопросы отвечает **Y**

<p class="callout info">Установка может занять довольно много времени</p>

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

#### Настройка

Далее необходимо сгенерировать **admin token**, он понадобится при настройке файла конфигурации, сделать это можно в тестовом или текущем контейнере командой

```
openssl rand -base64 48
```

**<span class="token token">Вывод необходимо записать</span>**

Далее необходимо отредактировать файл конфигурации

```
/opt/vaultwarden/.env
```

Файл конфигурации необходимо привести к виду

```
ADMIN_TOKEN='<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 сертификатом**, поэтому нам необходимо выдать для **&lt;ip lxc контейнера&gt;:8000** домен через любой обратный прокси.

# Установка и настройка MCSManager для minecraft сервера в lxc контейнере+создание srv записи на reg.ru

#### Создание LXC контейнера

[Инструкция по созданию lxc контейнера](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/sozdanie-lxc-konteinera-proxmox "Создание LXC контейнера proxmox")

**OC**: debian 12  
**CPU**: 2-4 cores  
**RAM**: 4096MB+  
**Root Disk**: 20GB

#### Установка Java 21

```bash
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
 
```

<div class="w-full md:max-w-[90vw]" id="bkmrk-"><div class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded-lg font-mono text-sm font-normal bg-subtler"><div class="-mt-xl"><div></div></div></div></div>#### Установка 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://&lt;ip lxc контейнера&gt;:23333

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/xyIimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/xyIimage.png)

После перехода в 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**: &lt;IP lxc контейнера&gt;  
**Redirect target port**: 25565  
**Description**: Minecraft 24848  
**Save** → **Apply Changes**

**Rules** в **Firewall** создастся автоматически

#### Cоздание srv записи на reg.ru

Для комфортного подключения к игровому серверу, мы можем использовать домен, для этого необходимо создать srv запись у dns регистратора, в моем случае это **reg.ru**

Для этого необходимо на сайте **reg,ru** перейти в настойки далее **домены**, выбрать **ваш домен** и перейти в **DNS-серверы и управление зоной,** далее добавить новую **ресурсную запись**, тип **А**

В **subdomain** указать то что будет указано перед вашим основным доменом **&lt;subdomain&gt;.&lt;ваш домен&gt;** будет использоваться для подключения к серверу.

После заполнения формы необходимо нажать кнопку **Готово**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/qaDimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/qaDimage.png)

Далее нам необходимо создать новую ресурсную запись на этот раз необходимо выбрать тип **SRV**

В форме необходимо заполнить следующие поля

**Service**: &lt;\_название сервиса&gt;.&lt;\_tcp&gt;.&lt;созданный раннее subdomain&gt;

**Priority**: 0

**Weight**: 0

**Port**: &lt;Порт открытый в opnsense&gt;

**Target**: &lt;Созданный раннее subdomain записанный целиком&gt;.

После заполнения формы необходимо нажать кнопку **Готово**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/scaled-1680-/yXzimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2026-01/yXzimage.png)

Через 15-30 минут DNS записи обновятся и появится возможность подключится к серверу через домен

# Установка и настройка homepage в lxc контейнер

#### Установка

Для установки homepage в lxc контейнер, нам понадобится скрипт с сайта [https://community-scripts.github.io/ProxmoxVE/scripts?id=homepage](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://&lt;ip lxc контейнера с portain&gt;:3000**

#### Настройка

Рекомендую настроить подключение [через ssh](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/podkliucenie-k-node-konteineru-ili-virtualnoi-masine-proxmox-cerez-ssh "Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh") так как для настройки понадобится редактировать большое количество файлов и загружать материалы через **sftp**

После подключения необходимо отредактировать файл конфигурации

В консоли lxc контейнера

```
nano /opt/homepage/.env
```

Файл необходимо привести к виду

```
HOMEPAGE_ALLOWED_HOSTS=localhost:3000,<ip lxc контейнера>:3000,<поддомен если используете обратный прокси>
```

Отличительной особенностью от версии с докером является то что все медиа файлы располагаются в каталоге

```
/opt/homepage/public/
```

Дальнейшую настройку homepage рекомендую выполнять через [официальную документацию документацию homepage dashoboard](https://gethomepage.dev/configs/)

# 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. Базовая настройка системы

```bash
apt update && apt upgrade -y
apt install -y sudo mc curl wget ca-certificates
```

### 3. Установка GUI и VNC

```bash
apt install -y xfce4 xfce4-goodies x11vnc xvfb fluxbox git websockify
```

Fluxbox — лёгкий оконный менеджер, подходит для этого сценария.

### 4. Установка noVNC

```bash
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, подмени имя на реальное из релиза.

```bash
mkdir -p /opt/nekobox
cd /opt/nekobox
wget https://example.com/path/to/NekoBox.AppImage -O nekobox
chmod +x nekobox
```

Проверь ручной запуск (после старта Xvfb):

```bash
export DISPLAY=:1
cd /opt/nekobox
./nekobox &
```

### 6. Скрипт автозапуска GUI + VNC + noVNC + Nekobox

Создай файл /root/start.sh (или отредактируй, если уже существует):

```bash
nano /root/start.sh
```

Вставь содержимое:

```bash
#!/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
```

Сделай файл исполняемым:

```bash
chmod +x /root/start.sh
```

Добавь автозапуск через cron:

```bash
crontab -e
```

Добавь строку:

```bash
@reboot /root/start.sh
```

Перезапусти контейнер:

```bash
reboot
```

### 7. Доступ через браузер и работа с Nekobox

После перезапуска открой в браузере:

```text
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 контейнер](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/sozdanie-lxc-konteinera-proxmox "Создание LXC контейнера proxmox")

2 vCPU, 2 ГБ RAM, 20+ ГБ диска.

ОС: Debian 12/13 или Ubuntu 22.04 LTS.

##### Установка Docker и compose

Подключаемся к созданному контейнеру через [ssh](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/podkliucenie-k-node-konteineru-ili-virtualnoi-masine-proxmox-cerez-ssh "Подключение к ноде, контейнеру или виртуальной машине proxmox через ssh")

Ставим зависимости

```bash
apt update
apt install -y ca-certificates curl gnupg lsb-release
```

Добавляем официальный репозиторий Docker

```bash
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://&lt;ip lxc контейнера&gt;:81**

Стандартный логин:

**Email**: admin@example.com

**Password**: changeme

Если все в порядке, после установки у вас появится доступ к панели по адресу **http://&lt;ip lxc контейнера с portain&gt;: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**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/fc0image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/fc0image.png)

После этого нажимаем кнопку **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**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/z64image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/z64image.png)

После этого нажимаем кнопку **Apply changes**

##### Покупка домена reg.ru

Для настройки доменных имен в npm доменное имя необходимо купить по этому поводу уже написана [подробная статья](https://habr.com/ru/articles/716002/)

После покупки доменного имени и указания его у ДНС провайдера потребуется время что бы запись появилась у ДНС резолверов, проверить это проще всего командой на любом клиенте сети с установленным линукс, я для этих целей создал отдельный тестовый [lxc контейнер](https://bookstack.redpunk.net/books/ispolzuemoe-po-i-instrukcii-po-ego-ustanovke/page/sozdanie-lxc-konteinera-proxmox "Создание LXC контейнера proxmox")

<div id="bkmrk-dig-%3C%D0%B2%D0%B0%D1%88-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%3E"><div class="cm-editor ͼ1 ͼ2 ͼ4 ͼ1r"><div class="cm-scroller" tabindex="-1"><div aria-hidden="true" class="cm-gutters cm-gutters-before"><div class="cm-gutter cm-lineNumbers"><div class="cm-gutterElement"><span style="font-family: 'Lucida Console', 'DejaVu Sans Mono', 'Ubuntu Mono', Monaco, monospace;">dig &lt;ваш домен&gt;</span></div></div></div></div></div></div>В выводе команды должен отобразится внешний ip адрес, запись проводится в течении 1-24 часов.

##### Настройка сертификата

Так как мы планируем использовать большое количество поддоменов нам не подходит вариант с обычным запросом сертификата через **certbot, reg.ru** позволяет запрашивать **wildcard** сертификат на домен и все поддомены, поэтому мы будем настраивать сразу его.

На сайте **reg.ru** заходишь в личный кабинет, далее Настройки API, запрашиваешь ключ API, его необходимо записать.

В **NPM** нужно создать **wildcard-сертификат**, во вкладке **Certificates** нужно нажать на кнопку **Let's Encrypt via DNS**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/oqIimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/oqIimage.png)

В открывшемся окне необходимо заполнить поля  
**Domain Names**: тут указываешь &lt;твоедоменноеимя.ru&gt; и &lt;\*.твоедоменноеимя.ru&gt;

**DNS Provider**: reg.ru

**Credentials File Content**:  
dns\_username=&lt;твоя почта на reg.ru&gt;  
dns\_password=&lt;api колюч&gt;

**Propagation Seconds:** Лучше указать 600 так как сервера reg.ru могут работать не стабильно

После этого необходимо нажать кнопку **Save** и подождать 1-5 минут.

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/rn1image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/rn1image.png)

##### Настройка split dns

Так как мы не хотим что бы все наши домены были доступны из сети, и для оптимизации подключения к доменам, нам необходимо настроить **split dns** на нашем **opnsense.** Технически можно реализовать эту технологию на любом локальном **dns** сервере, но в opnsense уже установлен **unbound dns**, в котором есть необходимый нам функционал (ubound dns должен быть включен и настроен), для этого нам необходимо перейти во вкладку **Services**, далее **Unbound DNS**, далее **Overrides**, в открывшемся окне в разделе **Hosts** нажать на **+**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/Fs8image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/Fs8image.png)

В открывшемся окне необходимо заполнить поля

**Enabled**: Галочка

**Host**: \*

**Domain**: &lt;твой домен&gt;

**Type**: A (IPv4 address)

**IP address**: &lt;ip адрес lxc контейнера&gt;

**Description**: NPM

Далее нажать кнопку **Save** и **Apply**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/WG9image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/WG9image.png)

Следующим шагом нужно указать Query forwarding для нашего сертификата, что бы избежать проблем с сертификатами в локальной сети при переходе по нашим доменам.

Для этого необходимо перейти во вкладку **Query forwarding** нажать на **+** и в открывшемся окне заполнить поля

**Enabled**: Галочка

**Domain**: ocsp.int-x3.letsencrypt.org

**Server IP**: 1.1.1.1

Далее нажать **Save** и **Apply**

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/W7Uimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/W7Uimage.png)

Теперь необходимо перейти в панель **npm** и настроить там группу доступа которую мы будем указывать при создании доменов.

Для этого необходимо перейти во вкладку **Acces list** нажать на кнопку **Add Acces list** и в открывшемся окне заполнить форму

Во вкладке **Details** необходимо указать имя нашей группы  
Во вкладке **Rules** необходимо добавить подсети из которых у нас будет доступ к нашим доменам

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/HUZimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/HUZimage.png)

#### Создание и настройка поддомена

Для создания поддомена нам необходимо перейти во вкладку 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).

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/qo2image.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/qo2image.png)

Переходим во вкладку **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.  
​

[![image.png](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/scaled-1680-/O8Qimage.png)](https://bookstack.redpunk.net/uploads/images/gallery/2025-12/O8Qimage.png)

После нажатия кнопки **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 &gt; Firmware &gt; Plugins &gt; os-mdns-repeater &gt; Install**.

**Services &gt; mDNS Repeater**: Enable, Interfaces: &lt;Подсеть с HA&gt;,&lt;LAN&gt;.

##### Итог

После проведенных действий в 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
```