fe66be4aad1be59701ded6c9a6c6bfcb2211871a
Docker Deployment Manager
Automated Docker deployment system for containerizing and deploying projects from Windows to Linux.
Overview
Phase 1 (Current): CLI tool to generate Dockerfiles, docker-compose, and deployment scripts.
Phase 2 (Planned): Electron desktop app for central management and visibility across all projects.
Quick Start
# 1. Install dependencies
npm install
# 2. Detect a project type
npm run docker-deploy -- detect "C:\.bucket\Repos.Git\game.justone"
# 3. Initialize Docker config for a project
npm run docker-deploy -- init "C:\.bucket\Repos.Git\game.justone"
# 4. Build and deploy (from the target project directory)
cd C:\.bucket\Repos.Git\game.justone
.\build-image-tar.ps1 # Manual: creates tar, shows instructions
.\deploy-docker-auto.ps1 # Automated: builds, transfers, starts on server
Commands
detect
Identify project type without generating files.
npm run docker-deploy -- detect [path]
npm run docker-deploy -- detect "C:\.bucket\Repos.Git\dotrepo.timer"
init
Generate Docker configuration for a project.
npm run docker-deploy -- init [path]
npm run docker-deploy -- init "C:\.bucket\Repos.Git\game.justone"
# Options:
# --no-interactive Skip prompts, use defaults
# --type <type> Force specific project type
# --port <port> Override default port
# --dry-run Show what would be generated
# --overwrite Replace existing files
batch
Operations across multiple projects.
# Scan all projects and show report
npm run docker-deploy -- batch detect --root "C:\.bucket\Repos.Git" --report
# Initialize all projects
npm run docker-deploy -- batch init --root "C:\.bucket\Repos.Git"
Supported Project Types
| Type | Detection | Template |
|---|---|---|
| Node.js Express | package.json with express |
Multi-stage build |
| Node.js Vite+React | package.json with vite + react |
Nginx static |
| Node.js Vite+React SSR | package.json with vite + react + express |
Node runtime |
| Python Standard | requirements.txt |
Python slim |
| Python ML/PyTorch | requirements.txt with torch |
Python + system deps |
| .NET Blazor | .csproj with Blazor |
SDK + ASP.NET runtime |
| Static Site | index.html |
Nginx |
Generated Files
When you run init, these files are created in the target project:
Dockerfile- Container build instructionsdocker-compose.yml- Runtime configuration.dockerignore- Files excluded from imagedocker-deployment.json- Project configuration.env.example- Environment variables templatedeploy-docker-auto.ps1- Automated SSH deployment scriptbuild-image-tar.ps1- Manual build scriptREADME.DOCKER.md- Deployment documentation
Deployment Workflow
Option 1: Automated (SSH)
.\deploy-docker-auto.ps1
# Builds image → creates tar → SCPs to server → loads → starts
Option 2: Manual
.\build-image-tar.ps1
# Then follow the printed instructions to SCP and deploy
On the Linux Server
cd ~/containers/project-name/files
docker load -i project-name.tar
docker compose up -d
docker compose logs -f
Configuration
Per-Project: docker-deployment.json
{
"project": { "name": "game-justone", "type": "nodejs-express" },
"runtime": { "port": 3000 },
"deployment": {
"sshHost": "192.168.8.178",
"sshUser": "deployer",
"targetPath": "~/containers/game-justone/files"
}
}
Global: global-deployment-config.json
Default SSH settings used when initializing new projects.
Phase 2 Roadmap
Electron desktop app with:
- Central view of all 35+ projects
- Docker status: configured / deployed / running
- One-click init, build, deploy
- Real-time logs and status updates
Built for managing Docker deployments across the Gitea repository collection.
Description
Docker Deployment Manager - REST API + Electron app for managing Docker deployments via Gitea + Coolify
Languages
JavaScript
93.2%
CSS
3.6%
HTML
2.4%
PowerShell
0.8%