시스템

Reverse Proxy NPMplus (nginx-proxy-manager) 설치 가이드

달빛궁전- 2025. 10. 16. 08:00
Teslamate는 테슬라의 정보를 수집하여, DB에 저장 후 Grafana (다양한 데이터 소스를 연결해서 시각화 하고 모니터링할 수 있는 도구)를 통해 보여주는 도구 입니다.
보통 NAS인 시놀로지나, 라즈베리파이에서 설치 후 운영을 많이 합니다.

관련된 자료들은 많지만, 외부에서 도메인을 통해 접근하는 방안은 못보아서 작성하게 되었습니다.
nginx의 reverse proxy를 이용하여 도메인에 SSL인증서를 발급받아 https를 사용하여 자기 도메인으로 테슬라메이트를 접속할 수 있습니다.

본 문서는 도메인을 통한 teslamate 설치 내용 중 reverse Proxy가 가능한 NPMplus(nginx-proxy-manager)설치 가이드 입니다.

 

구성도

 
사전 준비물 : 개인 도메인
별도로 가비아, 호스팅케이알등에서 구매한 개인도메인이나, 무료도메인등을 구해 등록해둡니다.
ddns나 집의 IP를 도메인의 A레코드 (DDNS설정이 있다면 해둡니다.)
보통 집의 IP도 자주 변경되지는 않지만, 혹시 모르니 해두는 것이 좋습니다.

DNS 서비스를 해주는 곳마다 다르겠지만 아래와 같습니다.

 
- Docker와 Docker-compose 설치
 
Docker 설치
저장소 설정
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
 
패키지 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
 
Docker Compose 설치
sudo curl -SL https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
 

 

설치완료

환경 설정 (compose.yaml 생성)
디렉토리 생성 후 “compose.yaml”을 생성합니다.

 
위내용을 다운받아 사용해도 되고, 아래 내용만 붙여사용해도 상관 없습니다.
아래는 설치, 운영에 필요한 것만 넣었습니다.
 
TZ : 시간대
ACME_EMAIL : 인증서 발급용 이메일
2개만 수정한 후 진행하여도 됩니다.
 
services:
  npmplus:
    image: ghcr.io/zoeyvid/npmplus:latest
    container_name: npmplus
    restart: unless-stopped
    ports:
      - "80:80"      # HTTP
      - "81:81"      # 관리자 UI
      - "443:443"    # HTTPS
      - "443:443/udp"  # QUIC (HTTP/3)
    environment:
      TZ: "Asia/Seoul"
      ACME_EMAIL: "email@domain.com"   # 인증서 발급용 이메일
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
 
컨테이너 실행
sudo docker compose up -d
정상 설치 및 실행되면 다음처럼 나옵니다:

웹관리자 접속
웹 브라우저에서 접속을 시도합니다.
 
기본 로그인 
 
이메일 admin@example.org
비밀번호 컨테이너 로그에서 확인
 
비밀번호 확인 명령:
sudo docker logs npmplus | grep "password"

처음 로그인 후 원하는 메일 ID와 비밀번호로 변경하는 창이 뜹니다.

 

패스워드를 변경 후 이제 NPM에서 Reverse Proxy를 실행해보겠습니다.

NPMplus 에서 host 추가
Host → Proxy Hosts 선택

add proxy host를 선택

 

 

 


TLS탭으로 이용하여 아래 옵션들을 선택합니다.
Force HTTPS : 해당 도메인으로 연결시 http를 입력해도 강제로 https로 리다이렉션 시켜버립니다.
I Agree to the ~~ : SSL인증서를 받기 위한 Let’s Encrypt 약관 동의입니다.
 
설정 후 조금의 시간이 지나면 적용되며
등록된 도메인으로 접근시 SSL인증서로 접속한 것을 확인 할 수 있습니다.