cloudflare에서 구매했던 도메인으로 사이드 프로젝트를 배포하기 위해 cloudflare tunnel을 사용해 내 fastapi를 연결했다.
아래 과정은 전부 fastapi 실행 경로에서 실행하였다.
1. Cloudflare Tunnel 설치
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb위 명령어를 이용해서 wsl2에서 cloudflare tunnel을 설치 해 준다.
2. 설치 확인
cloudflared --version > cloudflared version 2025.11.1 (built 2025-11-07-16:59 UTC)
설치가 완료되면 버전이 출력된다.
3. cloudflare 인증
cloudflared login위 명령어 입력 시 인증이 가능한 링크가 제공되는데 이 링크를 접속하면 아래처럼 도메인 연결 페이지로 연결된다.

여기서 연결할 도메인을 선택하면

인증되면 Cloudflare가 자동으로 토큰 파일을 생성해준다.
4. 터널 생성
cloudflared tunnel create talk-report위 명령어를 입력하면 터널 ID가 출력된다.

이 ID를 앞으로 쓸 것이니 따로 기록 해 두는 게 좋다.
5. 로컬 FastAPI 주소를 터널과 연결
mkdir ~/.cloudflared
vim ~/.cloudflared/config.yml위 경로에서 config 파일을 생성한 후 아래 내용을 입력 해 줘야 한다.
tunnel: "터널ID"
credentials-file: /home/yourusername/.cloudflared/터널ID.json
ingress:
- hostname: 내 도메인 주소
service: http://localhost:8000
- service: http_status:404이렇게 설정 해 주면 Cloudflare DNS에서 자동으로 생성된다.
6. Cloudflare DNS 자동 설정
cloudflared tunnel route dns "도메인 주소 이름" "내 도메인 주소"Cloudflare DNS 에 아래와 같은 레코드가 자동 생성된다.

7. 터널 실행
cloudflared tunnel run "도메인 주소 이름"터미널이 다음과 같이 출력되면 제대로 실행이 된 것이다.

8. 도메인으로 접속
fastapi를 실행 시킨 후 도메인으로 접속하면 localhost:8000으로 실행했을 때랑 동일한 화면으로 연결 될 것이다!
화면이 제대로 뜬다면 외부에서 이제 fastapi로 접속이 가능해 진 것!!
물론 내 pc가 물리적인 서버가 되는 거라 항상 내 pc를 켜 놔야만 해당 도메인으로 접속이 가능하다는 단점이 있지만 무료로 배포 해 보는 경험을 해 보기엔 딱인 것 같다.
나중에는 클라우드로 옮겨서 언제든지 도메인으로 접속 가능하도록 하는 것이 목표이다!