Installs and manages Coolify, an open-source self-hosted PaaS for deploying applications with Docker. Provides a Heroku-like experience on your own infrastructure. Use when: installing Coolify, deploying Docker apps, setting up a self-hosted PaaS, or configuring the Traefik proxy. Keywords: coolify, self-hosted paas, docker deployment, traefik proxy, open source heroku
This skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdassets/env-templateinput-schema.jsonreferences/BUNDLED_SCRIPTS.mdreferences/ENHANCED_SETUP.mdreferences/INSTALLATION.mdreferences/TROUBLESHOOTING_CF1033.mdreferences/cloudflare-origin-certificates.mdreferences/cloudflare-tunnel.mdscripts/coolify-fix-dns.shtemplates/enhanced-quick-start.mdtemplates/env-enhanced.examplePurpose: Install and operate Coolify on a single server, then deploy apps via Nixpacks, Dockerfile, or Docker Compose.
STOP. Before ANY installation commands, collect ALL parameters from the user.
Copy this checklist and confirm each item:
Required Parameters:
- [ ] COOLIFY_SERVER_IP - Target server IP address
- [ ] SSH_USER - SSH username (default: ubuntu)
- [ ] SSH_KEY_PATH - Path to SSH private key (default: ~/.ssh/id_rsa)
- [ ] COOLIFY_ROOT_USER_EMAIL - Admin email address
- [ ] COOLIFY_ROOT_USER_PASSWORD - Admin password (see requirements below)
- [ ] COOLIFY_INSTANCE_DOMAIN - Main Coolify URL (e.g., coolify.example.com)
- [ ] COOLIFY_WILDCARD_DOMAIN - Base domain for apps (e.g., example.com)
Conditional Parameters (ask user):
- [ ] Using Cloudflare Tunnel for HTTPS? (Y/N)
If Y: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID
- [ ] Need OAuth callbacks or webhooks? (Y/N)
If Y: Will configure origin certificates
- [ ] Additional SSH public keys to authorize? (optional)
DO NOT proceed to Step 1 until ALL required parameters are confirmed.
Based on user answers, follow the appropriate workflow:
Use when: New server, Cloudflare Tunnel for HTTPS, standard setup.
references/ENHANCED_SETUP.mdUse when: Existing server, custom requirements, or debugging.
references/INSTALLATION.mdDetermine access method based on Step 0 answers:
| Scenario | Action |
|---|---|
| Cloudflare Tunnel = Yes | Read references/cloudflare-tunnel.md |
| OAuth/webhooks = Yes | Also read references/cloudflare-origin-certificates.md |
| Direct IP only (dev) | Skip tunnel, access via http://SERVER_IP:8000 |
Run this verification checklist:
Verification:
- [ ] Coolify UI accessible at configured domain or IP:8000
- [ ] Login with COOLIFY_ROOT_USER_EMAIL and password works
- [ ] Servers → localhost shows "Connected" (green)
- [ ] If tunnel: HTTPS working at COOLIFY_INSTANCE_DOMAIN
If localhost not connected: The SSH key configuration failed. See references/INSTALLATION.md section "Configure Coolify SSH Access".
Detailed references (one level deep):
references/INSTALLATION.mdreferences/ENHANCED_SETUP.mdreferences/BUNDLED_SCRIPTS.mdreferences/cloudflare-tunnel.mdreferences/cloudflare-origin-certificates.mdreferences/TROUBLESHOOTING_CF1033.md/data/coolify intact; treat it as state.Log major operations using centralized logging from admin:
log_admin "SUCCESS" "installation" "Installed Coolify" "version=4.x server=$SERVER_ID"
log_admin "SUCCESS" "system-change" "Configured Coolify" "domain=$DOMAIN"
log_admin "SUCCESS" "operation" "Deployed app via Coolify" "app=$APP_NAME"
admin-devops for inventory and provisioning.admin-infra-* for provider-specific VM setup.admin-wsl for local Docker/CLI support when coordinating from WSL.