Skip to content

Repository files navigation

DeployMate — Zero-SaaS Production Server Control Plane & Mini-Orchestrator

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.

Build Status Complexity Backend License Pricing


1. Product Overview

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 (BUILDSTARTMIGRATIONHEALTHPROXY_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.

2. Problem Statement

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)

3. Core Value Proposition

  • 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).

4. Target Users

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

5. Product Workflow & Architecture

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]
Loading
                               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)

6. Key Features & Visual Design System

  • 🎨 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.
  • 🔒 Isolated Docker Socket Gate: Strict boundary security preventing API/HTTP/App layers from touching /var/run/docker.sock directly (enforced via automated Go architecture tests).
  • 📊 Glassmorphic Web SPA Dashboard UI: Built-in interactive dashboard served at http://127.0.0.1:8080 displaying server hardware metrics, project cards, network topology, package updates, and live log stream.

7. MVP Scope

Included in MVP

  • Single-binary Go CLI & Control Plane Daemon (deploymate server, doctor, plan, deploy, status, rollback).
  • Declarative deploymate.yaml parser 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.

Explicitly Excluded (Non-Goals)

  • No multi-node Kubernetes cluster management.
  • No mandatory cloud SaaS control plane (100% self-hosted local control plane).

8. Product Evaluation Scorecard

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

9. Technology Stack & Justification

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).

10. Repository Structure

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

11. AI Agent Team Roles

  • 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.

12. Usage & Command Guide

Launch Docker Environment (Background Mode)

docker compose up -d --build

System Infrastructure Doctor Check

./deploymate doctor

Preview Execution Plan & Risk (Zero Mutations)

./deploymate plan

Execute Deployment Pipeline

./deploymate deploy

View Application Status & Revision History

./deploymate status

Rollback to Target Revision N

./deploymate rollback 1

13. License

DeployMate is released under the MIT License. Pay once, self-host on your own infrastructure forever.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages