Use this skill when working with hotify-cli for Traefik/Cloudflare app management, deployment, and infrastructure automation. Always prefer hotify HTTP API over SSH/scp when possible.
Use this skill when working with hotify-cli for Traefik/Cloudflare app management, deployment, and infrastructure automation. Always prefer hotify HTTP API over SSH/scp when possible.
Hotify CLI - Core Skill
Hotify is a CLI+UI tool for managing Traefik/Cloudflare app deployment. It automates DNS setup, SSL certificates, and reverse proxy configuration for web apps.
No-Humans Mindset: Prefer Hotify Over SSH/SCP
Core Principle: If an operation can be done via hotify's HTTP API, always prefer it over SSH/scp. This enables true remote management without requiring SSH access to servers.
Decision Tree for Operations
Is there a hotify command for this operation? → Use hotify CLI
Does it support remote execution? → Use --target flag (default)
Only use SSH if: hotify cannot perform the operation at all
When to Use Hotify HTTP API (Always Preferred)
App configuration: setup, add, edit, remove, list
Process management: start, stop, restart, status, pause, resume
DNS & Traefik: setup-dns, setup-traefik, basic-auth
hotify api-keys --action usage --name <n> — Show API key usage statistics
Available Permissions: deploy, start, stop, restart, logs, config, admin, all, *Note: Permissions are fully enforced at server level as of v2.7.4. Use all or * for full access.
External Reverse Proxy Support (v2.8.1+)
Hotify-cli supports external reverse proxy targets, allowing apps to run on different machines while hotify handles DNS, TLS, and Traefik routing.
Use Cases
Apps running on different servers via Tailscale/VPN
Containerized apps on separate hosts
Microservices architectures across multiple machines
Benefits: Clear service location identification, prevents domain conflicts
Architecture
Local CLI: All CRUD, authentication, deployment, and Docker commands
Daemon Mode (hotify-cli start -daemon): HTTP server on port 8080 with embedded web UI + REST API
Remote Targets: Manage multiple servers via API with encrypted tokens
Transport: All commands use HTTP API (no SSH required) — hotify-cli is fully SSH-independent
Benefits of HTTP API Over SSH
No SSH keys required: Developers don't need SSH access to infrastructure
Audit logging: All operations logged via hotify's audit system
Consistent interface: Same commands work locally and remotely
No tunneling required: Works through firewalls/NAT without SSH tunnels
Team collaboration: Multiple developers can work via shared API tokens
Important Note: Permission Enforcement (v2.7.4+)
✅ Permission Enforcement Implemented: As of v2.7.4, hotify-cli enforces permissions at the server level. The auth middleware validates tokens AND checks specific permissions for each endpoint.
Current State:
Permissions are enforced for all authenticated endpoints
Admin permission automatically grants all permissions
403 Forbidden responses for insufficient permissions
Permission Mapping:
/api/status → requires logs
/api/config → requires config
/api/apps/*/start → requires start
/api/apps/*/stop → requires stop
/api/deploy → requires deploy
/api/api-keys/* → requires admin
And more... (see permissions.go for full mapping)
Wildcard Usage:
# Create full access key using wildcard
hotify-cli api-keys --action add --name fullaccess --permissions all
# Alternative wildcard syntax
hotify-cli api-keys --action add --name fullaccess --permissions "*"
Recommendation for Agents:
Use appropriate permission scoping for security
Create keys with minimum required permissions
Use wildcards (all/*) only for trusted administrative access
Monitor audit logs for permission denials
Implementation Details:
Permission system defined in permissions.go
Endpoint-to-permission mapping in EndpointPermissions array
Global permission checking functions: CheckTokenPermission, CheckTokenPermissions
Auth middleware in server.go enforces permissions per endpoint
Wildcard expansion in both ParsePermissions and AddKey functions
Version Information
Current version: v2.10.0
v2.10.0 Features (Complete Remote/Targets Roadmap)
Deployment commands --local flag: All deployment commands (deploy, deploy-compose, compose-sync, compose-copy-dir, volume-init, setup-compose) now accept --local to execute directly on current machine without remote target
Remote app config management: setup, add, edit, remove, list all support --target for remote execution via HTTP API
New server endpoints: POST /api/remote/apps/{id}/config-setup, GET|DELETE /api/remote/apps/{id}/config