Inglés|Chino simplificado|chino tradicional|Español|Francés|Alemán|japonés|portugués|ruso|coreano|árabe|hindi
Docker Dashboard with real-time monitoring (Dark Theme)
Real-time resource monitoring and container status (Light Theme)
- Autenticación JWT con vencimiento de 24 horas
- Control de acceso basado en roles (superadministrador/administrador/gerente/usuario/solo lectura)
- Cifrado de contraseña (SHA-256)
- Limitación de velocidad y encabezados de seguridad
- Registro de auditoría completo
- Compatibilidad con OAuth 2.0 (Google, GitHub)
- MySQL 8.0+ (predeterminado)
- PostgreSQL 15+
- MongoDB 5.0+
- Migración automática de esquemas
- Agrupación de conexiones
- Contenedores: Iniciar, detener, reiniciar, eliminar, crear, inspeccionar
- Imágenes: Extraer, eliminar, inspeccionar, buscar registros
- Redes: Crear, eliminar, conectar/desconectar contenedores
- Volúmenes: Crear, eliminar, inspeccionar, podar
- Terminal: Acceso al shell en tiempo real con xterm.js
- Registros: Transmisión de registros de contenedores en tiempo real
- Estadísticas: Monitoreo del uso de recursos en vivo (CPU, memoria, red, E/S)
- Administrar múltiples hosts Docker
- Demonios Docker locales y remotos
- Conexiones SSH y TCP
- Quick host switching
- Tema oscuro/claro
- Diseño responsivo
- Soporte multilingüe (más de 10 idiomas)
- Atajos de teclado
- Actualizaciones en tiempo real
La forma más rápida de hacer funcionar 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:5151Inicio de sesión predeterminado:
- Nombre de usuario:
superadmin - Contraseña:
superadmin123
# Linux/macOS
./start-dev.sh
# Windows
.\start-dev.ps1Acceso:
- Frontend: http://localhost:5151 (con recarga en caliente)
- Servidor: http://localhost:8383
# Linux/macOS
./start-prod.sh
# Windows
.\start-prod.ps1Acceso:
- Frontend: http://localhost:5151 (servido por backend)
- API de back-end: http://localhost:8383/api/v1
# Windows only
.\win-desktop.ps1Esto crea una aplicación de escritorio independiente con:
- Servicio backend ejecutándose en segundo plano
- Aplicación GUI de escritorio (SteerDock-frontend.exe)
- Acceso: ventana de la aplicación de escritorio
# 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/v1Servicios incluidos:
- Base de datos MySQL (puerto 3306)
- Caché de Redis (puerto 6379)
- Aplicación SteerDock (puerto 8383)
**Importante:**Utilice siempredocker compose up -dpara iniciar todos los servicios juntos. No utilice contenedores individuales condocker run.
Inicio de sesión predeterminado:
- Nombre de usuario:
superadmin - Contraseña:
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 .**Importante:**Utilice Docker Compose en lugar de contenedores individuales para una conectividad adecuada de la base de datos.
# 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 -dPor qué se requiere Docker Compose:
- Redes de servicios automáticos (mysql, redis, steerdock)
- Configuración adecuada de variables de entorno
- Controles de salud y dependencias de servicios.
- Gestión de volúmenes para la persistencia de datos.
Dockerfile utiliza un proceso de compilación de 3 etapas:
-
Etapa de interfaz: Crea la aplicación React con Node.js
FROM node:20-alpine AS frontend-builder # Builds optimized production frontend
-
Etapa de back-end: Compila Ir binario
FROM golang:1.24-alpine AS backend-builder # Creates optimized static binary
-
Etapa final: Imagen alpina mínima con frontend y backend
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- Estibador: 20.10+ y Docker Compose
- Sistema: Linux/Windows/macOS con más de 2GB de RAM
Para el desarrollo:
- Nodo.js: 20+
- Ir: 1.24+
- Base de datos: MySQL 8.0+ (predeterminado) / PostgreSQL 15+ / MongoDB 5.0+
- Vaya a 1.24+ con el marco Gin
- GORM para operaciones de bases de datos
- autenticación JWT
- WebSocket para actualizaciones en tiempo real
- Reaccionar 18+ con TypeScript
- herramienta de construcción Vite
- CSS de viento de cola
- Consulta de reacción para gestión estatal.
- xterm.js para terminal
👑 Super Admin: superadmin / superadmin123
🛡️ Admin: admin / admin123
👨💼 Manager: manager / manager123
👤 User: user / user123
👁️ ReadOnly: readonly / readonly123- Descripción general de la arquitectura- Arquitectura y diseño del sistema.
- Guía de seguridad- Funciones de seguridad y mejores prácticas.
- Registro de cambios- Historial de versiones y actualizaciones.
Toda la configuración está en.envarchivo (generado automáticamente por el generador de contraseñas):
# 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- Cambiar contraseñas predeterminadas: Inmediatamente después de la instalación
- Utilice contraseñas seguras: Siga los requisitos de la política de contraseñas
- Habilitar HTTPS: Utilice certificados SSL/TLS en producción
- Actualizaciones periódicas: Mantenga actualizado SteerDock y sus dependencias.
- Registros de auditoría: Revise periódicamente los registros de auditoría
- Respaldo: Copias de seguridad cifradas periódicas
- Aislamiento de red: Utilice firewalls y segmentación de red
- Mínimo privilegio: Otorgar los permisos mínimos requeridos
VerSECURITY.mdpara obtener pautas de seguridad detalladas.
¡Las contribuciones son bienvenidas!
- Bifurcar el repositorio
- Crea tu rama de funciones (
git checkout -b feature/amazing-feature) - Confirme sus cambios (
git commit -m 'Add amazing feature') - Empuje hacia la rama (
git push origin feature/amazing-feature) - Abrir una solicitud de extracción
Este proyecto tiene la licencia MIT (consulte laLICENCIAarchivo para más detalles.
- Estibador- Plataforma de contenedores
- Ir- Idioma de fondo
- Reaccionar- Marco de interfaz
- Ginebra- Marco web
- AZUL- Biblioteca ORM
- xterm.js- Emulador de terminal