Immich 사진백업 시스템을 NPM 네트워크에 연결하여 설치하는 방법
# ===========================
# 0) 전제
# - Immich는 /photo 같은 '경로 기반(subpath)' 미지원.
# => 반드시 루트 도메인에서 서비스해야 함.
# 예) https://ddns.com/
# - DDNS를 하나 더 만들어 Immich 전용 호스트로 쓰거나,
# DuckDNS/Cloudflare 같은 무료 DDNS를 추가로 발급받아 사용.
# ===========================
# ===========================
# 1) Proxy 네트워크 확인/생성
# - Nginx Proxy Manager(NPM)과 Immich가 서로 컨테이너 이름으로
# 통신하려면 같은 Docker 네트워크에 있어야 함.
# ===========================
docker network ls | grep proxy || docker network create proxy
# ===========================
# 2) Immich 설치 폴더 준비
# - 작업 폴더 생성 후 공식 compose/.env 다운로드
# ===========================
mkdir -p ~/immich && cd ~/immich
# docker-compose.yml & .env 다운로드
curl -fsSL https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -o docker-compose.yml
curl -fsSL https://github.com/immich-app/immich/releases/latest/download/example.env -o .env
# ===========================
# 3) .env 편집
# - 업로드 경로, DB 비밀번호, 타임존 필수 설정
# - Immich 기본 포트: 서버 2283, ML 3003
# ===========================
nano .env
# 수정/추가할 항목:
# UPLOAD_LOCATION=/home/$USER/immich/library # 사진 저장할 경로
# DB_PASSWORD=강력한비밀번호 # 특수문자 없는 영문+숫자 권장
# TZ=Asia/Seoul # 주석(#) 제거
# (IMMICH_PORT, IMMICH_MACHINE_LEARNING_PORT 기본값은 그대로 둠)
# ===========================
# 4) 업로드 폴더 미리 생성
mkdir -p /home/$USER/immich/library
# ===========================
# 5) docker-compose.yml 수정
# - 외부 포트 노출 제거(ports:)
# - Immich 관련 컨테이너 모두 proxy 네트워크 연결
# ===========================
nano docker-compose.yml
# 편집 지침:
# (A) immich-server 서비스에서 'ports:' 블록이 있다면 삭제 또는 주석처리
# (NPM이 같은 네트워크에서 컨테이너 이름+포트로 접근)
# (B) 아래 서비스들에 networks 추가:
# - immich-server
# - machine-learning
# - database (postgres)
# - redis
# 예시:
# services:
# immich-server:
# ...
# networks:
# - default
# - proxy
# 파일 하단에 외부 네트워크 선언 추가:
# networks:
# proxy:
# external: true
# ===========================
# 6) 컨테이너 기동
# ===========================
docker compose down # 기존 컨테이너/네트워크 정리 (처음이면 무시)
docker compose pull # 최신 이미지 다운로드
docker compose up -d # 백그라운드 기동
# ===========================
# 7) NPM 컨테이너를 proxy 네트워크에 연결
# - 자동으로 NPM 이름 검색 후 연결 & 재시작
# ===========================
NPM_NAME=$(docker ps --format '{{.Names}} {{.Image}}' | awk '/(nginx.*proxy.*manager|jc21\/nginx-proxy-manager)/ {print $1; exit}')
if [ -n "$NPM_NAME" ]; then
docker network connect proxy "$NPM_NAME" 2>/dev/null || true
docker restart "$NPM_NAME" >/dev/null || true
fi
# ===========================
# 8) 컨테이너 상태 확인
# - Immich 컨테이너, DB, Redis, ML, NPM 모두 Up & proxy 네트워크 포함 확인
# - 모든 상태가 문제 없다면 NPM 연동 및 설치 완료.
# ===========================
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Networks}}"
공개 마지막 업데이트: 2025-09-17 01:17:41 PM