자체 호스팅은 이제보다 쉬워졌다

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • 개발자 및 DevOps 엔지니어
  • Docker와 네트워크 설정에 대한 중간 수준 지식 보유자
  • 로컬 환경에서 서비스 호스팅을 원하는 사용자

핵심 요약

  • Cloudflare Tunnel은 정적 IP 없이도 Wi-Fi tethering을 통해 공개 인터넷에 서비스를 호스팅 가능
  • Docker Compose를 활용한 다중 서비스 관리 및 공유 네트워크 구성 (tunnel-proxy)
  • CaddyCloudflared 컨테이너 간의 네트워크 연동 및 reverse_proxy 설정 예시

섹션별 세부 요약

1. 도메인 및 터널 생성

  • Cloudflare 계정에서 도메인 등록 및 Zero Trust → Tunnels 설정 화면 접근
  • .env 파일에 생성된 TUNNEL_TOKEN 저장
  • Public hostnames 설정 시 * 사용 시 Caddyfile을 통해 서브도메인 관리 가능

2. Docker 네트워크 구성

  • sudo docker network create tunnel-proxy 명령어로 다중 Docker Compose 파일 간 공유 네트워크 생성
  • cloudflaredproxy 컨테이너가 공유 네트워크 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 offadmin off 설정으로 기본 기능 제한

결론

  • Docker 네트워크를 통해 다중 서비스 간 통신 가능
  • Caddyfile에서 reverse_proxy 설정은 container-name:80 형식으로 명시
  • Cloudflare DNS 변경 시 자동 업데이트 기능 활성화 및 수동 변경 시 주의 필요