What is Coolify?
Coolify is an open-source, self-hosted Platform as a Service (PaaS) that serves as an alternative to Heroku, Netlify, and Vercel. Version 4 is a complete rewrite built with Laravel, Livewire, and Docker, offering a modern UI for deploying applications, databases, and services on your own infrastructure. It supports automatic SSL, Git integration, and one-click service deployments.
Prerequisites
- A VPS with at least 2 CPU cores and 2GB RAM (4GB recommended)
- Ubuntu 22.04 or newer / Debian 12+
- Root SSH access
- A domain name pointed to your server
Installing Coolify v4
# Run the official installer
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# The installer will:
# 1. Install Docker and Docker Compose
# 2. Set up the Coolify container stack
# 3. Configure Traefik as reverse proxy
# 4. Generate SSH keys for server management
# 5. Start the web UI on port 8000
Initial Setup
# Access the UI at http://YOUR_SERVER_IP:8000
# Create your admin account on first visit
# In Settings > General, set your instance FQDN
# Coolify auto-provisions SSL certificates via Traefik
Deploying Applications
From Git Repositories
# 1. Projects > Create New Resource > Application
# 2. Connect GitHub/GitLab/Bitbucket
# 3. Select repository and branch
# 4. Coolify auto-detects framework:
# - Dockerfile (uses it directly)
# - package.json (Node.js via Nixpacks)
# - requirements.txt (Python)
# - composer.json (PHP/Laravel)
# 5. Set environment variables
# 6. Configure domain and SSL
# 7. Deploy
Docker Compose Deployments
# Create New Resource > Docker Compose
# Paste or link your docker-compose.yml
# Coolify handles networking, volumes, and SSL
# Connect domains to specific services in the stack
One-Click Services
Coolify offers 100+ one-click deployable services including PostgreSQL, MySQL, Redis, WordPress, Ghost, Plausible Analytics, Gitea, MinIO, and Uptime Kuma. Select from Projects > New Resource > Service, search, configure, and deploy with one click.
Environment Variables and Secrets
# Per-application variables in Application Settings
# Shared variables across apps: Settings > Shared Variables
# Reference shared vars: {{global.VARIABLE_NAME}}
# Toggle Build Variable for build-time vs runtime injection
Automatic Deployments
# Enable Auto Deploy in application settings
# Copy webhook URL and add to your Git provider
# Every push to the configured branch triggers deployment
# Preview deployments for pull requests
# Each PR gets its own URL: pr-123.yourdomain.com
Persistent Storage and Backups
# Configure volumes in Application Settings > Storages
# Add paths like /app/data mapped to Docker volumes
# Volumes persist across deployments
# Database backups are built-in:
# Resources > Database > Backups
# Configure schedule and S3-compatible storage
Monitoring and Notifications
# Real-time logs: Application > Logs
# Container metrics: Application > Monitoring
# Server dashboard: CPU, RAM, disk per server
# Notifications: Email, Slack, Discord, Telegram, webhooks
Security Hardening
- Change the default port 8000 or put behind a reverse proxy
- Enable two-factor authentication for admin accounts
- Configure webhook secrets for Git integrations
- Regularly update via the UI or re-running the install script
- Use environment variable encryption for sensitive values
Troubleshooting
# Check Coolify containers
docker ps --filter name=coolify
# View logs
docker logs coolify -f --tail 100
# Restart Coolify
docker restart coolify coolify-proxy coolify-realtime
# Reset admin password
docker exec coolify php artisan user:reset-password