Skip to main content

Traefik에 Homepage 대시보드 추가하기

·351 words·2 mins
미뇽
Author
미뇽
안녕하세요! 기술로 세상을 이롭게 만들고 싶은 개발자 미뇽입니다.
Table of Contents

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의 강력한 자동 감지 기능과 레이블 설정을 활용하면, 새로운 서비스를 추가하더라도 체계적이고 일관된 방식으로 관리할 수 있습니다.


참조