Coolify: Tự host PaaS của riêng mình, bỏ Vercel/Heroku được rồi
Coolify giúp bạn biến VPS thường thành platform deploy xịn như Vercel, Heroku hoàn toàn miễn phí, open-source, và không bị vendor lock-in.
Nguyễn Nhật Long
@nguyennhatlong1303
Chắc hẳn anh em dev nào cũng từng trải qua cái cảm giác này: side project nhỏ nhỏ, deploy lên Vercel hay Heroku free tier ngon lành. Rồi project lớn dần, traffic tăng, thêm vài cái database, vài cái worker bỗng dưng bill cuối tháng nhảy lên con số không còn vui nữa. Hoặc tệ hơn, Heroku xóa free tier luôn rồi, Vercel thì serverless function timeout 10 giây khiến bạn phải redesign cả flow xử lý.
Mình đã ở trong tình huống đó, và Coolify là thứ đã thay đổi hoàn toàn cách mình nghĩ về việc deploy application.
Coolify là cái gì mà hot vậy?
Nói ngắn gọn, Coolify là một PaaS (Platform as a Service) open-source, self-hosted. Bạn cài nó lên một con VPS bất kỳ DigitalOcean, Hetzner, Vultr, hay thậm chí cái Raspberry Pi đang nằm trên bàn và nó biến con server đó thành một platform deploy giống hệt Vercel, Heroku, Netlify. Có dashboard đẹp, có auto-deploy từ Git, có SSL tự động, có database management, có monitoring. Tất cả chạy trên server của bạn, data của bạn, không phụ thuộc ai.
Repo trên GitHub hiện tại đã hơn 56k stars con số không hề nhỏ. Community rất active, và project được maintain bởi team coollabsio khá nghiêm túc.
Điểm mình thích nhất ở Coolify so với việc tự setup Docker + Nginx + CI/CD thủ công: nó abstract đi đúng lượng complexity vừa đủ. Bạn vẫn có toàn quyền kiểm soát server, nhưng không phải ngồi viết Nginx config hay debug Let's Encrypt certificate nữa.
So sánh nhanh với các platform phổ biến
Trước khi đi sâu, mình muốn đặt Coolify cạnh các lựa chọn khác để anh em có cái nhìn tổng quan:
Nhìn bảng này thì thấy rõ: nếu bạn đã có VPS (mà VPS bây giờ rẻ lắm, Hetzner 3-4 EUR/tháng cho 2 vCPU + 4GB RAM), thì Coolify cho bạn nhiều hơn hẳn so với free tier của bất kỳ platform nào.
| Tiêu chí | Vercel | Heroku | Netlify | Coolify |
|---|---|---|---|---|
| Chi phí | Free tier giới hạn, scale đắt | Không còn free tier, $5+/dyno | Free tier giới hạn | Miễn phí (chỉ tốn tiền VPS) |
| Self-hosted | Không | Không | Không | Có |
| Database tích hợp | Vercel Postgres (đắt) | Heroku Postgres | Không | PostgreSQL, MySQL, MongoDB, Redis... |
| Vendor lock-in | Cao (serverless functions) | Trung bình | Cao (Netlify Functions) | Không |
| Custom domain + SSL | Có | Có | Có | Có (auto Let's Encrypt) |
| Docker support | Không trực tiếp | Có (container) | Không | Có (native) |
| One-click services | Không | Add-ons (tốn phí) | Không | 280+ services miễn phí |
| Monitoring | Basic | Basic | Basic | Tích hợp sẵn |
Cài đặt đúng một dòng lệnh
Đây là phần mình thấy Coolify làm rất tốt. Không cần biết Docker Compose là gì, không cần config gì cả. SSH vào server rồi chạy:
1curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Script này sẽ tự động:
- Cài Docker nếu chưa có
- Pull các image cần thiết
- Setup Coolify application + database
- Tạo reverse proxy (Traefik)
- Mở dashboard trên port 8000
Sau khi chạy xong (thường mất 2-3 phút tùy tốc độ mạng), bạn truy cập http://your-server-ip:8000, tạo account admin, và bắt đầu deploy.
Mình khuyên anh em nên dùng server tối thiểu 2 vCPU, 2GB RAM cho Coolify. Bản thân Coolify chạy cũng ngốn khoảng 500MB RAM rồi, nên 1GB RAM sẽ khá chật.
Recommend server cho từng use case
| Use case | RAM | vCPU | Giá tham khảo (Hetzner) |
|---|---|---|---|
| Dev/testing cá nhân | 2GB | 2 | ~€4/tháng |
| 2-3 apps + 1 database | 4GB | 2 | ~€6/tháng |
| Production nhỏ (5-10 apps) | 8GB | 4 | ~€12/tháng |
| Production nhiều services | 16GB+ | 4+ | ~€20+/tháng |
Deploy ứng dụng đầu tiên
Sau khi vào dashboard, flow deploy rất straightforward. Mình sẽ walk through cụ thể việc deploy một app Next.js từ GitHub.
Bước 1: Kết nối GitHub
Vào Settings → Git Sources → thêm GitHub. Coolify sẽ yêu cầu bạn tạo một GitHub App (nó hướng dẫn từng bước luôn). Sau khi authorize xong, bạn có thể chọn repo từ tài khoản GitHub của mình.
Bước 2: Tạo resource mới
Click "+ New" → Application → chọn GitHub repo → chọn branch. Coolify sẽ tự detect xem project dùng framework gì (Next.js, Nuxt, Laravel, static site...) và suggest build pack phù hợp.
Bước 3: Config environment
Thêm environment variables ngay trên UI. Không cần tạo file .env trên server, không cần SSH vào set biến. Giao diện rõ ràng, có thể mark variable là secret để không hiển thị value.
Bước 4: Deploy
Bấm Deploy. Xong. Coolify sẽ pull code, build, tạo container, setup reverse proxy, và cấp SSL certificate tự động nếu bạn đã trỏ domain.
Cái hay là từ lần deploy thứ hai trở đi, nếu bạn bật auto-deploy, mỗi lần push code lên branch đã config, Coolify tự động build và deploy lại. Giống hệt Vercel.
Nixpacks, Dockerfile, hay Docker Compose bạn chọn
Coolify hỗ trợ nhiều cách build khác nhau, và đây là điểm mình thấy nó flexible hơn Vercel/Netlify rất nhiều:
Nixpacks (default): Tự động detect ngôn ngữ và framework, tạo container mà bạn không cần viết Dockerfile. Giống cách Heroku buildpacks hoạt động. Hỗ trợ Node.js, Python, Go, Rust, PHP, Ruby, Java...
Dockerfile: Nếu bạn đã có Dockerfile sẵn trong repo, Coolify sẽ dùng nó. Đây là cách mình prefer nhất vì kiểm soát được chính xác môi trường build.
Docker Compose: Đây là killer feature. Bạn có file docker-compose.yml phức tạp với nhiều services? Coolify handle được luôn. Cứ point nó vào file compose, nó sẽ deploy toàn bộ stack.
Ví dụ, mình có một project cần Next.js frontend + Express API + PostgreSQL + Redis. Với Vercel, mình phải tách ra deploy ở 3-4 chỗ khác nhau. Với Coolify, một file docker-compose.yml là xong:
1version: '3.8'2services:3 frontend:4 build:5 context: ./frontend6 dockerfile: Dockerfile7 ports:8 - "3000:3000"9 environment:10 - API_URL=http://api:400011 depends_on:12 - api1314 api:15 build:16 context: ./api17 dockerfile: Dockerfile18 ports:19 - "4000:4000"20 environment:21 - DATABASE_URL=postgresql://postgres:secret@db:5432/myapp22 - REDIS_URL=redis://cache:637923 depends_on:24 - db25 - cache2627 db:28 image: postgres:16-alpine29 volumes:30 - pgdata:/var/lib/postgresql/data31 environment:32 - POSTGRES_PASSWORD=secret33 - POSTGRES_DB=myapp3435 cache:36 image: redis:7-alpine37 volumes:38 - redisdata:/data3940volumes:41 pgdata:42 redisdata:
Deploy cả stack này trên Coolify chỉ cần vài click. Thử làm điều tương tự trên Vercel xem không thể.
280+ one-click services cái này đỉnh thật
Ngoài việc deploy app của mình, Coolify còn có marketplace với hơn 280 services có thể deploy bằng một click. Một vài cái mình hay dùng:
- PostgreSQL, MySQL, MariaDB, MongoDB database chính
- Redis, KeyDB caching
- MinIO S3-compatible object storage (thay thế AWS S3)
- Plausible Analytics thay Google Analytics, privacy-friendly
- Uptime Kuma monitoring uptime
- n8n workflow automation (thay Zapier)
- Gitea self-hosted Git (thay GitHub cho internal projects)
- Grafana + Prometheus monitoring stack
Mỗi service đều đã được pre-configured, bạn chỉ cần click deploy, set vài biến môi trường cơ bản là chạy. Không cần Google "how to install Plausible with Docker" rồi ngồi debug config nữa.
Quản lý nhiều server cùng lúc
Một điểm mà mình thấy nhiều người bỏ qua: Coolify không chỉ quản lý server mà nó được cài lên. Bạn có thể thêm nhiều server khác nhau vào Coolify, chỉ cần SSH access. Nghĩa là bạn có thể có:
- 1 con VPS ở Hetzner chạy Coolify (control plane)
- 1 con VPS ở DigitalOcean chạy production apps
- 1 con VPS ở Vultr chạy staging
- 1 con Raspberry Pi ở nhà chạy internal tools
Tất cả quản lý từ một dashboard duy nhất. Khi deploy app mới, bạn chọn muốn deploy lên server nào. Cực kỳ tiện cho team nhỏ mà cần quản lý nhiều môi trường.
Để thêm server mới, vào dashboard → Servers → Add Server:
1IP: 192.168.1.1002Port: 223User: root4Private Key: (paste SSH private key)
Coolify sẽ SSH vào, cài Docker nếu cần, và server đó sẵn sàng nhận deployment.
Backup database tự động
Một tính năng mà mình đánh giá rất cao: scheduled database backups. Với mỗi database bạn tạo trên Coolify, bạn có thể config backup tự động:
- Tần suất: mỗi giờ, mỗi ngày, mỗi tuần (dùng cron expression)
- Lưu ở đâu: local hoặc S3-compatible storage
- Retention: giữ bao nhiêu bản backup
Với mình, config backup thường như thế này:
1Frequency: 0 2 * * * (2 giờ sáng mỗi ngày)2S3 Bucket: my-backups3Retention: 30 (giữ 30 bản gần nhất)
Không cần viết cron job thủ công, không cần script pg_dump rồi upload S3. Coolify handle hết.
Một vài tips từ kinh nghiệm thực tế
Sau hơn một năm dùng Coolify cho cả project cá nhân lẫn project cho khách hàng nhỏ, mình rút ra được vài điều:
Luôn đặt Coolify trên server riêng biệt nếu bạn dùng cho production. Đừng cài Coolify chung với server chạy app. Lý do: nếu server app bị quá tải, bạn vẫn access được dashboard để debug. Và ngược lại, nếu Coolify có vấn đề, app vẫn chạy bình thường vì container đã được deploy rồi.
Setup webhook notification sớm. Coolify hỗ trợ gửi notification qua Discord, Telegram, Slack, Email khi deploy thành công/thất bại, khi server resource cao, khi backup hoàn thành. Config ngay từ đầu, đừng đợi đến lúc deploy fail mới biết.
Cẩn thận với RAM. Đây là lỗi mình gặp nhiều nhất. Mỗi container ngốn RAM, mỗi build process cũng ngốn RAM. Nếu server 2GB RAM mà bạn cố deploy 5-6 app + 2 database thì sẽ OOM (Out of Memory) và server crash. Dùng docker stats để monitor thường xuyên.
1# Check resource usage của tất cả containers2docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Đừng quên update Coolify. Team phát triển release khá thường xuyên, và mỗi bản update thường fix khá nhiều bug. Update ngay trên dashboard, chỉ cần click một nút.
Khi nào KHÔNG nên dùng Coolify?
Mình không muốn oversell. Có những trường hợp Coolify không phải lựa chọn tốt nhất:
- Bạn cần edge functions / serverless ở nhiều region: Vercel, Cloudflare Workers vẫn vượt trội ở điểm này. Coolify chạy trên server cố định, không có edge network.
- Team lớn cần RBAC phức tạp: Coolify có team management nhưng còn basic. Nếu bạn cần permission chi tiết đến từng resource thì chưa đủ.
- Bạn không muốn quản lý server: Dù Coolify đã abstract đi nhiều thứ, cuối cùng bạn vẫn phải maintain server update OS, monitor disk space, handle security patches. Nếu bạn muốn zero-ops thật sự thì managed platform vẫn phù hợp hơn.
Nhưng nếu bạn là dev thích tự kiểm soát, muốn tiết kiệm chi phí, và không ngại SSH vào server thỉnh thoảng Coolify là lựa chọn mình recommend nhất ở thời điểm hiện tại. 56k stars trên GitHub không phải tự nhiên mà có. Anh em thử cài lên một con VPS rẻ nhất, nghịch vài ngày là sẽ thấy cái giá trị thực sự của nó.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!