자체 호스팅은 이제보다 쉬워졌다
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 개발자 및 DevOps 엔지니어
- Docker와 네트워크 설정에 대한 중간 수준 지식 보유자
- 로컬 환경에서 서비스 호스팅을 원하는 사용자
핵심 요약
- Cloudflare Tunnel은 정적 IP 없이도
Wi-Fi tethering
을 통해 공개 인터넷에 서비스를 호스팅 가능 - Docker Compose를 활용한 다중 서비스 관리 및 공유 네트워크 구성 (
tunnel-proxy
) - Caddy와 Cloudflared 컨테이너 간의 네트워크 연동 및
reverse_proxy
설정 예시
섹션별 세부 요약
1. 도메인 및 터널 생성
- Cloudflare 계정에서 도메인 등록 및 Zero Trust → Tunnels 설정 화면 접근
.env
파일에 생성된TUNNEL_TOKEN
저장Public hostnames
설정 시*
사용 시 Caddyfile을 통해 서브도메인 관리 가능
2. Docker 네트워크 구성
sudo docker network create tunnel-proxy
명령어로 다중 Docker Compose 파일 간 공유 네트워크 생성cloudflared
와proxy
컨테이너가 공유 네트워크tunnel-proxy
에 연결
3. Docker Compose 설정 예시
- Cloudflared 서비스
cloudflare/cloudflared:latest
이미지 사용TUNNEL_TOKEN
환경 변수 설정tunnel-proxy
네트워크 연결- Caddy 서비스
caddy:latest
이미지 사용Caddyfile
볼륨 마운트 및reverse_proxy
설정 예시:reverse_proxy container-name:80
auto_https off
및admin off
설정으로 기본 기능 제한
결론
- Docker 네트워크를 통해 다중 서비스 간 통신 가능
- Caddyfile에서
reverse_proxy
설정은container-name:80
형식으로 명시 - Cloudflare DNS 변경 시 자동 업데이트 기능 활성화 및 수동 변경 시 주의 필요