Anglais|Chinois simplifié|Chinois traditionnel|Espagnol|Français|Allemand|japonais|portugais|russe|coréen|arabe|hindi
Docker Dashboard with real-time monitoring (Dark Theme)
Real-time resource monitoring and container status (Light Theme)
- Authentification JWT avec expiration de 24 h
- Contrôle d'accès basé sur les rôles (Super administrateur/Administrateur/Gestionnaire/Utilisateur/Lecture seule)
- Cryptage du mot de passe (SHA-256)
- Limitation de débit et en-têtes de sécurité
- Journalisation d'audit complète
- Prise en charge d'OAuth 2.0 (Google, GitHub)
- MySQL 8.0+ (par défaut)
- PostgreSQL 15+
- MongoDB 5.0+
- Migration automatique du schéma
- Regroupement de connexions
- Conteneurs: Démarrer, arrêter, redémarrer, supprimer, créer, inspecter
- Images : Extraire, supprimer, inspecter, rechercher des registres
- Réseaux: Créer, supprimer, connecter/déconnecter des conteneurs
- Volumes: Créer, supprimer, inspecter, élaguer
- Terminal: Accès au shell en temps réel avec xterm.js
- Journaux : Diffusion en temps réel des journaux de conteneurs
- Statistiques: Surveillance en direct de l'utilisation des ressources (CPU, Mémoire, Réseau, E/S)
- Gérer plusieurs hôtes Docker
- Démons Docker locaux et distants
- Connexions SSH et TCP
- Changement d'hôte rapide
- Thème sombre/clair
- Conception réactive
- Prise en charge multilingue (plus de 10 langues)
- Raccourcis clavier
- Mises à jour en temps réel
Le moyen le plus rapide de faire fonctionner 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:5151Connexion par défaut :
- Nom d'utilisateur:
superadmin - Mot de passe:
superadmin123
# Linux/macOS
./start-dev.sh
# Windows
.\start-dev.ps1Accéder:
- Frontend : http://localhost:5151 (avec rechargement à chaud)
- Back-end : http://localhost:8383
# Linux/macOS
./start-prod.sh
# Windows
.\start-prod.ps1Accéder:
- Frontend : http://localhost:5151 (servi par le backend)
- API back-end : http://localhost:8383/api/v1
# Windows only
.\win-desktop.ps1Cela crée une application de bureau autonome avec :
- Service backend exécuté en arrière-plan
- Application GUI de bureau (SteerDock-frontend.exe)
- Accès : fenêtre de l'application de bureau
# 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/v1Prestations incluses :
- Base de données MySQL (port 3306)
- Redis cache (port 6379)
- Application SteerDock (port 8383)
**Important:**Utilisez toujoursdocker compose up -dpour démarrer tous les services ensemble. Ne faites pas fonctionner des conteneurs individuels avecdocker run.
Connexion par défaut :
- Nom d'utilisateur:
superadmin - Mot de passe:
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 .**Important:**Utilisez Docker Compose au lieu de conteneurs individuels pour une connectivité appropriée à la base de données.
# 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 -dPourquoi Docker Compose est requis :
- Mise en réseau automatique des services (mysql, redis, steerdock)
- Configuration appropriée des variables d'environnement
- Vérifications de l'état et dépendances des services
- Gestion des volumes pour la persistance des données
Le Dockerfile utilise un processus de construction en 3 étapes :
-
Étape frontale: Construit l'application React avec Node.js
FROM node:20-alpine AS frontend-builder # Builds optimized production frontend
-
Étape back-end: Compile Go binaire
FROM golang:1.24-alpine AS backend-builder # Creates optimized static binary
-
Étape finale : Image alpine minimale avec frontend et 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- Docker: 20.10+ et Docker Compose
- Système: Linux/Windows/macOS avec 2 Go+ de RAM
Pour le développement :
- Noeud.js: 20+
- Aller: 1.24+
- Base de données: MySQL 8.0+ (par défaut) / PostgreSQL 15+ / MongoDB 5.0+
- Passez à 1.24+ avec le framework Gin
- GORM pour les opérations de base de données
- Authentification JWT
- WebSocket pour les mises à jour en temps réel
- Réagissez 18+ avec TypeScript
- Outil de création de Vite
- CSS vent arrière
- React Query pour la gestion de l'état
- xterm.js pour le terminal
👑 Super Admin: superadmin / superadmin123
🛡️ Admin: admin / admin123
👨💼 Manager: manager / manager123
👤 User: user / user123
👁️ ReadOnly: readonly / readonly123- Présentation de l'architecture- Architecture et conception du système
- Guide de sécurité- Fonctionnalités de sécurité et bonnes pratiques
- Journal des modifications- Historique des versions et mises à jour
Toute la configuration est dans.envfichier (généré automatiquement par le générateur de mot de passe) :
# 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- Modifier les mots de passe par défaut: Immédiatement après l'installation
- Utilisez des mots de passe forts : Suivez les exigences de la politique de mot de passe
- Activer HTTPS: Utiliser des certificats SSL/TLS en production
- Mises à jour régulières : Gardez SteerDock et ses dépendances à jour
- Journaux d'audit : Examiner régulièrement les journaux d'audit
- Sauvegarde: Sauvegardes cryptées régulières
- Isolation du réseau : Utiliser des pare-feu et la segmentation du réseau
- Moindre privilège : Accorder les autorisations minimales requises
VoirSECURITY.mdpour des directives de sécurité détaillées.
Les contributions sont les bienvenues !
- Forker le référentiel
- Créez votre branche de fonctionnalités (
git checkout -b feature/amazing-feature) - Validez vos modifications (
git commit -m 'Add amazing feature') - Poussez vers la branche (
git push origin feature/amazing-feature) - Ouvrir une demande de tirage
Ce projet est sous licence MIT - voir leLICENCEfichier pour plus de détails.
- Docker- Plateforme de conteneurs
- Aller- Langage back-end
- Réagir- Cadre front-end
- Gin- Cadre Web
- BLEU- Bibliothèque ORM
- xterm.js- Émulateur de terminal