도메인·터널 토큰 발급 가이드 (당신이 직접 하는 부분)
Date: 2026-06-29 호스트: ubuntu (home server) 도메인: 운영 / 네트워킹 목적: quick tunnel(리붓마다 URL 변경)을 고정 도메인으로 바꾸기 위해, 본인이 Cloudflare에서 직접 해야 하는 발급 절차(도메인 + Named Tunnel 토큰)만 액션 중심으로 정리. 서버 쪽 배선은 Claude가 처리.
전체 end-to-end 레퍼런스(DNS·Caddy·CF Access·검증·롤백 포함): infra__guide-domain-activation (
~/Documents/docs/cloudflare-domain-activation-runbook.md). 이 문서는 그중 “사람이 직접 하는 발급” 부분만 발췌·집중함.
0. 역할 분담 (방법론)
발급은 계정·결제·신원이 걸려 위임 불가 → 본인이 함. 서버 배선은 Claude가 함.
+---------------------------------------+ +-------------------------------+
| 당신 (Cloudflare 대시보드/결제) | | Claude (홈서버) |
+---------------------------------------+ +-------------------------------+
| 1. 도메인 구매 (로그인+카드+신원) | | A. .env에 토큰 반영 |
| 2. 사이트 Active 확인 | | B. compose tunnel command 교체 |
| 3. Named Tunnel 생성 -> 토큰 복사 | ===> | C. docker compose up -d tunnel |
| 4. Public Hostname 매핑(docs->8080) | 토큰 | D. DNS/HEALTHY/접속 검증 |
| 5. 토큰을 .env에 넣거나 Claude에 전달 | | E. 작업 로그 저장 |
+---------------------------------------+ +-------------------------------+
| 구분 | 누가 | 한 줄 |
|---|---|---|
| 도메인 구매 | 본인만 | 계정 로그인 + 결제(카드) + WHOIS 등록자 신원 |
| 사이트 추가/네임서버 | 본인 | Registrar로 사면 자동 |
| Named Tunnel 생성·토큰 | 본인 | 대시보드가 본인 로그인 필요, 토큰만 복사 |
| Public Hostname 매핑 | 본인 | 터널 화면에서 docs.<도메인> → localhost:8080 |
| compose 배선·재시작·검증 | Claude | 토큰만 받으면 끝 |
1. 도메인 구매 (~5분, ~$10/년)
- 추천: Cloudflare Registrar (대시보드 내). 원가 판매(
.com≈ $10/년), WHOIS 프라이버시 무료, 네임서버 자동 연결(→ 2단계 자동 통과). - 외부 업체(Namecheap/Porkbun 등)도 가능하나 네임서버를 Cloudflare로 직접 바꿔야 함.
- 무료(DuckDNS 등)는 불가 — Named Tunnel은 도메인이 Cloudflare 존이어야 자동 CNAME 생성 가능.
할 일: https://dash.cloudflare.com 로그인(이메일 [email protected] 권장) → 도메인 검색·구매.
성공 신호: 결제 완료 + 대시보드에 도메인이 뜸.
2. 사이트 Active 확인
- Registrar 구매면 보통 즉시~수 분. 외부 업체면 네임서버를 Cloudflare 것 2개로 바꾼 뒤 활성화 대기(최대 24h, 보통 수십 분).
- 성공 신호: 대시보드의 도메인 상태가 Active(초록). 메일 알림 도착.
- 확인 명령(
!프롬프트로 실행 가능):dig +short NS <도메인>→*.ns.cloudflare.com2개.
3. Named Tunnel 생성 → 토큰 복사 (핵심)
- 대시보드 좌측 Zero Trust 진입(첫 진입 시 team 이름 1회 설정 + Free).
- Networks → Tunnels(계정에 따라 Networking → Tunnels) → Create a tunnel.
- 커넥터 Cloudflared → Next.
- 터널 이름
homelab→ Save tunnel. - 환경에서 Docker 선택. 화면에 이런 설치 명령이 뜸:
→docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoi...(아주 긴 문자열)eyJ로 시작하는 토큰 문자열만 복사. (전체 docker run은 실행하지 말 것 — Claude가 compose에 넣음.)
토큰이란? 이 터널의 제어 권한을 담은 bearer 자격증명. 이것만 있으면 커넥터를 띄울 수 있으므로 비밀로 취급(공개 채널·git에 올리지 말 것).
4. Public Hostname 매핑
같은 터널 생성 흐름의 다음 화면 Public Hostnames(또는 Routes) → Add a public hostname:
- Subdomain:
docs(또는 비우면 루트) - Domain: 본인 도메인 선택
- Type:
HTTP, URL:localhost:8080 - Save.
(가장 단순한 구성은 호스트네임 1개: docs.<도메인> → localhost:8080. 호스트 분리는 나중에.)
5. 토큰 전달 → Claude가 마무리
방법 A (권장, 토큰이 채팅에 안 남음): ! 프롬프트로 직접 .env에 추가 후 “넣었어"라고만 알려주세요.
echo 'CF_TUNNEL_TOKEN=eyJ...복사한토큰' >> ~/docs-publish/.env
방법 B: 토큰을 그대로 붙여 주시면 Claude가 .env에 넣음(개인 홈랩 터널이라 허용 가능하나, 전사 보안 관점에선 A가 깔끔).
그 다음 Claude가 자동 처리:
~/docs-publish/docker-compose.yml의kb-tunnelcommand를tunnel --no-autoupdate run --token ${CF_TUNNEL_TOKEN}한 줄로 교체.docker compose up -d tunnel→ 로그에Registered tunnel connection.- 대시보드 Tunnels HEALTHY /
dig +short docs.<도메인>(Cloudflare 애니캐스트 IP) /https://docs.<도메인>200 검증. - 작업 로그 저장.
완료 후 효과: 리붓해도 주소 불변. 더 이상 *.trycloudflare.com 휘발성 URL을 매번 확인할 필요 없음.
체크리스트 (당신 쪽)
- 도메인 구매 완료, 상태 Active
- Named Tunnel
homelab생성, 토큰 복사 - Public Hostname
docs.<도메인> → localhost:8080저장 - 토큰을
.env에 넣거나 Claude에 전달
이 4개가 끝나면 나머지는 Claude가 5~10분 내 마무리.
참조
- 전체 런북(서버·DNS·Access·롤백): infra__guide-domain-activation
- 시스템 구조: infra__ref-wiki-portal-architecture