No description
Find a file
hermes 2cb0141742
All checks were successful
CI / lint-and-build (push) Successful in 2m17s
ci: re-run via runner pickup verification
2026-09-26 20:06:44 -07:00
.forgejo/workflows fix: use full action URLs for Forgejo compatibility 2026-06-03 20:27:15 -07:00
server Add docker-compose schema validation (fixes #14) 2026-05-23 03:12:57 -07:00
src gsd: pre-implementation lint/format cleanup 2026-05-21 10:21:23 -07:00
.gitignore chore: untrack .gsd/ metadata (causes false-positive security scan hits) 2026-05-15 06:27:39 -07:00
.pre-commit-config.yaml chore: add pre-commit hooks (.pre-commit-config.yaml + lefthook.yml) 2026-06-03 17:27:24 -07:00
AGENTS.md fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
bun.lock gsd: pre-implementation lint/format cleanup 2026-05-21 10:11:09 -07:00
components.json chore: remove old CI, update deps and config, add tailwind cjs 2026-05-10 07:04:35 -07:00
eslint.config.js fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
index.html Initial commit 2026-03-25 19:43:20 -07:00
lefthook.yml chore: add pre-commit hooks (.pre-commit-config.yaml + lefthook.yml) 2026-06-03 17:27:24 -07:00
package-lock.json gsd: pre-implementation lint/format cleanup 2026-05-19 09:09:08 -07:00
package.json fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
postcss.config.js fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
README.md fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
tailwind.config.cjs fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
tailwind.config.js fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
tsconfig.app.json fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
tsconfig.json fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
tsconfig.node.json Initial commit 2026-03-25 19:43:20 -07:00
vite.config.ts fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00
vitest.config.ts fix: reorder const declarations before useEffect calls to resolve lint errors 2026-05-19 09:09:08 -07:00

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/nodocker file to force Podman mode
  • Uses CLI commands (docker or podman) - no API dependencies

SSH Key Management

  1. Generate keys: Go to Hosts → SSH Keys tab → Generate
  2. Add public key to remote ~/.ssh/authorized_keys
  3. 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 containers
  • POST /api/containers/:id/start|stop|restart - Container actions
  • POST /api/containers/:id/export-compose - Generate compose from container
  • GET/POST /api/compose - Compose files CRUD
  • GET/POST /api/hosts - Host management
  • GET/POST /api/ssh-keys - SSH key management
  • GET/PUT /api/settings - Application settings
  • POST /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