1. Установка Docker
sudo apt update
sudo apt install docker.io docker-compose
sudo systemctl enable --now docker
Проверьте установку:
docker --version
2. Скачивание и сборка ztncui-aio
git clone https://github.com/key-networks/ztncui-aio
cd ztncui-aio
(Опционально) Если нужно изменить версию NodeJS, откройте Dockerfile и поменяйте NODEJS_MAJOR.
Соберите образ:
docker build . -t keynetworks/ztncui:latest
3. Подготовка конфигурации
Создайте папки для данных:
sudo mkdir -p /mydata/ztncui /mydata/zt1
Создайте файл переменных окружения .env (или используйте denv из репозитория):
cp denv .env
nano .env # или любой текстовый редактор
Пример .env:
NODE_ENV=production
HTTPS_PORT=3443
ZTNCUI_PASSWD=MySecretPassword # замените на свой пароль
MYADDR=ваш_публичный_IP # например, 123.45.67.89
MYDOMAIN=ztncui.docker.test # или ваш домен
4. Запуск контейнера
docker run -d \
-p 9993:9993/udp \
-p 3443:3443 \
-p 3180:3180 \
-v /mydata/ztncui:/opt/key-networks/ztncui/etc \
-v /mydata/zt1:/var/lib/zerotier-one \
--env-file .env \
--name ztncui \
keynetworks/ztncui
Пояснение портов:
- 9993/udp — для ZeroTier.
- 3443 — веб-интерфейс (HTTPS).
- 3180 — HTTP (если нужен, например, для обратного прокси).
5. Проверка работы
docker logs ztncui
docker logs ztncui
Откройте веб-интерфейс в браузере:
https://ваш_IP:3443
6. Настройка ZeroTier
- Перейдите в веб-интерфейс и создайте сеть.
- Подключите устройства, используя
zerotier-cli join <NetworkID>.
🔄 Полная инструкция по обновлению и перезапуску ztncui
1️⃣ Останавливаем и удаляем старый контейнер
docker stop ztncui # Останавливаем контейнер
docker rm ztncui # Удаляем контейнер (данные останутся в /mydata/)
⚠️ Важно!
Мы не трогаем папки /mydata/ztncui и /mydata/zt1 — там хранятся все настройки и сети.
2️⃣ Проверяем обновления образа
Вариант A: Хочешь собрать образ из исходников
cd ~/ztncui-aio
git pull
docker build . -t keynetworks/ztncui:latest
Вариант B: Хочешь использовать готовый образ с Docker Hub
docker pull keynetworks/ztncui:latest
Пояснение
🔧 Вариант A: Сборка из исходников
cd ~/ztncui-aio
git pull
docker build . -t keynetworks/ztncui:latest
Плюсы:
- Актуальная версия
Ты получаешь самые свежие изменения из репозитория, включая возможные фиксы, которых ещё нет в официальном образе на Docker Hub. - Кастомизация
Можешь модифицироватьDockerfileили исходный код перед сборкой (например, изменить версию NodeJS, добавить свои скрипты). - Безопасность
Ты контролируешь весь процесс сборки и можешь проверить исходный код.
Минусы:
- Дольше
Сборка требует времени (установка зависимостей, компиляция). - Требует больше ресурсов
Нужныgit,npm, компиляторы и другие инструменты для сборки. - Возможны ошибки
Если в репозитории временно сломан код, сборка может не удаться.
📦 Вариант B: Готовый образ с Docker Hub
docker pull keynetworks/ztncui:latest
Плюсы:
- Быстро и просто
Образ уже собран и оптимизирован — просто скачиваешь и запускаешь. - Стабильность
Официальные образы обычно тестируются перед публикацией. - Не требует инструментов
Достаточно только Docker (не нужныgit,npmи т.д.).
Минусы:
- Возможное отставание
Образ на Docker Hub может обновляться реже, чем исходный код в репозитории. - Меньше контроля
Не можешь изменить этапы сборки или добавить свои компоненты. - Доверие к издателю
Нужно доверять автору образа (в данном случае — Key Networks).
3️⃣ Запускаем обновлённый контейнер
docker run -d \
-p 9993:9993/udp \
-p 3443:3443 \
-p 3180:3180 \
-v /mydata/ztncui:/opt/key-networks/ztncui/etc \
-v /mydata/zt1:/var/lib/zerotier-one \
--env-file .env \
--name ztncui \
keynetworks/ztncui
4️⃣ Проверяем, что всё работает
docker logs -f ztncui # Смотрим логи в реальном времени
В логах должно быть:
INFO success: ztone entered RUNNING state
INFO success: ztncui entered RUNNING state
- Настройка автозапуска (чтобы переживал перезагрузки):
docker update --restart unless-stopped ztncui
1. Проверь текущую политику перезапуска
docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" ztncui
Если выведет no — значит, автостарт отключен.
2. Включи автозапуск
docker update --restart unless-stopped ztncui