Ultra-fast, single-binary Server Control Plane for automating Docker, Nuxt, Node.js, Go, Python, PostgreSQL, and Caddy/Traefik/Nginx deployments on raw Ubuntu VPS servers with zero complex SaaS fees.
DeployMate is a local-first developer CLI, daemon, and interactive Web Dashboard designed specifically for indie hackers, solo developers, and small agencies who want production-grade server deployments without configuring Kubernetes, complex GitHub Actions, or paying heavy monthly SaaS taxes (like Forge, Vapor, or Render).
Operating as an out-of-band Server Control Plane, DeployMate reads declarative deploymate.yaml manifests, solves service dependency DAGs deterministically, computes execution risk previews (Plan-before-Apply), orchestrates deployments via a Finite State Machine (BUILD ➔ START ➔ MIGRATION ➔ HEALTH ➔ PROXY_APPLY), and records immutable deployment Revisions in an embedded SQLite database.
- Target Audience: Solo Developers, Freelancers, Small Software Agencies, Indie Hackers, DevOps Engineers.
- Core Philosophy: Declarative Manifest (
deploymate.yaml) → Local DAG & Plan → FSM Pipeline → Zero-Downtime Traffic Route.
Small software teams waste hours setting up complex YAML files for GitHub Actions, configuring Nginx SSL certificates manually, and troubleshooting failed deployments. Existing deployment dashboards are either expensive SaaS platforms ($20–$50/month per server) or bloated enterprise orchestrators.
PAINFUL WORKFLOW:
Code Push → SSH into VPS → Manually git pull → Docker build → Fix broken Nginx config → Realize database crashed → No rollback plan
OPTIMIZED WORKFLOW:
deploymate.yaml
↓
DeployMate Control Plane (Local / VPS Daemon)
↓
Dry-Run Plan → Database Snapshot → Docker Rebuild → Health Check OK → Instant Proxy Route Switch (Caddy/Traefik/Nginx)
- 1-Minute Setup: Turn a raw $5 Ubuntu VPS into an automated, self-hosted deployment target in 60 seconds.
- Zero Monthly SaaS Taxes: Pay once (€29 Lifetime License), run on your own infrastructure forever.
- Control Plane / Data Plane Isolation: DeployMate operates out-of-band. If the daemon stops or restarts, active Caddy/Traefik proxies and production application containers continue serving user traffic without interruption.
- Short SQL Transaction Safety: Long-running side-effects (docker compose builds, database migrations, health checks) run outside database transactions, preventing database locks.
- Built-in Safety Net: Automated PostgreSQL/MySQL database dumps before every deployment + instant 1-click revision rollback (
deploymate rollback N).
| User | Primary Use Case | Value Delivered |
|---|---|---|
| Indie Hacker / Solo Dev | Deploying Nuxt / Node / Go / .NET apps quickly | Saves $300+/year on deployment SaaS |
| Freelancer | Handing off client VPS deployments | Client gets a self-contained, low-maintenance server control plane |
| Small Agency | Managing 5–10 client production servers | Standardized, repeatable server setups with 1-click rollbacks |
| DevOps / SysAdmin | Automating multi-container stack deployments | Declarative deploymate.yaml SSOT with deterministic DAG resolution |
flowchart LR
A[Declarative deploymate.yaml] --> B[Manifest Parser & Validator]
B --> C[Deterministic DAG Dependency Solver]
C --> D[Risk & Execution Diff Planner]
D --> E[Short SQL Tx #1: Create Operation & Mutex Lock]
E --> F[FSM Pipeline: Build -> Start -> Migration -> Health]
F --> G{HTTP / TCP Health Check OK?}
G -->|YES| H[Apply Proxy Route via ProxyPort Caddy/Nginx]
G -->|NO| I[Automated Revision Rollback & Recovery]
H --> J[Short SQL Tx #2: Save Revision & Release Lock]
DeployMate Control Plane
(Out-of-band Management)
│
┌─────────────────────────────────┼─────────────────────────────────┐
▼ ▼ ▼
SQLite Store Lock Manager Event Bus Broker
(Local Persistence) (Mutually Exclusive Ops) (Ephemeral & Durable)
│ │ │
└─────────────────────────────────┼─────────────────────────────────┘
│
┌──────────┴──────────┐
▼ ▼
Planner Engine Reconciler Engine
(Plan & Dry-Run) (Desired vs Actual)
│ │
└──────────┬──────────┘
▼
Pipeline & State Machine
│
┌──────────────────┴──────────────────┐
▼ ▼
Runtime Adapters Proxy Adapters
(Compose/Docker/Process) (Caddy/Traefik/Nginx)
│ │
└──────────────────┬──────────────────┘
▼
Data Plane Infrastructure
(Caddy / Traefik / Nginx ──► Live Applications)
- 🎨 Font Awesome 6 Vector Icons: Replaced all raw Unicode symbols with high-definition Font Awesome 6 icons across the Web Control Plane Dashboard.
- 🌐 Dual i18n Localization (Arabic 🇸🇦 & English 🇬🇧):
- Full internationalization support with JSON dictionaries (
web/i18n/ar.json,web/i18n/en.json,internal/i18n/i18n.go). - Dynamic RTL (Arabic) and LTR (English) document layout toggling with user preference persisted in
localStorage.
- Full internationalization support with JSON dictionaries (
- 🔒 Isolated Docker Socket Gate: Strict boundary security preventing API/HTTP/App layers from touching
/var/run/docker.sockdirectly (enforced via automated Go architecture tests). - 📊 Glassmorphic Web SPA Dashboard UI: Built-in interactive dashboard served at
http://127.0.0.1:8080displaying server hardware metrics, project cards, network topology, package updates, and live log stream.
- Single-binary Go CLI & Control Plane Daemon (
deploymate server,doctor,plan,deploy,status,rollback). - Declarative
deploymate.yamlparser with deterministic DAG dependency solver. - Automated Caddy reverse proxy integration (Auto HTTPS via Let's Encrypt / Admin JSON API).
- Short-lived SQLite database persistence with mutex lock management (
internal/store/). - Multi-layer health inspection (HTTP endpoints and TCP sockets).
- Single-command revision rollback (
deploymate rollback N). - Interactive Dark Glassmorphic Web Dashboard UI with Font Awesome 6 icons and Arabic/English language switcher.
- No multi-node Kubernetes cluster management.
- No mandatory cloud SaaS control plane (100% self-hosted local control plane).
| Criterion | Score | Justification |
|---|---|---|
| Problem Pain | 9/10 | Server setup and deployment friction is a universal developer frustration. |
| Problem Frequency | 9/10 | Happens multiple times every week during release cycles. |
| Customer Clarity | 10/10 | High clarity: Developers building on VPS servers (Hetzner, DigitalOcean). |
| MVP Simplicity | 8/10 | Go CLI & daemon wrapping Docker, Caddy, and SQLite. |
| Monetization Potential | 9/10 | Developers willingly pay one-time fees for time-saving DevOps utilities. |
| Technical Feasibility | 9/10 | Go is the industry standard for CLI utilities and system automation. |
| Product Independence | 10/10 | 100% self-contained standalone binary. |
| Competitive Opportunity | 8/10 | Replaces expensive $20/month SaaS platforms with a clean Lifetime tool. |
| TOTAL SCORE | 76 / 80 | APPROVED HIGH-VALUE MICRO PRODUCT |
| Layer | Technology Selected | Reason for Selection |
|---|---|---|
| Language & Engine | Go 1.23+ | Compiles to a single zero-dependency static binary; ultra-fast process execution. |
| Database | SQLite (database/sql + modernc.org/sqlite) |
Zero CGO dependency; embedded local control-plane persistence (deploymate.db). |
| Web Proxy | Caddy / Traefik / Nginx | Automatic SSL certificate management with transactional API configuration reloading. |
| Frontend UI | HTML5 + CSS3 + Vanilla JavaScript + Font Awesome 6 | Embedded Single Page Application (SPA) with dark glassmorphism theme & dual i18n (AR/EN). |
deploy-mate/
├── cmd/
│ └── deploymate/
│ └── main.go # Single-binary CLI & Server Launcher
├── internal/
│ ├── manifest/ # Manifest DTO, YAML Parser & Field Validator
│ │ ├── manifest.go # Manifest DTO schema
│ │ ├── parser.go # YAML parser
│ │ └── validator.go # Schema validator
│ ├── core/ # Pure Domain Entities (Zero External Imports)
│ │ ├── workspace.go # Workspace entity
│ │ ├── project.go # Project entity
│ │ ├── environment.go # Environment entity (dev/staging/prod)
│ │ ├── service.go # Service entity
│ │ ├── dependency.go # Deterministic Topological Sorter & DAG Solver
│ │ ├── revision.go # Immutable Revision schema & RollbackClass
│ │ ├── operation.go # Operation entity & OperationState
│ │ ├── deployment.go # Deployment execution record
│ │ └── state.go # DesiredState vs ActualState
│ ├── ports/ # Ports Interface Contracts
│ │ ├── runtime.go # RuntimePort
│ │ ├── proxy.go # ProxyPort
│ │ ├── store.go # StorePort
│ │ └── git.go # GitPort
│ ├── store/ # Pure SQLite database/sql Store Adapter
│ │ ├── store.go # SQLite StorePort implementation
│ │ ├── sqlite.go # database/sql pool & connection manager
│ │ └── migrations.go # Raw SQL schema migration runner
│ ├── i18n/ # Go CLI Localization Catalog
│ │ └── i18n.go # Arabic & English CLI catalogs
│ ├── app/ # Application Service Layer (Shared Logic)
│ │ ├── project_service.go # Project & Manifest service
│ │ ├── deployment_service.go # Deployment & Revision service
│ │ └── health_service.go # Health check service
│ ├── plan/ # Risk & Execution Diff Planner
│ │ ├── planner.go # Diff preview generator
│ │ └── changes.go # Risk classification (LOW/MED/HIGH/CRITICAL)
│ ├── pipeline/ # Deployment Engine & FSM
│ │ ├── pipeline.go # Short-transaction orchestrator
│ │ ├── state_machine.go # Finite State Machine
│ │ └── rollback.go # Idempotent revision rollback runner
│ ├── runtime/ # Runtime Adapters
│ │ ├── compose.go # Docker Compose adapter
│ │ └── docker/ # Isolated Docker Socket Gate Adapter
│ │ └── docker.go # Dedicated Docker socket adapter
│ ├── proxy/ # Proxy Adapters
│ │ └── caddy.go # Caddy JSON API adapter
│ ├── health/ # Multi-Layer Health Inspector
│ │ ├── checker.go # Master health checker
│ │ ├── http.go # HTTP endpoint validator
│ │ └── tcp.go # TCP port validator
│ ├── git/ # Git Repository Inspector
│ │ └── repo.go # Working tree & commit inspector
│ ├── server/ # Control Plane Daemon Web Server
│ │ └── api.go # REST v1 & static UI file router
│ └── cli/ # CLI Execution Command Handlers
│ ├── doctor.go # deploymate doctor
│ ├── status.go # deploymate status
│ ├── plan.go # deploymate plan
│ ├── deploy.go # deploymate deploy
│ └── rollback.go # deploymate rollback
├── web/ # Single Page Control Plane Dashboard UI
│ ├── index.html # Main SPA Layout (Font Awesome 6 icons)
│ ├── style.css # Custom Dark Glassmorphism CSS Design System
│ ├── app.js # SPA Controller & i18n engine
│ └── i18n/ # UI Localization Dictionaries
│ ├── ar.json # Arabic translation dictionary
│ └── en.json # English translation dictionary
├── architecture/
│ └── ARCHITECTURE.md # Execution pipeline & clean architecture spec
├── agents/
│ ├── architect.md # Architect agent specification & rules
│ ├── developer.md # Developer agent mapping
│ └── qa.md # QA & test suite specification
├── deploymate.yaml # Declarative Project Manifest Sample
└── README.md # Product overview & master documentation
- architect.md: Defines Clean Architecture boundaries, short transaction rules, and system process limits.
- developer.md: Implements Go domain entities, DAG solvers, SQLite queries, and web server endpoints.
- frontend.md: UI/UX design tokens, Cyber Emerald color palette, glassmorphism rules, and Font Awesome 6 iconography standards.
- qa.md: Validates automated unit tests, import boundary tests, and CLI execution subcommands.
docker compose up -d --build./deploymate doctor./deploymate plan./deploymate deploy./deploymate status./deploymate rollback 1DeployMate is released under the MIT License. Pay once, self-host on your own infrastructure forever.