Установка Ztncui-aio (ZeroTier) на сервер

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

  1. Перейдите в веб-интерфейс и создайте сеть.
  2. Подключите устройства, используя 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

Плюсы:

  1. Актуальная версия
    Ты получаешь самые свежие изменения из репозитория, включая возможные фиксы, которых ещё нет в официальном образе на Docker Hub.
  2. Кастомизация
    Можешь модифицировать Dockerfile или исходный код перед сборкой (например, изменить версию NodeJS, добавить свои скрипты).
  3. Безопасность
    Ты контролируешь весь процесс сборки и можешь проверить исходный код.

Минусы:

  1. Дольше
    Сборка требует времени (установка зависимостей, компиляция).
  2. Требует больше ресурсов
    Нужны git, npm, компиляторы и другие инструменты для сборки.
  3. Возможны ошибки
    Если в репозитории временно сломан код, сборка может не удаться.

📦 Вариант B: Готовый образ с Docker Hub

docker pull keynetworks/ztncui:latest

Плюсы:

  1. Быстро и просто
    Образ уже собран и оптимизирован — просто скачиваешь и запускаешь.
  2. Стабильность
    Официальные образы обычно тестируются перед публикацией.
  3. Не требует инструментов
    Достаточно только Docker (не нужны git, npm и т.д.).

Минусы:

  1. Возможное отставание
    Образ на Docker Hub может обновляться реже, чем исходный код в репозитории.
  2. Меньше контроля
    Не можешь изменить этапы сборки или добавить свои компоненты.
  3. Доверие к издателю
    Нужно доверять автору образа (в данном случае — 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
  1. Настройка автозапуска (чтобы переживал перезагрузки):
docker update --restart unless-stopped ztncui

1. Проверь текущую политику перезапуска

docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" ztncui

Если выведет no — значит, автостарт отключен.

2. Включи автозапуск

docker update --restart unless-stopped ztncui

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *