# 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 UI - `git.shts.su/[repository]:tabler-[commit-sha]` - Tabler версия с конкретным коммитом ## 🚀 Запуск ### Основная версия ```bash 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 версия ```bash 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 ``` ## 🔄 Обновление ### Основная версия ```bash 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 версия ```bash 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`: ```yaml 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 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` в той же директории:** ```bash ENCRYPTION_KEY=your-64-hex-character-key-here ``` Запуск: ```bash docker-compose up -d ``` ## 🔧 Переменные окружения | Переменная | Описание | По умолчанию | Обязательная | |------------|----------|--------------|--------------| | `NODE_ENV` | Окружение Node.js | `production` | Нет | | `PORT` | Порт для запуска сервера | `3001` | Нет | | `ENCRYPTION_KEY` | Ключ шифрования для IPSec паролей (64 hex символа) | - | **Да** | ### ENCRYPTION_KEY **Важно**: `ENCRYPTION_KEY` является обязательным параметром для работы с IPSec паролями. Этот ключ используется для шифрования/дешифрования паролей, хранящихся в S3. **Генерация ключа:** ```bash node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ``` **Пример запуска с ENCRYPTION_KEY:** ```bash 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` для всех запусков контейнера. При изменении ключа старые зашифрованные пароли не смогут быть расшифрованы. ## 📊 Мониторинг ### Просмотр логов ```bash # Основная версия docker logs s3-lists-manager # Tabler версия docker logs s3-lists-manager-tabler ``` ### Статистика контейнеров ```bash docker stats s3-lists-manager s3-lists-manager-tabler ``` ## 🔍 Отладка ### Вход в контейнер ```bash # Основная версия docker exec -it s3-lists-manager /bin/bash # Tabler версия docker exec -it s3-lists-manager-tabler /bin/bash ``` ### Проверка процессов ```bash docker exec s3-lists-manager ps aux ``` ## 🏗️ Сборка локально ### Основная версия ```bash git checkout main docker build -t s3-lists-manager:local . ``` ### Tabler версия ```bash 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 версии ## 🔒 Безопасность ### Проверка образа ```bash docker scan git.shts.su/[repository]:latest docker scan git.shts.su/[repository]:tabler ``` ### Запуск в изолированной сети ```bash 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 ``` ## 📈 Производительность ### Ограничение ресурсов ```bash docker run -d \ --name s3-lists-manager \ --memory=512m \ --cpus=0.5 \ -p 3001:3001 \ git.shts.su/[repository]:latest ``` ### Мониторинг ресурсов ```bash docker stats --no-stream s3-lists-manager ``` ## 🆘 Устранение неполадок ### Проверка статуса контейнера ```bash docker ps -a | grep s3-lists-manager ``` ### Перезапуск контейнера ```bash docker restart s3-lists-manager ``` ### Очистка неиспользуемых образов ```bash docker image prune -f ``` --- **Примечание**: Замените `[repository]` на актуальное имя вашего репозитория в Gitea.