이미치(immich), portainer 설치
Immich를 Portainer의 Stack 기능을 사용하여 설치하는 방법을 단계별로 정리한 내용입니다. 이 방법은 Portainer를 통해 Docker 환경을 관리할 때 유용하며, docker-compose.yml 파일을 사용하여 Immich를 설치할 수 있습니다.
Immich 설치 단계
Portainer 접속
Portainer에 접속하여 왼쪽 사이드바에서 **"Stacks"**를 클릭합니다.
새로운 Stack 추가
"Add stack" 버튼을 클릭합니다.
Stack에 이름을 지정합니다. 예: immich.
**"Web Editor"**를 빌드 방법으로 선택합니다.
docker-compose.yml 파일 내용 복사
docker-compose.yml은 이미치 공식 사이트에서 찾을수 있어요
https://immich.app/docs/install/portainer/
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
volumes:
- model-cache:/cache
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command:
[
'postgres',
'-c',
'shared_preload_libraries=vectors.so',
'-c',
'search_path="$$user", public, vectors',
'-c',
'logging_collector=on',
'-c',
'max_wal_size=2GB',
'-c',
'shared_buffers=512MB',
'-c',
'wal_compression=on',
]
restart: always
volumes:
model-cache:
Immich의 GitHub 저장소에서 docker-compose.yml 파일의 내용을 복사합니다.
복사한 내용을 Portainer의 웹 에디터에 붙여넣습니다.
.env 파일을 stack.env로 변경
웹 에디터에서 환경 변수(예: DB 설정 등)를 사용해야 하는 모든 컨테이너에 대해 .env를 stack.env로 변경합니다.
Dot Env 설정
"Advanced Mode" 활성화
환경 변수 섹션에서 **"Advanced Mode"**를 클릭합니다.
example.env 파일을 GitHub 저장소에서 찾아서 내용을 복사한 후 웹 에디터에 붙여넣습니다.
"Simple Mode"로 돌아가기
에디터에서 **"Simple Mode"**로 돌아갑니다.
환경 변수 수정
DB_PASSWORD를 원하는 값으로 변경합니다.
필요에 따라 사용자 정의 데이터베이스 연결 정보도 추가합니다.
DB_DATA_LOCATION을 데이터베이스가 저장될 디스크 폴더로 지정합니다.
UPLOAD_LOCATION을 업로드된 미디어 파일과 생성된 미디어가 저장될 디스크 폴더로 지정합니다.
Stack 배포
모든 설정을 완료한 후, "Deploy the stack" 버튼을 클릭하여 Immich Stack을 배포합니다.
추가 설정 및 참고사항
Database 설정: DB_PASSWORD와 DB_DATA_LOCATION은 실제 사용 환경에 맞게 설정해야 합니다. 데이터베이스의 위치와 비밀번호를 변경하여 보안을 강화할 수 있습니다.
미디어 저장 위치: 미디어 파일이 저장될 위치를 지정하는 UPLOAD_LOCATION을 적절한 디렉토리로 변경하여 미디어 파일이 관리될 수 있도록 합니다.
기타 설정: stack.env 파일에 추가적인 환경 변수들을 설정할 수 있으며, 필요에 따라 추가적인 맞춤 설정을 할 수 있습니다.
설치 후 확인
Stack 배포 후 Portainer에서 컨테이너 상태를 확인하여 Immich가 정상적으로 실행되는지 확인합니다.
이후 웹 브라우저에서 Immich UI에 접속하여 미디어 업로드 및 관리 기능을 테스트할 수 있습니다.
이 과정으로 Immich를 Portainer의 Stack 기능을 통해 손쉽게 설치할 수 있습니다.
댓글
댓글 쓰기