No description
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| server | ||
| src | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| bun.lock | ||
| components.json | ||
| eslint.config.js | ||
| index.html | ||
| lefthook.yml | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.cjs | ||
| tailwind.config.js | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Docker Compose Manager
Full-stack web application for managing Docker/Podman containers, compose files, snapshots, hosts, and cloud deployments.
Quick Start
# Install dependencies
npm install
# Development (frontend + backend)
npm run dev
# Production build
npm run build
Access: http://localhost:5173
Features
- Dashboard - System info, resource usage, container counts
- Services - List/start/stop/restart containers, view logs, export to compose
- Compose Files - Create and manage docker-compose.yml files
- Hosts - Multi-host management via SSH with key-based auth
- Snapshots - Volume backup and restore
- Cloud Deploy - Deploy to AWS ECS, Azure Container Instances, GCP Cloud Run, DigitalOcean
- Settings - Theme, refresh intervals, defaults configuration
- Terminal - Interactive container exec (xterm.js)
Tech Stack
- Frontend: React 19 + TypeScript 5.9 + Vite + Tailwind CSS + shadcn/ui
- Backend: Node.js + Express + SQLite + WebSocket
- Runtime: CLI-based (auto-detects docker/podman)
Commands
| Command | Description |
|---|---|
npm run dev |
Development server (client + server) |
npm run build |
Production build |
npm run lint |
Run ESLint |
npm run server |
Backend only |
npm run test:run |
Run tests once (CI) |
npm test |
Watch mode tests |
Runtime Detection
The app automatically detects Docker or Podman:
- Prefers Podman if available
- Respects
/etc/containers/nodockerfile to force Podman mode - Uses CLI commands (
dockerorpodman) - no API dependencies
SSH Key Management
- Generate keys: Go to Hosts → SSH Keys tab → Generate
- Add public key to remote
~/.ssh/authorized_keys - Create host with the key and test connection
Cloud Deployment Providers
- AWS ECS - Creates clusters, task definitions, services
- Azure - Container Instances with service principal
- GCP - Cloud Run deployment
- DigitalOcean - App Platform
API Endpoints
GET /api/containers- List containersPOST /api/containers/:id/start|stop|restart- Container actionsPOST /api/containers/:id/export-compose- Generate compose from containerGET/POST /api/compose- Compose files CRUDGET/POST /api/hosts- Host managementGET/POST /api/ssh-keys- SSH key managementGET/PUT /api/settings- Application settingsPOST /api/cloud/:id/deploy- Cloud deployment
Database
SQLite at data/docker-manager.db with tables for:
- compose_files, hosts, ssh_keys, snapshots, cloud_configs, deployments, settings