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