Английский|Упрощенный китайский|Традиционный китайский|испанский|Французский|немецкий|японский|португальский|Русский|корейский|арабский|хинди
Docker Dashboard with real-time monitoring (Dark Theme)
Real-time resource monitoring and container status (Light Theme)
- JWT-аутентификация со сроком действия 24 часа.
- Управление доступом на основе ролей (суперадминистратор/администратор/менеджер/пользователь/только для чтения)
- Шифрование пароля (SHA-256)
- Ограничение скорости и заголовки безопасности
- Полное ведение журнала аудита
- Поддержка OAuth 2.0 (Google, GitHub)
- MySQL 8.0+ (по умолчанию)
- PostgreSQL 15+
- МонгоБД 5.0+
- Автоматическая миграция схемы
- Пул соединений
- Контейнеры: Запуск, остановка, перезапуск, удаление, создание, проверка.
- Изображения: Извлекать, удалять, проверять, искать в реестрах.
- Сети: Создание, удаление, подключение/отключение контейнеров.
- Объемы: Создание, удаление, проверка, обрезка
- Терминал: Доступ к оболочке в реальном времени с помощью xterm.js.
- Журналы: Потоковая передача журналов контейнера в реальном времени.
- Статистика: Мониторинг использования ресурсов в реальном времени (ЦП, память, сеть, ввод-вывод).
- Управление несколькими хостами Docker
- Локальные и удаленные демоны Docker
- SSH и TCP-соединения
- Быстрое переключение хоста
- Темная/светлая тема
- Адаптивный дизайн
- Многоязычная поддержка (более 10 языков)
- Сочетания клавиш
- Обновления в реальном времени
Самый быстрый способ запустить SteerDock:
# 1. Generate secure passwords and configuration
./generate-passwords.sh # Linux/macOS
# or
.\generate-passwords.ps1 # Windows
# 2. Start all services with Docker Compose
docker compose up -d
# 3. Wait for services to start (about 30 seconds)
docker compose logs -f steerdock
# 4. Access SteerDock
# Open: http://localhost:5151Вход по умолчанию:
- Имя пользователя:
superadmin - Пароль:
superadmin123
# Linux/macOS
./start-dev.sh
# Windows
.\start-dev.ps1Доступ:
- Интерфейс: http://localhost:5151 (с горячей перезагрузкой)
- Серверная часть: http://localhost:8383
# Linux/macOS
./start-prod.sh
# Windows
.\start-prod.ps1Доступ:
- Интерфейс: http://localhost:5151 (обслуживается серверной частью)
- Серверный API: http://localhost:8383/api/v1.
# Windows only
.\win-desktop.ps1При этом создается автономное настольное приложение с:
- Серверная служба работает в фоновом режиме
- Настольное приложение с графическим интерфейсом (SteerDock-frontend.exe)
- Доступ: Окно настольного приложения.
# 1. Generate configuration and passwords
./generate-passwords.sh # Linux/macOS
# or
.\generate-passwords.ps1 # Windows
# 2. Start all services (MySQL + Redis + SteerDock)
docker compose up -d
# 3. Check service status
docker compose ps
# 4. View logs
docker compose logs -f steerdock
# 5. Access application
# Frontend: http://localhost:5151 (served by backend)
# Backend API: http://localhost:8383/api/v1Включенные услуги:
- База данных MySQL (порт 3306)
- Кэш Redis (порт 6379)
- Приложение SteerDock (порт 8383)
**Важный:**Всегда используйтеdocker compose up -dчтобы запустить все службы одновременно. Не запускайте отдельные контейнеры сdocker run.
Вход по умолчанию:
- Имя пользователя:
superadmin - Пароль:
superadmin123
# 1. Build frontend
cd frontend
npm install
npm run build
# 2. Build backend (creates single binary)
cd ../backend
go mod tidy
go build -o steerdock .
# 3. Install the database and cache
cd .. && ./install-database.sh
# 4. Run backend
cd ./backend && ./steerdock # Linux/macOS
# or:
cd ./backend && steerdock.exe # Windows
# 5. Run frontend (in another terminal)
cd ./frontend && npm run preview -- --host 0.0.0.0 --port 5151# Use Docker Compose (Recommended)
docker compose up -d# Build with custom tag and build args
docker build \
--tag steerdock:v1.0.0 \
--tag steerdock:latest \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg VERSION=v1.0.0 \
.
# Build for multiple platforms (requires buildx)
docker buildx build \
--platform linux/amd64,linux/arm64 \
--tag steerdock:latest \
--push \
.
# Build with specific Dockerfile
docker build -f Dockerfile -t steerdock:custom .**Важный:**Используйте Docker Compose вместо отдельных контейнеров для правильного подключения к базе данных.
# Generate configuration first
./generate-passwords.sh # Linux/macOS
# or
.\generate-passwords.ps1 # Windows
# Start all services with Docker Compose
docker compose up -d
# For production deployment with custom configuration
docker compose -f docker-compose.prod.yml up -dЗачем нужен Docker Compose:
- Автоматическое создание сети сервисов (mysql, redis, steerdock)
- Правильная конфигурация переменных среды
- Проверки работоспособности и зависимости служб
- Управление томами для сохранения данных
Dockerfile использует трехэтапный процесс сборки:
-
Фронтенд-этап: Создает приложение React с помощью Node.js.
FROM node:20-alpine AS frontend-builder # Builds optimized production frontend
-
Бэкэнд-этап: Компилирует двоичный файл Go
FROM golang:1.24-alpine AS backend-builder # Creates optimized static binary
-
Финальный этап: Минимальный образ Alpine с интерфейсом и серверной частью.
FROM alpine:3.19 # Runtime dependencies, backend serves frontend files, ~50MB final image
# Check container health
docker ps --filter name=steerdock
docker logs steerdock
docker exec steerdock curl -f http://localhost:8383/health/live
# View container stats
docker stats steerdock# Build everything
make build
# Build and run with Docker
make docker-build
make docker-run
# Development mode
make dev
# Production mode
make prod- Докер: 20.10+ и Docker Compose
- Система: Linux/Windows/macOS с ОЗУ более 2 ГБ
Для развития:
- Node.js: 20+
- Идти: 1.24+
- База данных: MySQL 8.0+ (по умолчанию) / PostgreSQL 15+ / MongoDB 5.0+
- Перейти 1.24+ с фреймворком Gin
- GORM для операций с базами данных
- JWT-аутентификация
- WebSocket для обновлений в реальном времени
- Реагируйте 18+ с помощью TypeScript
- Инструмент сборки Vite
- CSS попутного ветра
- React Query для управления состоянием
- xterm.js для терминала
👑 Super Admin: superadmin / superadmin123
🛡️ Admin: admin / admin123
👨💼 Manager: manager / manager123
👤 User: user / user123
👁️ ReadOnly: readonly / readonly123- Обзор архитектуры- Архитектура и дизайн системы.
- Руководство по безопасности- Функции безопасности и лучшие практики.
- Журнал изменений- История версий и обновлений
Вся конфигурация есть.envфайл (автоматически генерируется генератором паролей):
# Frontend
FRONTEND_PORT=5151
BASE_URL=http://localhost:8383
# Database (MySQL example - default)
MYSQL_USER=steerdock
MYSQL_PASSWORD=<auto-generated>
MYSQL_DATABASE=steerdock
MYSQL_HOST=mysql # Docker service name
MYSQL_PORT=3306
# Security
JWT_SECRET=<auto-generated>
ALLOWED_ORIGINS=http://localhost:8383,http://localhost:5151
# Cache (Optional)
REDIS_HOST=redis # Docker service name
REDIS_PORT=6379
REDIS_PASSWORD=<auto-generated># Check Docker is running
docker ps
# Check Docker socket permissions (Linux)
ls -l /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock # If needed# Check if you're using Docker Compose (IMPORTANT!)
docker compose ps
# Should show 3 services: mysql, redis, steerdock
# If not, start with Docker Compose:
docker compose up -d
# Check database container
docker compose logs mysql
# Restart all services
docker compose restart# Check backend is running
curl http://localhost:8383/health/live
# View backend logs
docker compose logs steerdock
# Check database initialization
docker compose exec mysql mysql -u steerdock -p steerdock -e "SELECT username FROM users;"# Stop all services
docker compose down
# Or manually kill processes
# Linux/macOS
lsof -ti:8383 | xargs kill -9
lsof -ti:5432 | xargs kill -9
lsof -ti:6379 | xargs kill -9
# Windows
netstat -ano | findstr :8383
taskkill /PID <PID> /F# ❌ WRONG: Running single container without database
docker run steerdock:latest
# ✅ CORRECT: Using Docker Compose with all services
docker compose up -d
# ❌ WRONG: Missing .env file
docker compose up -d # without running generate-passwords first
# ✅ CORRECT: Generate config first
./generate-passwords.sh && docker compose up -d
# ❌ WRONG: Using localhost for database in Docker
MYSQL_HOST=localhost # Won't work in Docker
# ✅ CORRECT: Using Docker service names
MYSQL_HOST=mysql # Docker Compose service namesteerdock/
├── backend/ # Go backend application
│ ├── config/ # Configuration
│ ├── handlers/ # HTTP handlers
│ ├── middleware/ # Middleware
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── main.go # Entry point
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom hooks
│ │ └── config/ # Configuration
│ └── package.json
├── sql/ # Database init scripts
├── docs/ # Documentation
├── docker-compose.yml # Docker Compose config
└── .env # Environment variables- Изменить пароли по умолчанию: Сразу после установки
- Используйте надежные пароли: Следуйте требованиям политики паролей.
- Включить HTTPS: Используйте сертификаты SSL/TLS в рабочей среде.
- Регулярные обновления: постоянно обновлять SteerDock и зависимости.
- Журналы аудита: Регулярно просматривайте журналы аудита.
- Резервное копирование: Регулярные зашифрованные резервные копии.
- Сетевая изоляция: Используйте межсетевые экраны и сегментацию сети.
- Наименьшие привилегии: предоставить минимально необходимые разрешения.
ВидетьSECURITY.mdподробные инструкции по безопасности.
Вклады приветствуются!
- Форкнуть репозиторий
- Создайте свою ветку функций (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add amazing feature') - Нажмите на ветку (
git push origin feature/amazing-feature) - Открыть запрос на включение
Этот проект лицензируется по лицензии MIT – см.ЛИЦЕНЗИЯфайл для подробностей.
- Докер- Контейнерная платформа
- Идти- Язык бэкэнда
- Реагировать- Фронтенд-фреймворк
- Джин- Веб-фреймворк
- СИНИЙ- библиотека ОРМ
- xterm.js- Эмулятор терминала