Coolify로 할 수 있는 것들, Next.js 배포가 전부가 아니다




Coolify는 종종 “셀프호스팅 Vercel”로 소개된다. 이 표현은 절반만 맞다. Vercel을 대체하는 기능은 분명히 있지만, Coolify는 그보다 훨씬 광범위한 셀프호스팅 PaaS다. 이 글은 Coolify의 실제 활용 범위를 정리한다.

흔한 오해

Coolify를 처음 접하면 보통 다음과 같이 인식하게 된다.

“GitHub 레포 연결해서 자동 배포해주는 도구. 그러니까 Vercel 같은 거.”

이 인식은 Coolify의 일부만 본 것이다. 실제로 Coolify가 다루는 리소스 종류는 5가지로 나뉘며, 각각이 독립적인 활용 시나리오를 가진다.

Coolify가 다루는 리소스 5종

Coolify에서 “New Resource” 버튼을 누르면 다음 카테고리가 표시된다.

1. Application (코드 기반 앱 배포)

GitHub/GitLab 레포의 소스 코드를 가져와 빌드하고 배포하는 방식. 가장 흔히 사용되는 카테고리다.

지원 빌드 방식:

  • Nixpacks: 언어/프레임워크 자동 감지 후 빌드 (기본값)
  • Dockerfile: 레포 내 Dockerfile 사용
  • Static: 정적 파일만 서빙

실제 지원 범위:

  • 프론트엔드: Next.js, Nuxt, SvelteKit, Astro, Vue, React, Angular
  • 백엔드: Node.js, Python(Django/Flask/FastAPI), Go, Rust, Java, PHP, Ruby
  • 정적 사이트: Hugo, Jekyll, Eleventy, Gatsby

Nixpacks가 자동 감지하므로 대부분의 표준 프로젝트는 Dockerfile 없이도 배포 가능하다.

2. Database (DB 원클릭 배포)

이것이 Coolify의 숨은 강점이다. UI에서 클릭 한 번으로 DB 컨테이너를 띄울 수 있다.

지원 DB:

DB카테고리
PostgreSQL범용 관계형
MySQL / MariaDB관계형
MongoDB문서형 NoSQL
Redis인메모리 캐시
KeyDBRedis 호환, 멀티스레드
DragonflyDBRedis 호환, 고성능
ClickHouse분석용 컬럼 DB

자동으로 처리되는 작업:

  • 볼륨 마운트 (데이터 영속화)
  • 비밀번호 자동 생성
  • 백업 스케줄 설정 (S3 호환 스토리지로 자동 업로드)
  • 같은 Docker 네트워크 내 컨테이너 이름으로 접근

앱 컨테이너에서 다음과 같이 연결한다.

DATABASE_URL=postgresql://postgres:비번@my-postgres-xxx:5432/postgres

별도의 DB 서버 셋업, 보안 설정, 백업 스크립트 작성이 필요 없다.

3. Service (사전 정의된 서비스 템플릿)

오픈소스 서비스 100개 이상을 템플릿 형태로 제공한다. 클릭 한 번으로 배포되며, 필요한 환경변수와 볼륨이 자동 설정된다.

카테고리별로 정리하면 다음과 같다.

분석 / 추적

  • Plausible, Umami, PostHog, Matomo
  • Google Analytics를 대체하는 프라이버시 친화적 도구들

모니터링 / 운영

  • Grafana, Prometheus
  • Uptime Kuma (상태 페이지)
  • Glances (서버 리소스 모니터링)

개발 도구

  • Gitea, Forgejo (셀프호스팅 Git)
  • GitLab (대형 버전)
  • Drone, Woodpecker (CI/CD)

스토리지

  • MinIO (S3 호환)
  • Nextcloud, Owncloud

팀 협업 / 커뮤니케이션

  • Rocket.Chat, Mattermost (Slack 대안)
  • Mailcow, Mailu (메일 서버)
  • Listmonk (뉴스레터)

문서 / 노트

  • Outline, BookStack, Wiki.js
  • Trilium
  • AppFlowy, Affine (Notion 대안)

자동화

  • n8n (Zapier 대안)
  • Activepieces
  • Huginn

미디어

  • Jellyfin, Plex
  • Immich (Google Photos 대안)
  • PhotoPrism

AI / ML

  • Ollama (로컬 LLM 실행)
  • Open WebUI (ChatGPT 스타일 UI)
  • Stable Diffusion WebUI

비즈니스 도구

  • Cal.com (Calendly 대안)
  • Documenso (DocuSign 대안)
  • Ghost, WordPress
  • Strapi, Directus, PocketBase (Headless CMS)

보안 / 네트워크

  • Vaultwarden (Bitwarden 셀프호스팅)
  • Pi-hole, AdGuard Home (DNS 광고 차단)

각 서비스는 공식 Docker 이미지를 기반으로 검증된 설정으로 배포된다. 직접 docker-compose.yml을 작성할 필요가 없다.

4. Docker Compose

위 카테고리에 없는 서비스나 복잡한 멀티 컨테이너 구성은 docker-compose.yml을 통째로 붙여넣어 관리한다.

장점은 다음과 같다.

  • 기존 compose 파일을 그대로 가져올 수 있음
  • Coolify UI에서 시작/중지/로그 관리
  • 환경변수를 UI에서 관리
  • 백업 통합

복잡한 자체 스택을 그대로 옮기면서 운영 편의성만 얻을 때 유용하다.

5. Docker Image (직접 지정)

Docker Hub, GHCR, 자체 레지스트리의 이미지를 직접 지정해서 배포한다.

이미지: ghcr.io/myorg/my-app:v1.2.3
포트: 3000
환경변수: ...
볼륨: /data

직접 빌드한 이미지를 외부 CI에서 푸시하고, Coolify는 배포만 담당하는 분업 구조에 적합하다.

통합 운영의 가치

각 리소스 종류를 개별로 보면 다른 도구로도 가능한 일이다. Coolify의 진짜 가치는 이 모든 것을 한 대시보드에서 관리한다는 점에 있다.

한 곳에서 보이는 것들

  • 모든 앱의 상태 (정상/오류)
  • 모든 DB의 상태
  • 모든 서비스의 상태
  • 서버 전체 리소스 (CPU/메모리/디스크)
  • 각 컨테이너의 실시간 로그
  • 최근 배포 이력

전통적인 셀프호스팅에서는 이 정보를 얻기 위해 여러 도구를 조합해야 했다.

라이프사이클 관리

각 리소스마다 동일한 조작이 가능하다.

동작의미
Start중지된 컨테이너 시작
Stop컨테이너 정지
Restart재시작
Redeploy재빌드 후 재배포
Force Redeploy캐시 무시 재빌드
Delete완전 제거

UI에서 일관된 방식으로 제어 가능하다. SSH로 들어가서 docker 명령을 칠 필요가 없다.

환경변수의 통합 관리

각 리소스의 환경변수가 UI에서 관리된다. Secret 마스킹, Build Variable 구분, .env 파일 일괄 입력 등이 지원된다.

리소스 간 연결도 자연스럽다. PostgreSQL을 추가하면 자동으로 컨테이너 이름이 노출되고, 앱 환경변수에서 그 이름으로 참조한다.

실제 활용 시나리오

Coolify가 어떻게 쓰이는지 시나리오로 살펴본다.

시나리오 A: 개인 인프라 일원화

개인 개발자가 여러 SaaS를 자체 호스팅으로 전환하는 경우.

기존 SaaSCoolify 셀프호스팅비고
VercelNext.js Application메인 사이트
SupabasePostgreSQL + PostgRESTDB
AWS S3MinIO파일 스토리지
Google AnalyticsPlausible분석
MailchimpListmonk뉴스레터
NotionOutline노트/위키
CalendlyCal.com미팅 예약
1PasswordVaultwarden비밀번호
LastPass AuthVaultwarden2FA

서버 한 대에서 모두 운영되며, 비용은 서버비 + 도메인비로 고정된다. 트래픽 기반 과금이 사라진다.

시나리오 B: 소규모 스타트업의 기반 인프라

구성 요소도구
프론트엔드Next.js (Application)
백엔드 APIFastAPI (Application)
메인 DBPostgreSQL
캐시/큐Redis
파일 저장소MinIO
분석PostHog
내부 채팅Mattermost
내부 GitGitea
모니터링Uptime Kuma + Grafana
자동화n8n

Vercel + AWS + Slack + Mixpanel + GitHub Enterprise 등을 결합하면 월 수십만 원이 나오는 구성을 한 서버에서 운영한다. 물론 직접 운영의 부담은 별도다.

시나리오 C: 개발/실험 환경

특정 기간만 필요한 환경을 빠르게 구성할 때.

  • AI 모델 실험 → Ollama + Open WebUI 클릭 배포
  • 새 프로젝트 DB 필요 → PostgreSQL 클릭
  • API 모킹 → 작은 Express 컨테이너
  • 실험 종료 → Delete 버튼

이런 식으로 사용 후 제거하는 사이클이 마찰 없이 돌아간다.

시나리오 D: 백오피스 / 내부 도구

외부 노출 없이 팀 내부에서만 사용할 도구들.

  • Vaultwarden (비밀번호 공유)
  • n8n (내부 자동화)
  • Gitea (코드 저장소)
  • BookStack (사내 위키)
  • Uptime Kuma (서비스 모니터링)

Cloudflare Access와 결합하면 인증된 팀 멤버만 접근하도록 제한할 수 있다.

docker-compose 직접 작성과의 비교

같은 일을 직접 docker-compose로 하면 어떻게 달라지는지 비교한다.

작업docker-compose 직접Coolify
새 앱 추가YAML 수정 + build + upUI에서 New Resource
환경변수 변경파일 수정 + restartUI에서 입력 + Restart 버튼
앱 정지docker compose stop serviceStop 버튼
로그 확인SSH + docker logs -fUI 실시간
새 코드 배포git pull + build + upgit push만 하면 자동
롤백이전 이미지 수동 지정Deployments에서 클릭
리소스 확인docker statsUI 대시보드
새 DB 추가YAML에 service 추가 + 볼륨템플릿에서 클릭
백업직접 스크립트 작성UI에서 스케줄 설정
모니터링별도 도구 셋업통합 제공

docker-compose 자체가 잘못된 도구는 아니다. 다만 운영 작업이 늘어날수록 수동 작업의 비중이 커진다. Coolify는 이를 추상화하는 레이어다.

한계와 트레이드오프

Coolify가 만능은 아니다. 다음 한계를 인지해야 한다.

추상화 비용

Coolify가 내부에서 자동으로 처리하는 부분을 디버깅하려면 Coolify의 동작 방식을 추가로 학습해야 한다. 단순 docker-compose보다 한 단계 더 위에 있는 셈이다.

Coolify 자체의 가용성

Coolify 컨테이너가 죽으면 관리 UI에 접근하지 못한다. 다행히 관리되는 앱들은 계속 동작하지만, 새 배포나 설정 변경은 불가능하다. Coolify 데이터(/data/coolify/)의 백업이 필수다.

단일 노드 중심

Coolify는 기본적으로 단일 서버 운영에 최적화되어 있다. Docker Swarm을 통한 멀티 노드도 지원하지만, 진정한 K8s 수준의 클러스터링은 약하다.

특수한 컨테이너 설정의 어려움

매우 특이한 네트워크 구성이나 권한 설정이 필요한 경우 UI로 처리하지 못할 수 있다. 이때는 Docker Compose 리소스로 우회한다.

정리

Coolify는 단순히 “셀프호스팅 Vercel”이 아니다. 코드 배포, DB 운영, 사전 정의된 서비스 100여 개, 임의의 Docker Compose, 직접 지정 이미지까지 다섯 가지 리소스 종류를 통합 관리하는 PaaS다.

특히 흥미로운 점은 이것이 곧 SaaS 의존을 줄이는 도구이기도 하다는 점이다. Vercel, Supabase, Calendly, Mixpanel, Slack 같은 외부 서비스를 자체 호스팅 버전으로 대체할 수 있고, 그 모든 것을 한 대시보드에서 운영한다.

물론 모든 SaaS를 셀프호스팅으로 옮기는 것이 정답은 아니다. 운영 부담, 백업 책임, 가용성 모두 본인이 진다. 다만 “필요할 때 옮길 수 있는 선택지”가 늘 손에 있다는 점이 중요하다. 비용 한도, 정책 변경, 데이터 주권 같은 이슈가 생길 때 Coolify는 빠른 대안이 된다.

Next.js 배포로 시작했더라도, 어느 순간 “어, 이것도 Coolify에 올려볼까?”라는 생각이 떠오를 것이다. 그게 Coolify의 진짜 가치다.




댓글 남기기