إنجليزي|الصينية المبسطة|الصينية التقليدية|الأسبانية|فرنسي|الألمانية|اليابانية|البرتغالية|الروسية|كوري|العربية|الهندية
Docker Dashboard with real-time monitoring (Dark Theme)
Real-time resource monitoring and container status (Light Theme)
- مصادقة JWT مع انتهاء الصلاحية لمدة 24 ساعة
- التحكم في الوصول المستند إلى الدور (المسؤول المتميز / المشرف / المدير / المستخدم / للقراءة فقط)
- تشفير كلمة المرور (SHA-256)
- تحديد المعدل ورؤوس الأمان
- تسجيل التدقيق الكامل
- دعم OAuth 2.0 (جوجل، جيثب)
- ماي إس كيو إل 8.0+ (افتراضي)
- بوستجري إس كيو إل 15+
- مونغو دي بي 5.0+
- ترحيل المخطط التلقائي
- تجمع الاتصال
- حاويات: البدء، الإيقاف، إعادة التشغيل، الإزالة، الإنشاء، الفحص
- الصور: سحب، إزالة، فحص، السجلات البحث
- الشبكات: إنشاء، إزالة، توصيل/فصل الحاويات
- مجلدات: إنشاء، إزالة، فحص، تقليم
- صالة: الوصول إلى Shell في الوقت الفعلي باستخدام xterm.js
- سجلات: Real-time container logs streaming
- احصائيات: مراقبة استخدام الموارد الحية (وحدة المعالجة المركزية، الذاكرة، الشبكة، الإدخال / الإخراج)
- إدارة مضيفي 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 (تخدمها الواجهة الخلفية)
- واجهة برمجة التطبيقات الخلفية: 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:
- Automatic service networking (mysql, redis, steerdock)
- التكوين المناسب لمتغير البيئة
- الفحوصات الصحية وتبعيات الخدمة
- إدارة الحجم لاستمرارية البيانات
يستخدم ملف Dockerfile عملية إنشاء مكونة من ثلاث مراحل:
-
مرحلة الواجهة الأمامية: إنشاء تطبيق React باستخدام Node.js
FROM node:20-alpine AS frontend-builder # Builds optimized production frontend
-
مرحلة الخلفية: يجمع الذهاب ثنائي
FROM golang:1.24-alpine AS backend-builder # Creates optimized static binary
-
المرحلة النهائية: الحد الأدنى من صورة جبال الألب مع كل من الواجهة الأمامية والخلفية
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 مع ذاكرة وصول عشوائي (RAM) بسعة 2 جيجابايت+
للتطوير:
- Node.js: 20+
- يذهب: 1.24+
- قاعدة البيانات: MySQL 8.0+ (افتراضي) / PostgreSQL 15+ / MongoDB 5.0+
- انتقل إلى الإصدار 1.24+ باستخدام إطار عمل Gin
- GORM لعمليات قاعدة البيانات
- مصادقة JWT
- WebSocket للحصول على التحديثات في الوقت الحقيقي
- رد فعل 18+ مع TypeScript
- أداة بناء فيت
- الريح الخلفية CSS
- رد فعل الاستعلام لإدارة الدولة
- 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 - راجعرخصةملف للحصول على التفاصيل.
- عامل ميناء- منصة الحاويات
- يذهب- لغة الواجهة الخلفية
- رد فعل- إطار الواجهة الأمامية
- شرك- إطار الويب
- أزرق- مكتبة ORM
- xterm.js- المحاكي الطرفي