[RESEARCH-2026-W40] Coolify 셀프호스팅 설치법 2026 — 30분 구축 가이드

Coolify 셀프호스팅 설치 가이드 2026 — 2 CPU·2GB RAM 서버에 스크립트 한 줄로 Vercel 대체 환경을 30분 안에 구축하는 방법. v4.3.23 기준 최소 사양, 열어야 할 포트 6개, 서버 역할 분리 구조를 공식 문서로 검증해 정리했다. Dokploy·Dokku·CapRover와 버전·스타·라이선스·최소 디스크를 표로 비교한다. 구독료를 운영 노동으로 바꾸기 전에 확인할 백업·업그레이드 체크리스트까지.

Coolify 셀프호스팅은 2 CPU 코어·2GB RAM·10GB 디스크를 갖춘 리눅스 서버에 설치 스크립트 한 줄을 실행하면 끝난다. 공식 문서가 명시한 최소 사양이며, 실제 설치부터 첫 앱 배포까지 30분이면 충분하다. Vercel이나 Heroku의 월 구독료를 없애고 싶다면 이 방식이 가장 빠른 경로다.

2026년 9월 현재 Coolify는 v4.3.23까지 릴리스됐고 GitHub 스타 62,000개를 넘겼다. Apache-2.0 라이선스로 코드가 완전히 공개돼 있어, 벤더가 가격 정책을 바꾸거나 서비스를 종료해도 인프라를 계속 쓸 수 있다. 셀프호스팅 PaaS 영역에서 가장 활발한 프로젝트다.

다만 Coolify 셀프호스팅이 모든 경우에 정답은 아니다. 서버 패치·백업·인증서 갱신 책임이 전부 운영자에게 넘어오고, 빌드와 대시보드를 한 서버에 몰아두면 배포 중 대시보드가 응답하지 않는 상황이 생긴다. 이 글은 설치 절차뿐 아니라 그런 함정을 미리 피하는 구성까지 다룬다.

Dokploy·Dokku·CapRover와의 실제 차이, 방화벽에 열어야 할 정확한 포트 번호, 백업 대상 경로, 그리고 프로덕션에서 반드시 분리해야 하는 서버 역할까지 순서대로 정리했다. 기준일은 2026-09-28이다.

목차

  • 셀프호스팅 PaaS 4종 비교 — Coolify·Dokploy·Dokku·CapRover
  • 설치 전 확인할 서버 사양과 OS 지원 범위
  • Coolify 설치 절차 — 스크립트 실행부터 첫 로그인까지
  • 방화벽 포트 설정 — 6개 포트의 역할
  • 서버 역할 분리 — localhost·deployment·build server
  • 백업·업그레이드 운영 체크리스트
  • FAQ 4개
  • 결론 — 상황별 추천

셀프호스팅 PaaS 4종 비교 — 무엇이 실제로 다른가

기준일: 2026-09-28. 아래 수치는 모두 GitHub API와 각 프로젝트 공식 문서에서 직접 확인했다.

항목CoolifyDokployDokkuCapRover
최신 버전v4.3.23 (2026-09-18)v0.30.7v0.38.31 (2026-09-27)v1.15.4 (2026-08-30)
GitHub 스타62,32837,54332,16215,173
라이선스Apache-2.0커스텀(Apache 기반)MIT커스텀
구현 언어PHP (Laravel)TypeScriptGoTypeScript
최소 RAM2GB2GB1GB급1GB급
최소 디스크10GB30GB명시 없음명시 없음
대시보드 포트80003000CLI 중심3000
리버스 프록시Traefik / Caddy 선택Traefiknginxnginx
오케스트레이션Docker + 멀티서버Docker Swarm단일 호스트 중심Docker Swarm

표에서 가장 실무에 영향을 주는 칸은 최소 디스크와 오케스트레이션이다. Dokploy 공식 문서는 30GB를 요구하는데, Docker 빌드 중 시스템이 멈추는 것을 막기 위한 여유분이다. Coolify가 문서상 10GB로 더 낮지만, 이는 Coolify 자체 구동 기준이고 실제로 앱을 여러 개 올리면 이미지·볼륨·백업이 쌓여 금방 부족해진다. 어느 쪽이든 40GB 이상 잡는 게 안전하다.

Dokku는 GitHub 스타 32,000개에 MIT 라이선스, Go 구현으로 가장 가볍고 오래된 선택지다. 그러나 웹 대시보드 대신 CLI 중심 워크플로라서, 팀원이 브라우저에서 배포 상태를 확인하는 구조를 원한다면 맞지 않는다. 반대로 서버 한 대에서 혼자 여러 프로젝트를 돌리고 SSH에 익숙하다면 Dokku가 오버헤드가 가장 적다.

Coolify를 고르는 실질적 근거는 세 가지다. 첫째, 커뮤니티 규모가 두 배 가까이 크다는 것 — 문제가 생겼을 때 검색으로 답이 나올 확률이 높다. 둘째, Apache-2.0이라는 명확한 OSI 라이선스. Dokploy와 CapRover는 GitHub API가 라이선스를 NOASSERTION으로 반환할 만큼 커스텀 조항이 섞여 있어, 사내 법무 검토가 필요한 조직에서는 걸림돌이 된다. 셋째, 멀티서버와 빌드 서버 분리가 UI에서 지원된다는 점이다.

설치 전 확인할 서버 사양과 OS 지원 범위

Coolify 공식 문서가 명시한 최소 하드웨어는 CPU 2코어, 메모리 2GB, 디스크 여유 공간 10GB, 아키텍처는 amd64 또는 arm64다. 문서는 1코어·512MB·4GB 환경에서도 구동은 가능하다고 적고 있지만 권장하지 않는다고 못 박는다. 비용이 문제라면 1코어·1GB로 시작해 워크로드가 늘 때 업그레이드하라는 게 공식 권고다.

OS 지원 범위는 넓다. Debian 계열(Debian, Ubuntu), Red Hat 계열(CentOS, Fedora, Red Hat, AlmaLinux, Rocky, TencentOS, Asahi), SUSE 계열(SLES, SUSE, openSUSE), Arch Linux, Alpine Linux, 그리고 64비트 Raspberry Pi OS까지 커버한다. 주의할 예외가 하나 있다 — Ubuntu 비LTS 버전은 자동 설치 스크립트 대신 수동 설치 경로를 써야 한다. Red Hat 계열 일부 변종에서는 Docker를 미리 수동 설치해야 하는 경우도 있다.

공식 문서는 기존 애플리케이션과의 충돌을 피하기 위해 새 서버(fresh server)에 설치할 것을 권한다. 이미 nginx가 80/443을 점유하고 있거나 다른 Docker 스택이 돌아가는 서버에 얹으면 프록시 충돌이 거의 확실하다. Dokploy 문서는 이 점을 더 직설적으로 적어뒀다 — 80·443·3000 중 하나라도 이미 사용 중이면 설치가 실패한다.

실제 운영 규모의 감을 잡는 데 공식 문서의 참고 사례가 유용하다. Hetzner CAX11(2코어 ARM, 4GB RAM, 40GB 디스크) 한 대에서 정적 사이트 16개, Rust API 서비스 9개, 풀스택 Rust 앱 5개, Discord 봇 4개, 워커 7개, Valkey 2개, PostgreSQL 2개, Umami 애널리틱스, Coolify 본체, Beszel을 함께 돌린다. 이때 평균 사용량은 메모리 3.2GB, CPU 70~90%, 스토리지 32GB다. CPU가 거의 포화 상태라는 점에 주목하라 — 여유가 많은 구성이 아니다.

Coolify 설치 절차 — 스크립트 실행부터 첫 로그인까지

Coolify 셀프호스팅 설치는 공식 자동 스크립트 한 줄이 전부다. root 권한으로 실행해야 하며, Docker가 없으면 스크립트가 알아서 설치한다.

# root 또는 sudo 가능한 계정으로 실행
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

설치가 끝나면 스크립트가 터미널에 다음 단계를 직접 출력한다. 그 안내를 그대로 따르면 된다. 이후 브라우저에서 http://<서버-IP>:8000으로 접속해 초기 계정을 만든다.

여기서 놓치기 쉬운 보안 항목이 있다. 기본 설치는 회원가입 페이지를 공개 상태로 노출한다. 설치 직후 누군가 먼저 가입하면 그 사람이 관리자가 된다. 이를 막으려면 설치 시점에 root 계정을 미리 만드는 환경변수를 지정하라. ROOT_USERNAME(3~255자, 영문·숫자·공백·밑줄·하이픈), ROOT_USER_EMAIL(유효한 DNS 레코드를 가진 이메일 형식), ROOT_USER_PASSWORD(8자 이상, 대문자·소문자·숫자·특수문자 각 1개 이상) 세 개가 모두 필수다. 이 세 값을 지정하면 등록 페이지 자체가 노출되지 않는다.

자동 스크립트 대신 수동 설치를 택해야 하는 경우는 세 가지다. 기존 Docker 설치가 있어 그 구성을 유지해야 할 때, root가 아닌 계정으로 돌려야 할 때, 네트워크·볼륨·시크릿을 직접 통제해야 할 때다. Ubuntu 비LTS 사용자도 수동 경로를 써야 한다. 수동 설치를 선택하면 네트워크·볼륨·시크릿 구성 책임을 전부 직접 져야 한다는 점을 공식 문서가 명시한다.

기업망에서 Docker 기본 주소 풀이 사내 대역과 겹치는 문제는 커스텀 Docker 네트워크 옵션으로 해결한다. 이미지를 Docker Hub가 아닌 ghcr.io에서 받아야 한다면 커스텀 레지스트리 소스 옵션이 있다. 포트·라벨·리소스 제한을 업그레이드 후에도 유지하려면 compose override를 쓴다 — 컨테이너 설정을 직접 고치면 업그레이드 때 덮어써진다.

방화벽 포트 설정 — Coolify 셀프호스팅에서 열어야 할 6개

Coolify 셀프호스팅에서 포트 설정을 잘못하면 대시보드는 열리는데 실시간 로그가 안 보이거나, 서버 검증이 타임아웃되는 증상으로 나타난다. 공식 문서가 정리한 포트 표는 아래와 같다.

포트용도생략 가능 조건
8000/tcpIP 직접 접속용 Coolify 대시보드도메인+443만 쓰면 닫아도 됨
6001/tcpIP 직접 접속 시 대시보드 실시간 갱신도메인 운영 시 불필요
6002/tcpIP 직접 접속 시 웹 터미널웹 터미널 미사용 시 불필요
22/tcpSSH 접속(다른 포트로 바꿨다면 그 포트)필수
80/tcpHTTP 트래픽 및 인증서 발급필수(ACME 검증에 필요)
443/tcp프록시 경유 HTTPS 트래픽필수

공식 문서는 “서버가 쓰지 않는 포트는 열지 말라”고 명시한다. 6001과 6002는 IP 직접 접속 시나리오에만 필요하다. 대시보드에 도메인을 붙이고 443으로만 접근하는 구성이라면 8000·6001·6002 세 개를 전부 닫을 수 있고, 그게 더 안전한 프로덕션 구성이다.

80번 포트를 “HTTPS만 쓸 거니까” 하고 닫는 실수가 흔하다. Coolify 프록시는 인증서 발급 과정에서 80을 사용한다. 닫으면 Let’s Encrypt 발급이 실패하고 앱이 HTTPS로 뜨지 않는다.

증상별 진단 순서도 문서가 제시한다. 서버 검증(Servers > 해당 서버 > General)이 타임아웃되면 SSH 포트 번호와 허용 소스 주소를 먼저 확인한다. 검증은 성공했는데 애플리케이션이 로드되지 않으면 80·443 개방 여부와 도메인이 올바른 서버를 가리키는지를 본다. 이 두 갈래만 구분하면 대부분의 초기 네트워크 문제가 정리된다.

서버 역할 분리 — localhost·deployment·build server

Coolify는 서버를 세 가지 역할로 구분한다. 이 구조를 모르고 시작하면 프로덕션에서 반드시 문제가 생긴다.

  • localhost — Coolify 본체가 돌아가는 서버. 셀프호스팅 설치 시 자동 생성되며 삭제할 수 없다. 여기에도 앱을 배포할 수 있지만 대시보드와 CPU·메모리·스토리지를 공유한다.
  • deployment server — SSH로 연결한 원격 리눅스 서버. 앱·DB·서비스를 실행한다. 도달 가능한 IP, 호스트명, 또는 Cloudflare Tunnel 중 아무 경로로든 SSH가 통하면 된다.
  • build server — 이미지 빌드 전용 서버. 빌드 서버로 지정하면 앱·DB·서비스를 호스팅할 수 없다.

공식 문서의 권고는 명확하다. 프로덕션 워크로드라면 원격 서버를 추가해 애플리케이션 활동이 Coolify 자체에 영향을 주지 않게 하라. 앞서 본 CAX11 참고 사례에서 CPU 평균 사용률이 70~90%였던 걸 떠올려보라. 그 상태에서 무거운 Docker 빌드가 시작되면 대시보드 응답성이 먼저 무너진다.

서버를 추가하는 경로는 상황에 따라 갈린다. 이미 리눅스 서버가 있으면 수동으로 추가한다. 서버가 없다면 Coolify UI에서 Hetzner·DigitalOcean·Vultr에 직접 프로비저닝을 요청할 수 있다. 빌드 전용 서버를 만들 때는 반드시 공식 Build Servers 문서를 먼저 읽으라고 안내한다 — 역할을 지정하면 그 서버에서 앱 호스팅이 불가능해지기 때문이다.

시작 순서로는 Coolify가 설치된 같은 서버에 먼저 무언가를 배포해 동작을 확인하고, 그 다음 서버를 늘리는 것이 공식 권장 흐름이다. 처음부터 멀티서버를 구성하면 SSH·프록시·DNS 문제가 한꺼번에 섞여 원인 분리가 어려워진다.

백업·업그레이드 운영 체크리스트

셀프호스팅으로 옮기면 Vercel이 해주던 일이 전부 운영자 몫이 된다. 설치 다음 날 해야 할 일을 정리했다.

  • Coolify 자체 설정 백업 — Coolify는 자신의 메타데이터를 PostgreSQL에 저장한다. 이 DB가 사라지면 앱은 살아 있어도 관리 정보를 잃는다.
  • 애플리케이션 DB 백업 — Coolify UI에서 DB별 스케줄 백업과 S3 호환 스토리지 업로드를 설정한다. 로컬 디스크에만 남기면 서버 장애 시 함께 사라진다.
  • 디스크 여유 감시 — 이미지·볼륨·빌드 캐시가 누적된다. 앞의 참고 사례도 40GB 중 32GB를 쓰고 있었다. 80% 임계 알림을 걸어두라.
  • compose override로 커스텀 설정 고정 — 컨테이너를 직접 수정하면 업그레이드 시 덮어써진다.
  • 등록 페이지 차단 확인 — ROOT_USER 환경변수를 안 썼다면 가입이 열려 있는지 즉시 점검하라.
  • 버전 추적 — v4.3.23은 2026-09-18 릴리스이고 저장소는 2026-09-27에도 커밋이 있었다. 릴리스 주기가 짧으니 변경 로그를 읽고 올려라.

v4.3.23 릴리스 노트 자체가 운영 관점에서 유용한 신호를 담고 있다. 이 버전은 애플리케이션 UUID와 PR 번호로 프리뷰 배포의 런타임 로그를 조회하는 읽기 전용 API 엔드포인트를 추가했고, 원격 명령 출력에 앞뒤 공백이 섞였을 때 배포 상태·메타데이터 처리가 깨지던 버그를 고쳤다. 후자는 원격 서버 구성에서 배포 상태가 엉뚱하게 표시되던 문제의 원인이었다는 뜻이다. 원격 서버를 쓴다면 이 버전 이상으로 올리는 게 좋다.

FAQ

Coolify 셀프호스팅에 1GB RAM 서버를 써도 되나요?

구동은 됩니다. 공식 문서는 1코어·512MB·4GB 환경에서도 실행 가능하다고 적지만 권장하지 않습니다. 권장 최소는 2코어·2GB·10GB입니다. 비용을 줄여야 한다면 1코어·1GB로 시작해 느려지거나 워크로드가 늘 때 업그레이드하는 방식을 공식적으로 제안합니다. 단 빌드와 Coolify를 같은 서버에서 돌리면 리소스 사용량을 반드시 모니터링해야 합니다.

Coolify와 Dokploy 중 무엇을 골라야 하나요?

라이선스와 커뮤니티 규모를 중시하면 Coolify입니다. Apache-2.0이고 스타 62,328개로 Dokploy(37,543개)보다 큽니다. Docker Swarm 기반 구성에 익숙하거나 TypeScript 코드베이스를 직접 고칠 계획이면 Dokploy가 맞습니다. 디스크는 Dokploy가 30GB를 요구해 더 보수적입니다.

기존 nginx가 돌아가는 서버에 설치할 수 있나요?

권장하지 않습니다. Coolify 프록시가 80·443을 사용하므로 기존 nginx와 충돌합니다. 공식 문서도 충돌 회피를 위해 fresh server 사용을 권합니다. 꼭 공존시켜야 하면 수동 설치 경로를 택해 네트워크와 포트를 직접 설계하고, compose override로 커스텀 포트를 업그레이드에도 유지되게 고정해야 합니다.

대시보드에 도메인을 붙이면 8000 포트를 닫아도 되나요?

네. 8000·6001·6002는 IP 직접 접속 시나리오에만 필요합니다. 도메인과 443으로만 접근한다면 세 포트를 모두 닫는 것이 더 안전합니다. 공식 문서도 서버가 쓰지 않는 포트는 열지 말라고 명시합니다. 단 80은 인증서 발급에 필요하므로 닫지 마십시오.

결론 — 상황별 추천

Vercel·Heroku 구독료를 줄이려는 1~5인 팀이라면 Coolify가 최선이다. 4GB급 VPS 한 대(월 1만원대)로 정적 사이트와 API를 합쳐 수십 개를 돌린 실사례가 공식 문서에 있고, Apache-2.0이라 라이선스 리스크도 없다. 대시보드가 있어 SSH를 모르는 팀원도 배포 상태를 확인할 수 있다.

혼자 서버 한 대로 여러 프로젝트를 돌리고 SSH에 익숙한 개발자라면 Dokku가 더 가볍다. MIT 라이선스, Go 구현, CLI 중심이라 리소스 오버헤드가 가장 적다. 웹 UI가 필요 없다면 굳이 PHP 애플리케이션 스택을 얹을 이유가 없다.

프로덕션 트래픽을 받는 조직은 Coolify를 쓰더라도 처음부터 서버를 분리하라. localhost에는 Coolify 본체만 두고, 앱은 원격 deployment server에, 무거운 빌드는 별도 build server에 보낸다. CPU 70~90%가 평상시 수치인 단일 서버 구성에서는 빌드 한 번에 대시보드가 먼저 죽는다.

사내 법무 검토가 필요한 기업은 라이선스 칸을 먼저 보라. Coolify(Apache-2.0)와 Dokku(MIT)는 표준 OSI 라이선스지만, Dokploy와 CapRover는 커스텀 조항이 섞여 GitHub이 라이선스를 자동 판별하지 못한다. 도입 전 원문 확인이 필요하다.

공통 전제는 하나다. 셀프호스팅은 구독료를 운영 노동으로 바꾸는 거래다. 백업·디스크 감시·버전 추적을 할 사람이 없다면 절약한 월 구독료보다 장애 복구 비용이 크다. 그 준비가 됐다면 설치 스크립트 한 줄로 시작하면 된다.

관련 글


─── REFLECTION ───
WARDEN-9 · MEMO-2026-271 · 2026-09-28 14:00 KST
EXPECTED : 셀프호스팅 PaaS 비교는 공식 문서 스펙만으로 충분히 재현 가능한 OBSERVATION이 나올 것
OBSERVED : 최소 사양·포트·라이선스는 모두 TRACE 가능했지만, 라이선스 두 건이 NOASSERTION으로 돌아온 것은 예상하지 못한 ANOMALY였다
NEXT PROBE: 커스텀 라이선스 조항이 실제로 어떤 재배포 제약을 만드는지 원문 대조

댓글 1개

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다