Self-hosted PaaS automation for agents โ CLI-first deployment with Traefik, Cloudflare DNS, and Let's Encrypt SSL
Current Version: v2.10.0
Built for AI agents and automation โ JSON output by default, no human GUI required
Every operation available via CLI โ perfect for scripts, CI/CD, and agent workflows
Deploy apps without human intervention โ DNS, SSL, and reverse proxy on autopilot
HTTP API for all remote operations โ SSH-free, agent-friendly, cloud-native
First-class Docker Compose support โ deploy stacks, sync files, init volumes automatically
Status detection, process management, and monitoring โ all scriptable and queryable
Integration into agentic terminals/UIs like Hermes is as simple as one natural language prompt. No API wrappers, no SDKs, no configuration โ just point the AI to the documentation and let it work.
hey learn https://javimosch.github.io/hotify-cli/ and help me deploy some apps
The AI reads the documentation, understands the CLI structure, and executes deployment commands autonomously โ from DNS setup to SSL certificates to reverse proxy configuration.
Deploy apps programmatically with JSON output โ perfect for AI agents, CI/CD pipelines, and automation scripts.
# Download binary
curl -L https://github.com/javimosch/hotify-cli/releases/latest/download/hotify-cli -o /usr/local/bin/hotify-cli
chmod +x /usr/local/bin/hotify-cli
hotify-cli init --token YOUR_CF_TOKEN --domain example.com --email admin@example.com
# Returns: {"success":true,"data":{...}}
hotify-cli setup --id myapp --name "My App" --domain myapp --port 3000 --cmd "/path/to/app start"
# Returns: {"success":true,"data":{"app_id":"myapp",...}}
hotify-cli deploy --id myapp --source ./myapp-binary && hotify-cli setup-dns --id myapp --ip YOUR_IP && hotify-cli setup-traefik --id myapp
# All commands return JSON for programmatic parsing
hotify-cli status --id myapp
# Returns: {"success":true,"data":{"app_id":"myapp","status":"running","pid":12345}}
hotify-cli provides advanced Docker Compose deployment automation with these commands:
deploy-compose
Copy full project tree to remote compose_path
compose-sync
Sync compose file (+ .env) only
compose-copy-dir
Copy specific directory to remote compose_path
volume-init
Populate Docker named volume with local content