Claude Code Plugins

Community-maintained marketplace

Feedback

coolify-deployment

@stakpak/community-paks
3
0

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name coolify-deployment
description Deploy Coolify self-hosted PaaS for application hosting. Covers VM provisioning, installation, GitHub integration, and application deployment with auto-SSL.
license MIT
tags coolify, paas, self-hosted, docker, deployment, heroku-alternative, ssl, traefik
metadata [object Object]

Coolify Self-Hosted PaaS Deployment

Quick Start

Install Coolify on VM

ssh -i <key-file> <user>@<instance-ip>
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
# Access: http://<instance-ip>:8000

Deploy Application

  1. Access Coolify UI at http://<instance-ip>:8000
  2. Create admin account (first visitor gets admin)
  3. Add GitHub source → Create project → Deploy from repo
  4. Access app at http://<container-id>.<instance-ip>.sslip.io

Server Requirements

Resource Minimum Recommended
CPU 2 vCPU 4 vCPU
RAM 2GB 4GB
Storage 30GB 50GB
OS Ubuntu 20.04/22.04/24.04 LTS Ubuntu 24.04 LTS

Required Ports:

  • TCP 22 (SSH)
  • TCP 80 (HTTP/Let's Encrypt)
  • TCP 443 (HTTPS)
  • TCP 8000 (Coolify UI)

Cloud VM Deployment

1. Provision Infrastructure

# Create security group with required ports
# - TCP 22 (SSH)
# - TCP 80 (HTTP)
# - TCP 443 (HTTPS)
# - TCP 8000 (Coolify UI)

# Launch instance with:
# - 2+ vCPU, 2GB+ RAM
# - 30GB+ root volume
# - Ubuntu LTS
# - Public IP
# - SSH key pair

2. Install Coolify

# Set key permissions
chmod 400 /path/to/key.pem

# Connect and install
ssh -o StrictHostKeyChecking=no -i /path/to/key.pem <user>@<instance-ip>
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

3. Initial Setup

  1. Open browser: http://<instance-ip>:8000
  2. IMPORTANT: Create admin account immediately
  3. Complete setup wizard

4. Verify Installation

ssh -i /path/to/key.pem <user>@<instance-ip> \
  "sudo docker ps --format 'table {{.Names}}\t{{.Status}}' | grep coolify"

Application Deployment

Supported Build Methods

Method Use Case
Dockerfile Custom container builds
Nixpacks Auto-detected language builds
Docker Compose Multi-container apps
Static HTML/JS/CSS sites

Deploy from GitHub

  1. Add Source: Sources → Add New → GitHub App
  2. Create Project: Projects → Add New Project
  3. Add Resource: Add New Resource → Public/Private Repository
  4. Configure:
    • Repository URL
    • Branch
    • Build pack (Dockerfile/Nixpacks)
    • Port to expose
  5. Deploy: Click Deploy button

Sample Dockerfile Application

app/
├── main.py          # Application code
├── requirements.txt # Dependencies
└── Dockerfile       # Container definition

Dockerfile:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]

Domain Configuration

Auto-generated (sslip.io):

  • Format: <container-id>.<public-ip>.sslip.io
  • Works immediately, no DNS required

Custom Domain:

  1. Add DNS A record → EC2 public IP
  2. Update domain in Coolify resource settings
  3. Enable SSL (Let's Encrypt auto-configured)

Verification

Check Container Status

ssh -i /path/to/key.pem <user>@<instance-ip> \
  "sudo docker ps --format 'table {{.Names}}\t{{.Ports}}\t{{.Status}}'"

Test Application

# Get app URL from Coolify UI
APP_URL="http://<container-id>.<public-ip>.sslip.io"

curl -s $APP_URL/
curl -s $APP_URL/health

Check Logs

# Application logs
ssh -i /path/to/key.pem <user>@<instance-ip> \
  "sudo docker logs <container-name> --tail 50"

# Coolify logs
ssh -i /path/to/key.pem <user>@<instance-ip> \
  "sudo docker logs coolify --tail 50"

Configuration Reference

Coolify Containers

Container Purpose Port
coolify Main application 8000
coolify-proxy Traefik reverse proxy 80, 443
coolify-db PostgreSQL database 5432
coolify-redis Redis cache 6379
coolify-realtime WebSocket server 6001-6002

Important Paths

Path Purpose
/data/coolify/source/.env Coolify configuration
/data/coolify/proxy/dynamic/ Traefik dynamic config
/data/coolify/applications/ Application data
/data/coolify/databases/ Database volumes

Environment Variables (Installation)

Variable Purpose Example
ROOT_USERNAME Admin username admin
ROOT_USER_EMAIL Admin email admin@example.com
ROOT_USER_PASSWORD Admin password SecurePass123
AUTOUPDATE Auto-update toggle true/false

Production Checklist

  • Create admin account immediately after install
  • Backup /data/coolify/source/.env to secure location
  • Configure firewall/security group rules
  • Set up custom domain with SSL
  • Restrict SSH access to specific IPs
  • Configure monitoring/alerts
  • Test deployment rollback procedure
  • Document access credentials securely

Troubleshooting

Issue Solution
404 on public IP Access via sslip.io domain, not raw IP
Cannot access Coolify UI Check security group allows port 8000
Deployment fails Check Coolify logs and Dockerfile syntax
SSL certificate fails Ensure port 80 open, DNS configured
Container not starting Check container logs for errors
Out of disk space Prune Docker: docker system prune -a
Coolify unresponsive Restart: docker restart coolify

Update Coolify

ssh -i /path/to/key.pem <user>@<instance-ip> \
  "cd /data/coolify/source && sudo bash upgrade.sh"

Cleanup

# Stop all containers
ssh -i /path/to/key.pem <user>@<instance-ip> \
  "cd /data/coolify/source && sudo docker compose down"

# Remove Coolify data (destructive)
ssh -i /path/to/key.pem <user>@<instance-ip> \
  "sudo rm -rf /data/coolify"

# Terminate cloud instance

References