아키텍처
Immich는 데이터 지속성을 위한 전용 데이터베이스와 함께 전통적인 클라이언트-서버 디자인을 사용합니다. 프론트엔드 클라이언트는 HTTP를 사용하여 REST API를 통해 백엔드 서비스와 통신합니다. 아래는 아키텍처의 상위 수준 다이어그램입니다.
상위 수준 다이어그램

다이어그램은 클라이언트가 REST를 통해 서버 API와 통신하는 것을 보여줍니다. 서버는 저장소 인터페이스를 통해 다운스트림 시스템(예: Redis, PostgreSQL, 머신 러닝, 파일 시스템)과 통신합니다. 다이어그램에는 표시되지 않았지만, 서버는 immich-server
와 immich-microservices
라는 두 개의 별도 컨테이너로 분할되어 있습니다. 마이크로서비스 컨테이너는 API 요청을 처리하거나 크론 작업을 예약하지 않으며, 주로 Redis에서 들어오는 작업 요청을 처리합니다.
클라이언트
Immich는 세 가지 주요 클라이언트를 제공합니다:
- 모바일 앱 - Android, iOS
- 웹 앱 - 반응형 웹사이트
- CLI - 대량 업로드를 위한 명령줄 유틸리티