Publish Docker image / build-and-push (push) Successful in 1m39s
- Express проксирует на EVOBGP_API_URL с EVOBGP_API_TOKEN (без CORS) - фронт по умолчанию baseURL /api/evobgp; прямой режим через VITE или localStorage - Communities: подсказка про переменные контейнера; очистка URL включает прокси - DOCKER.md и Dockerfile.fast: документация переменных Made-with: Cursor
7.2 KiB
7.2 KiB
Docker Images
Этот проект предоставляет Docker образы для RouterOS Manager с двумя различными версиями интерфейса.
🏷️ Доступные теги
Основная версия (main branch)
git.shts.su/[repository]:latest- Стабильная версия с базовым интерфейсомgit.shts.su/[repository]:[commit-sha]- Версия с конкретным коммитом
Tabler версия (tabler branch)
git.shts.su/[repository]:tabler- Версия с современным Tabler UIgit.shts.su/[repository]:tabler-[commit-sha]- Tabler версия с конкретным коммитом
🚀 Запуск
Основная версия
docker run -d \
--name s3-lists-manager \
-p 3001:3001 \
-e ENCRYPTION_KEY=your-64-hex-character-key-here \
git.shts.su/[repository]:latest
Tabler версия
docker run -d \
--name s3-lists-manager-tabler \
-p 3001:3001 \
-e ENCRYPTION_KEY=your-64-hex-character-key-here \
git.shts.su/[repository]:tabler
🔄 Обновление
Основная версия
docker pull git.shts.su/[repository]:latest
docker stop s3-lists-manager
docker rm s3-lists-manager
docker run -d \
--name s3-lists-manager \
-p 3001:3001 \
-e ENCRYPTION_KEY=your-64-hex-character-key-here \
git.shts.su/[repository]:latest
Tabler версия
docker pull git.shts.su/[repository]:tabler
docker stop s3-lists-manager-tabler
docker rm s3-lists-manager-tabler
docker run -d \
--name s3-lists-manager-tabler \
-p 3001:3001 \
-e ENCRYPTION_KEY=your-64-hex-character-key-here \
git.shts.su/[repository]:tabler
🐳 Docker Compose
Создайте файл docker-compose.yml:
version: '3.8'
services:
s3-lists-manager:
image: git.shts.su/[repository]:latest
container_name: s3-lists-manager
ports:
- "3001:3001"
restart: unless-stopped
environment:
- NODE_ENV=production
- ENCRYPTION_KEY=${ENCRYPTION_KEY} # Обязательно! Используйте .env файл или secrets
# Прокси EvoBGP для UI (Communities / Domains / …) — без CORS в браузере:
# - EVOBGP_API_URL=http://evobgp:8080
# - EVOBGP_API_TOKEN=...
s3-lists-manager-tabler:
image: git.shts.su/[repository]:tabler
container_name: s3-lists-manager-tabler
ports:
- "3002:3001"
restart: unless-stopped
environment:
- NODE_ENV=production
- ENCRYPTION_KEY=${ENCRYPTION_KEY} # Обязательно! Используйте .env файл или secrets
Создайте файл .env в той же директории:
ENCRYPTION_KEY=your-64-hex-character-key-here
Запуск:
docker-compose up -d
🔧 Переменные окружения
| Переменная | Описание | По умолчанию | Обязательная |
|---|---|---|---|
NODE_ENV |
Окружение Node.js | production |
Нет |
PORT |
Порт для запуска сервера | 3001 |
Нет |
ENCRYPTION_KEY |
Ключ шифрования для IPSec паролей (64 hex символа) | - | Да |
EVOBGP_API_URL |
Базовый URL API EvoBGP для серверного прокси /api/evobgp (например http://evobgp:8080 или http://10.0.0.5:8080; при необходимости к пути добавляется /v1) |
- | Да, если используете интеграцию EvoBGP в UI |
EVOBGP_API_TOKEN |
Bearer-токен к API EvoBGP (только на сервере, не в браузере) | - | Да, если используете интеграцию EvoBGP в UI |
ENCRYPTION_KEY
Важно: ENCRYPTION_KEY является обязательным параметром для работы с IPSec паролями. Этот ключ используется для шифрования/дешифрования паролей, хранящихся в S3.
Генерация ключа:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Пример запуска с ENCRYPTION_KEY:
docker run -d \
--name s3-lists-manager \
-p 3001:3001 \
-e ENCRYPTION_KEY=your-64-hex-character-key-here \
git.shts.su/[repository]:latest
⚠️ Внимание: Используйте один и тот же ENCRYPTION_KEY для всех запусков контейнера. При изменении ключа старые зашифрованные пароли не смогут быть расшифрованы.
📊 Мониторинг
Просмотр логов
# Основная версия
docker logs s3-lists-manager
# Tabler версия
docker logs s3-lists-manager-tabler
Статистика контейнеров
docker stats s3-lists-manager s3-lists-manager-tabler
🔍 Отладка
Вход в контейнер
# Основная версия
docker exec -it s3-lists-manager /bin/bash
# Tabler версия
docker exec -it s3-lists-manager-tabler /bin/bash
Проверка процессов
docker exec s3-lists-manager ps aux
🏗️ Сборка локально
Основная версия
git checkout main
docker build -t s3-lists-manager:local .
Tabler версия
git checkout tabler
docker build -t s3-lists-manager-tabler:local .
📝 CI/CD
Автоматическая сборка
- Ветка
main: Автоматически создает образ с тегомlatest - Ветка
tabler: Автоматически создает образ с тегомtabler
Workflow файлы
.gitea/workflows/docker-publish.yml- Сборка основной версии.gitea/workflows/docker-publish-tabler.yml- Сборка Tabler версии
🔒 Безопасность
Проверка образа
docker scan git.shts.su/[repository]:latest
docker scan git.shts.su/[repository]:tabler
Запуск в изолированной сети
docker network create s3-lists-network
docker run -d \
--name s3-lists-manager \
--network s3-lists-network \
-p 3001:3001 \
git.shts.su/[repository]:latest
📈 Производительность
Ограничение ресурсов
docker run -d \
--name s3-lists-manager \
--memory=512m \
--cpus=0.5 \
-p 3001:3001 \
git.shts.su/[repository]:latest
Мониторинг ресурсов
docker stats --no-stream s3-lists-manager
🆘 Устранение неполадок
Проверка статуса контейнера
docker ps -a | grep s3-lists-manager
Перезапуск контейнера
docker restart s3-lists-manager
Очистка неиспользуемых образов
docker image prune -f
Примечание: Замените [repository] на актуальное имя вашего репозитория в Gitea.