Docker로 Homepage 대시보드를 설치했다면, 다음 단계는 Traefik 리버스 프록시와 연동하여 안전한 HTTPS와 깔끔한 도메인 주소로 접속하는 환경을 구축하는 것입니다.
이 가이드에서는 Traefik의 레이블(Label) 기능을 이용하여 Homepage 컨테이너를 동적으로 인식하고, 자동으로 HTTPS 인증서를 적용하여 외부에 안전하게 노출하는 방법을 단계별로 안내합니다.
docker-compose.yml
파일 수정#
Traefik과 Homepage를 연동하는 작업의 핵심은 Homepage의 docker-compose.yml
파일에 Traefik이 알아볼 수 있는 레이블(labels) 과 Homepage의 보안을 위한 환경 변수(environment) 를 정확하게 추가하는 것입니다.
Homepage를 설치한 디렉토리의 docker-compose.yml
파일을 열고 아래와 같이 수정하거나 내용을 추가하십시오.
version: "3.8"
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
restart: unless-stopped
volumes:
# Homepage 설정 파일 경로
- ./config:/app/config
# Docker 위젯 사용을 위한 Docker 소켓 연결 (선택 사항)
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
# Traefik과 통신하기 위한 공유 네트워크
- traefik-proxy
environment:
# ------------------ (중요 설정) ------------------
# Traefik을 통해 접속할 도메인 주소를 허용 목록에 추가
- HOMEPAGE_ALLOWED_HOSTS=dashboard.your-domain.com # 👈 사용할 도메인으로 변경
labels:
# --- Traefik 연동 설정 ---
- "traefik.enable=true"
# --- 라우터 설정 ---
- "traefik.http.routers.homepage.rule=Host(`dashboard.your-domain.com`)" # 👈 사용할 도메인으로 변경
- "traefik.http.routers.homepage.entrypoints=websecure"
- "traefik.http.routers.homepage.tls=true"
- "traefik.http.routers.homepage.tls.certresolver=letsencrypt"
# --- 서비스 설정 ---
# Homepage의 기본 포트인 3000으로 연결
- "traefik.http.services.homepage.loadbalancer.server.port=3000"
networks:
traefik-proxy:
external: true
networks
:
traefik-proxy
: Traefik과 Homepage 컨테이너가 서로 통신할 수 있도록 미리 생성해 둔 공용 Docker 네트워크에 연결합니다.
environment
(중요):
HOMEPAGE_ALLOWED_HOSTS
: 보안을 위해 Homepage 접속을 허용할 도메인 주소를 지정해야 합니다. 여기에 Traefik 라우터의 Host
규칙에 설정한 도메인(dashboard.your-domain.com
)을 정확하게 입력해야 합니다.
labels
:
Host(...)
:dashboard.your-domain.com
으로 들어오는 요청을 이 컨테이너로 보내도록 Traefik에 지시하는 핵심 규칙입니다.entrypoints
,tls
,certresolver
:websecure
(HTTPS) 엔트리포인트를 사용하고, Let’s Encrypt를 통해 TLS 인증서를 자동으로 발급받아 적용하도록 설정합니다.loadbalancer.server.port=3000
: Traefik에게 이 요청을 Homepage 컨테이너의 내부 포트인 3000번으로 전달하라고 알려줍니다.
실행 및 확인#
docker-compose.yml
파일 수정이 완료되었다면, 터미널에서 아래 명령어를 실행하여 Homepage 서비스를 다시 시작합니다.
docker-compose up -d
이제 웹 브라우저를 열고 https://dashboard.your-domain.com
(본인이 설정한 도메인) 주소로 접속하면, HTTPS가 적용된 Homepage 대시보드를 확인할 수 있습니다.
또한, Traefik 대시보드에 접속해 보면 아래와 같이 homepage
라우터와 서비스가 정상적으로 등록되어 트래픽을 처리하고 있는 것을 볼 수 있습니다.
마무리하며#
이것으로 Traefik을 통해 Homepage 대시보드를 안전하게 외부에 노출하는 설정이 완료되었습니다. Traefik의 강력한 자동 감지 기능과 레이블 설정을 활용하면, 새로운 서비스를 추가하더라도 체계적이고 일관된 방식으로 관리할 수 있습니다.
참조
- Homepage 공식 문서: https://gethomepage.dev/
- Traefik Docker Provider: https://doc.traefik.io/traefik/providers/docker/