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
245 lines
7.2 KiB
Markdown
245 lines
7.2 KiB
Markdown
# 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
|
||
# Прокси 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` в той же директории:**
|
||
```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 символа) | - | **Да** |
|
||
| `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.
|
||
|
||
**Генерация ключа:**
|
||
```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. |