안녕하세요, 지난 글에 마지막에 클라우드플레어 Origin Cert를 발급해서 저장했었어요.
이번 글은 해당 인증서를 적용한 N8N 배포용 docker-compose.yml, 그리고 외부에 클라우드플레어를
통한 접속을 허용하기 위한 헤츠너(Hetzner) 방화벽 수정, 마지막으로
도메인을 통한 N8N 접속을 진행해볼게요.
지난 (상)편에서는 아래 작업을 진행했어요.
- 클라우드플레어 레코드 등록
- SSL/TLS 암호화 모드 변경 -> 전체 (엄격) 모드
- 원본 서버 인증서(Origin-Server Cert) 발급
- 발급된 인증서 파일로 저장
혹시 (상)편이 필요하신 분들은 아래 링크 참고 해주세요
2025.08.26 - [N8N] - N8N 셀프 호스팅 구축기 (5) - CloudFlare Domain + Hetnzer VPS + Docker Compose + N8N (상)
N8N 배포용 Docker-compose.yml 설정 및 실행
첫번째로 클라우드플레어 Origin-Cert가 적용될 docker-compose.yml을 설정해야해요.
제가 미리 작성한 아래 파일을 받아서 N8N을 헤츠너 VPS 서버에 올려주세요.
압축은 unzip 명령어를 사용하시거나 Filezila와 같은 파일 전송 프로그램을 이용해서 VPS에 업로드해주세요.
unzip은 아래 명령어로 설치할 수 있어요.
sudo apt install unzip
압축 해제하고 나면 파일은 아래와 같이 구성되어 있어요.
├── .env #환경 변수
├── certs #폴더
│ └── traefik_dynamic.yml #인증서 설정
├── docker-compose.yml #docker compose용 파일
└── init-data.sh #Postgres 초기화 파일
각 파일에 대한 상세 정보는 제가 이전에 쓴 글을 참고 바랍니다.
2025.08.22 - [N8N] - N8N 셀프 호스팅 구축기 (4) - Docker Compose를 통한 Self-Signed N8N 배포
위 파일들에서 2가지 파일을 수정해야 해요.
traefik_dynamic.yml
traefik_dynamic.yml 파일은 traefik이 바라볼 TLS 인증서를 설정해주는 파일이에요.
tls:
certificates:
- certFile: /certs/cf-origin.pem
keyFile: /certs/cf-origin.key
자 파일을 보시면 아시겠지만 certs 폴더 아래에 인증서 2개가 존재해야해요.
그 파일은 클라우드플레어에서 발급받은 원본 서버 인증서(Origin-Server Cert) 입니다.
지난 글에서 생성했던 인증서 파일을 압축해제해서 생성 된 certs 폴더 아래에 저장해주세요.
'traefik_dynamic.yml'과 동일한 위치에 저장하면 돼요.
파일이 생성되었다면 cert 폴더 아래에는 아래와 같이 구성되었을꺼에요.
.env 파일 환경에 맞게 수정
다음으로 .env 파일을 환경에 맞게 수정해야해요.
필수 수정은 아래 ENCRYPTION_KEY와 N8N_HOST, WEBHOOK_URL 값을 수정해야해요.
추가적으로 보안을 강화하고 싶으시다면 Postgres 관련 패스워드 및 계정도 수정해주세요.
# DB (Postgres)
POSTGRES_USER=n8nadmin
POSTGRES_PASSWORD=n8n_123!
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=n8nuser
POSTGRES_NON_ROOT_PASSWORD=n8n_123!
# n8n 암호화 키
ENCRYPTION_KEY=<암호화 키 설정>
# 타임존
GENERIC_TIMEZONE=Asia/Seoul
# 도메인 연결
N8N_HOST=<발급한 N8N용 도메인>
N8N_PROTOCOL=https
WEBHOOK_URL=https://<발급한 N8N용 도메인>
N8N 배포
자 이제 docker-compose를 실행해서 N8N을 배포할게요.
실행할때는 현재 쉘의 위치가 'docker-compose.yml'이 있는 위치에서 명령어를 실행해야해요.
docker compose up -d
아래와 같이 메세지가 뜨면 성공적으로 실행된 것 입니다.
헤츠너(Hetzner) 클라우드 방화벽 수정
클라우드플레어 프록시 동작 방식
하지만 배포가 되었어도, 접속은 안되실꺼에요.
왜냐하면 클라우드플레어에 등록한 N8N용 레코드를 프록시 기능을 켰어요.
해당 기능을 킨다면 아래와 같이 동작하게 된답니다.
일반 도메인 등록과 클라우드프록시에서 도메인 등록 후 프록시 기능을 켰을때의 비교에요.
그래서 일반 도메인에서는 클라이언트가 바로 N8N으로 붙게되지만,
클라우드플레어에서는 클라이언트와 가장 가까운 클라우드플레어의 엣지(Edge) 서버로 접속해요.
그리고 클라이언트가 요청한걸 클라우드플레어가 서버로 접속 및 요청해서 받아온 데이터를 다시 클라이언트에 준답니다.
그래서 이전 헤츠너 클라우드 방화벽에서 접속 허용 IP를 본인 집의 공인 IP로만 등록하셨다면,
클라우드플레어 IP가 차단되기 때문에 도메인을 통한 접속은 안되실꺼에요.
그래서 우리는 클라우드플레어 공인 IP 대역을 방화벽에 등록해야해요.
클라우드플레어 IP 대역
클라우드플레어의 공인 IP 대역은 공식 홈페이지에 게시해두고 있어요.
https://www.cloudflare.com/ko-kr/ips/
IP 범위
이 페이지는 Cloudflare의 현재 IP 범위에 대한 최종 출처를 제공하기 위함입니다.
www.cloudflare.com
위 링크로 접속하면 아래와 같은 화면을 볼 수 있어요.
하단의 [ IPv4 텍스트 목록 ] 버튼을 누르면 아래와 같이 텍스트로만 존재하는 IP 목록을 볼 수 있어요.
해당 목록을 복사해주세요.
헤츠너(Hetzner) 클라우드 방화벽 수정
복사한 클라우드플레어 IP 범위를 방화벽에서 허용하기 위해 헤츠너 클라우드 콘솔로 이동합니다.
Hetzner Console
console.hetzner.com
콘솔 이동 후 방화벽(Firewall)로 이동해주세요.
아래와 같이 방화벽 룰로 이동했다면우측의 [ Add rule ]을 통해 새로운 룰을 추가한 뒤,
[ Add Description ] 영역에 위에서 복사한 클라우드플레어 IP 범위를 붙여넣어 주세요.
그럼 알아서 각 대역을 분할해서 IP가 기입됩니다.
그리고 TCP / 443 포트를 설정하고 [ Save Changes ]를 눌러줍니다.
그럼 방화벽 수정은 완료됩니다.
N8N 접속
모든 설정이 완료되었으니 다시 설정한 도메인으로 N8N에 접속시도해주세요.
아래와 같이 최초 접속했기에 N8N 계정 생성 창이 나타납니다.
생성하고싶은 계정과 아이디를 설정하고, 화면 지시에따라 라이선스 키를 발급받아서 N8N을 사용하세요!
정리
이번글에서는 지난 (상)편에 이어서 docker-compose.yml 설정, 헤츠너 방화벽 수정과 N8N 접속까지 완료했어요.
중요한건 docker-compose.yml 내 주소 입력 부분을 발급한 N8N용 도메인 주소를 넣어야하고
헤츠너 방화벽을 수정하여 클라우드플레어 공개 IP 범위를 허용해야해요.
그렇지 않으면 N8N이 접속되지 않거나 제대로 배포되지 않아요.
이전 글 참고
2025.08.20 - [N8N] - N8N 셀프 호스팅 구축기 (1) - 헤츠너(Hetzner) 가입
2025.08.21 - [N8N] - N8N 셀프 호스팅 구축기 (2) - 헤츠너(Hetzner) VPS 생성
2025.08.22 - [N8N] - N8N 셀프 호스팅 구축기 (4) - Docker Compose를 통한 Self-Signed N8N 배포
2025.08.26 - [N8N] - N8N 셀프 호스팅 구축기 (5) - CloudFlare Domain + Hetnzer VPS + Docker Compose + N8N (상)
'N8N' 카테고리의 다른 글
N8N 사용법 - 워크플로우(Workflow) 및 뉴스 RSS 피드 엑셀 저장 (0) | 2025.09.04 |
---|---|
N8N 사용법 - 인터페이스 소개 (0) | 2025.09.03 |
N8N 셀프 호스팅 구축기 (5) - CloudFlare Domain + Hetnzer VPS + Docker Compose + N8N (상) (5) | 2025.08.27 |
N8N 셀프 호스팅 구축기 (4) - Docker Compose를 통한 Self-Signed N8N, Redis, Postgres, N8N Worker 배포하기 (9) | 2025.08.25 |
N8N 셀프 호스팅 구축기 (3) - 리눅스 계정 생성 및 도커 설치 (5) | 2025.08.22 |