Skip to content

ejikezebedee/devops-partner

DevOps Partner Agent

DevOps Partner project cover

DevOps Partner is an open-source MVP for non-developers who can build a website but get stuck on VPS deployment, SSH, reverse proxies, and SSL certificates.

The first sellable version deploys a static site or Node-built static site to an Ubuntu VPS using Caddy for HTTPS.

License: MIT.

Buyer Pain Point

Founders, designers, small agencies, and creators often have a finished web project but cannot safely move it from their laptop to a live domain. The confusing parts are SSH, Linux paths, reverse proxy files, SSL certificates, service reloads, and rollback.

DevOps Partner turns that into a guided command:

devops-partner plan ./my-site --host 203.0.113.10 --user deploy --domain example.com --app-name my-site
devops-partner deploy ./my-site --host 203.0.113.10 --user deploy --domain example.com --app-name my-site --approve

MVP-1 Scope

  • Detect a static site with index.html.
  • Detect a Node static build when package.json has a build script.
  • Generate a clear deployment plan before server changes.
  • Use SSH key-based access only.
  • Deploy files with rsync.
  • Configure Caddy to serve the site over HTTPS.
  • Write a deployment report.
  • Block remote execution unless --approve is present.
  • Provide rollback instructions.

Out of Scope for MVP-1

  • Password-based SSH storage.
  • Database deployments.
  • Multi-server orchestration.
  • Kubernetes.
  • Background agent daemon.
  • Production changes without approval.

Install

From the product folder:

python -m venv .venv
. .venv/bin/activate
pip install -e .

Quick Start

Scan a project:

devops-partner scan ./examples/static-site

Create a plan without changing the server:

devops-partner plan ./examples/static-site \
  --host 203.0.113.10 \
  --user deploy \
  --domain example.com \
  --app-name demo-site

Use the natural-language command without changing the server:

devops-partner ask "Deploy this site to my VPS and secure it with SSL" ./examples/static-site \
  --host 203.0.113.10 \
  --user deploy \
  --domain example.com \
  --app-name demo-site

Generate deterministic JSON commands for another agent or review workflow:

devops-partner json-commands \
  --domain mydomain.com \
  --web-root /var/www/mydomain.com \
  --caddyfile /etc/caddy/Caddyfile

This prints only a JSON array of command objects. It does not execute them.

Execute only after reviewing the generated plan:

devops-partner deploy ./examples/static-site \
  --host 203.0.113.10 \
  --user deploy \
  --domain example.com \
  --app-name demo-site \
  --approve

VPS Requirements

  • Ubuntu VPS.
  • SSH key access configured.
  • Domain DNS already points to the VPS.
  • Caddy installed and running.
  • Ports 80 and 443 open.
  • rsync available locally and remotely.

Prerequisite: Vanilla VPS

This agent is designed for clean, vanilla Ubuntu/Debian VPS instances such as a fresh DigitalOcean Droplet, Hetzner Cloud server, Linode instance, or similar unmanaged VPS.

Do not run it against shared hosting or servers already managed by control panels such as cPanel, Plesk, RunCloud, CyberPanel, or similar products unless you understand the existing web server layout. Those systems may already control ports 80 and 443, and replacing web server configuration can cause conflicts.

Safety Model

  • The product never stores SSH passwords.
  • The product does not store private keys.
  • The product prints a full plan before server changes.
  • Remote execution is blocked unless --approve is provided.
  • Caddy configuration is overwritten intentionally, not appended, to avoid duplicate site blocks.
  • Existing Caddy configuration is backed up before overwrite and restored if validation fails.
  • Reports are ignored by Git because they may contain buyer infrastructure details.
  • Rollback uses a symlink switch to the previous release.

Commercial Positioning

Title: DevOps Partner Agent

Positioning: A junior DevOps assistant for non-developers launching websites on their own VPS.

Primary buyer: solo founder, designer, freelancer, agency operator, course creator, or small business owner.

Practical outcome: launch a static website on a real domain with HTTPS and a rollback path.

Pricing Justification

Suggested MVP price: $29 to $49.

Reason: it saves a buyer multiple hours of server setup confusion and reduces the risk of misconfigured SSL or broken deployment commands.

Troubleshooting

If SSH fails, confirm:

  • VPS IP is correct.
  • SSH user exists.
  • Public key is installed in ~/.ssh/authorized_keys on the VPS.
  • SSH port is correct.

If HTTPS fails, confirm:

  • Domain DNS points to the VPS.
  • Ports 80 and 443 are open.
  • Caddy is installed and running.

If deployment fails during rsync, confirm:

  • rsync is installed locally and on the VPS.
  • The SSH user has permission to write to the configured target path or can use the documented sudo setup.

Final Release Checklist

  • MIT license included.
  • Contribution and security files included.
  • No private keys or tokens included.
  • No buyer-specific infrastructure committed.
  • Reports ignored by Git.
  • Clear install instructions included.
  • Static-site example included.
  • Plan-first approval flow verified.
  • Tests passing.

About

Open-source local CLI agent for deploying static sites to vanilla Ubuntu/Debian VPS instances with Caddy and HTTPS

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages