이미지 저장 및 백업을 위한 최고의 플랫폼으로 자리 잡은 Google 포토를 통해 사진을 클라우드로 쉽게 전송할 수 있습니다. 그러나 개인 사진을 Google과 공유하고 싶지 않다면 다른 옵션을 사용할 수 있습니다.

Immich는 머신 러닝, 다중 사용자 지원, 자동화된 이미지 분류, 얼굴 인식, Android 및 iOS 기기와 기본적으로 호환되는 등 다양한 고급 기능을 제공하기 때문에 Raspberry Pi에서 자체 솔루션을 호스팅하는 데 있어 동종 제품과 비교할 때 매우 뛰어난 옵션입니다.

왜 라즈베리파이에 Immich를 설치해야 하나요?

사진은 미래에 회상할 가치가 있다고 생각되는 사건이나 순간에 대한 기억을 보존하는 수단으로 사용됩니다. 이러한 시각적 기록은 축하 행사, 특별한 식사, 기념비적인 이벤트와 같은 중요한 행사를 기록하는 경우가 많습니다.

이전 시대에는 이러한 순간을 포착하기 위해 필름 카메라나 디지털 카메라 등 사진 장치를 소지해야 했습니다. 그 후에는 사진을 현상하고 인화하거나 이미지를 컴퓨터로 수동으로 전송하는 방법 중 하나를 선택해야 했습니다.

현재 대부분의 개인이 최소 두 개 이상의 내장 카메라 모듈이 장착된 모바일 장치를 휴대하는 유비쿼터스 현상을 목격하고 있으며, 이는 전문 사진 작가의 요구 사항도 충족시킬 수 있을 정도로 점점 더 유능해지고 있습니다.

자동 업로드

사진을 Google 또는 Apple로 전송한 후 웹 기반 인터페이스 또는 애플리케이션을 통해 모든 장치에서 검색하는 것이 일반적인 추세입니다. 그러나 사진을 저장할 때 제3자에게 의존하지 않으려는 강력한 동기가 존재합니다.

각각의 저장 용량 한도(Google – 15GB, Apple – 5GB)를 초과하면 서비스 요금이 부과됩니다. 그러나 회사가 인공지능 알고리즘을 훈련하거나 데이터 분석 능력을 향상시킬 목적으로 개인의 이미지 아카이브 내의 사진에 액세스하거나 활용하지 않을 것이라는 보장은 없습니다.

현대 사용자들은 앨범 생성, 얼굴 인식, 타임라인 생성, 사물 식별, 회상 트리거, 검색 가능한 연대기 기록 등 다양한 자동화된 기능에 익숙해져 있기 때문에 사진 저장에 클라우드 기술을 활용하는 것은 단순한 저장 및 접근성을 넘어선 것입니다. 또한 이러한 기능에는 사용자가 사진을 클라우드로 전송할 수 있는 시각적으로 매력적인 모바일 애플리케이션이 함께 제공되어야 합니다.

자체 호스팅 오픈 소스 소프트웨어인 Immich의 설치 과정에는 설정을 진행하기 전에 Google에서 사진을 다운로드하거나 iCloud에서 이미지를 추출하는 과정이 포함됩니다.

라즈베리파이에 Immich 설치하는 방법

이 과정을 시작하려면 라즈베리파이를 웹 서버로 구성해야 합니다. Immich를 실행하기 위해 MariaDB와 PHP를 설치하는 것이 필수는 아니지만, 다른 셀프 호스팅 벤처에 도움이 될 수 있습니다. 또한 최신 버전의 Docker Compose를 수동으로 설치해야 합니다.

이 글도 확인해 보세요:  I2C를 사용하여 두 개의 아두이노 보드를 연결하는 방법

라즈베리파이가 기본 웹 서버로 작동하는지 확인했다면, Immich용으로 지정된 새 폴더를 생성하고 그 폴더로 이동합니다.

 mkdir ~/immich && cd ~/immich  

업로드된 데이터를 위한 폴더를 설정해야 합니다.

 mkdir immich-uploads 

원하는 디렉토리로 이동한 후 “pwd” 명령을 사용하여 파일 시스템 내에서 정확한 위치를 확인합니다. 나중에 이 디렉터리의 전체 경로가 필요합니다.

 cd immich-uploads
pwd

 cd..
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Immich 인스턴스를 시작하기 전에 .env 환경 파일에서 특정 변수를 조정해야 합니다. 이 파일에 액세스하려면 나노 텍스트 편집기를 사용하여 해당 위치로 이동하세요.

 nano .env 

파일을 업로드할 지정 폴더를 이전에 설정한 폴더로 설정하세요. 이 단계는 업로드된 콘텐츠의 대상을 결정하기 때문에 필수적이지만, 원하는 경우 추가 구성을 포함하도록 선택할 수도 있습니다.

이미지챔프가 사진에 지리적 위치를 할당하려면 “역 지오코딩” 섹션으로 이동하여 “역 지오코딩” 및 “역\_지오코딩\_정확도”와 관련된 설명을 활성화하십시오.

Immich에서는 4단계의 구체성을 제공합니다. 가장 정확한 세 번째 계층은 인구가 특정 임계값을 초과하는 로캘에 레이블을 지정합니다. 구체적으로 이 수준에서는 거주자가 일정 기준 이상의 장소에 대한 정보를 불러와야 하므로 200MB의 RAM이 필요합니다. 반대로 정확도를 가장 낮게 설정한 0을 선택하면 시스템 메모리를 40MB만 사용하면서 인구가 50,000명을 초과하는 도시 지역을 식별할 수 있습니다.

사용자가 웹사이트에 로그인하기 전에 공개 로그인 페이지에 표시되는 메시지가 표시됩니다. 이 메시지는 `PUBLIC_LOGIN_PAGE_MESSAGE` 상수의 값을 변경하여 사용자 지정할 수 있습니다.

원하는 대로 변경하고 만족스러우면 ‘Ctrl + O’를 눌러 파일을 저장한 다음 ‘Ctrl + X’를 눌러 편집기를 종료합니다.

다음 명령을 분리된 방식으로 실행하여 Docker Compose를 시작하고 필요한 이미지를 수집하는 동시에 Immich 애플리케이션을 실행하기 위한 컨테이너를 구성합니다.

 docker-compose up -d 

your-pi-local-ip-address.

프로세스를 시작하면 관리자 계정을 친절하게 생성하세요. Immich 인스턴스는 궁극적으로 인터넷에 액세스할 수 있어야 하므로 강력하고 해독할 수 없는 비밀번호를 사용하는 것이 중요합니다. 그런 다음 이메일 주소와 비밀번호 입력란에 자격 증명을 입력하세요. 추가 액세스를 위해서는 인증에 성공해야 합니다.

이 글도 확인해 보세요:  GSM 대 블루투스 모듈: 프로젝트에 어떤 것이 가장 적합할까요?

Immich에 사진 업로드

처음부터 다시 시작하지 않는다면 현재 사진 컬렉션을 새로 생성한 Immich 인스턴스로 옮기고 싶을 것입니다. 웹 인터페이스의 오른쪽 상단에 있는 ‘업로드’ 버튼을 사용하여 이미지를 수동으로 선택할 수도 있지만, 이 방법은 여러 기가바이트의 데이터에 저장된 많은 수의 사진을 보유한 사용자에게는 비실용적입니다.

Immich 개발자는 사용자가 여러 이미지를 플랫폼에 효율적으로 업로드할 수 있는 명령줄 인터페이스(CLI)를 개발했습니다. 그러나 Immich는 파일 전송을 위해 SCP를 지원하지 않으므로 이 방법은 사용을 자제하는 것이 좋습니다.

필요한 소프트웨어를 설치하는 과정에서 우분투 사용자는 로컬 개발 키트(LDK)를 사용해야 하며, 그 외의 사용자는 운영 체제별 패키지 관리자를 사용할 수 있습니다. 설치를 진행하기 전에 노드 패키지 관리자 및 Node.js 버전 16 이상이 장치에 설치되어 있는지 확인하세요. 이러한 구성 요소의 설치는 간단하며 Windows 및 Linux 시스템용 각 공식 웹사이트를 통해 수행할 수 있습니다.

웹 애플리케이션에서 디스플레이 오른쪽 상단으로 이동하여 드롭다운 메뉴에서 ‘계정 설정’ 옵션을 선택합니다. 그런 다음 “API 키” 하위 카테고리를 선택하고 “새 API 키” 버튼을 클릭하여 새 키 생성을 진행합니다.

제공된 지침은 터미널 창 또는 명령 프롬프트를 사용하여 컴퓨터 파일 시스템의 특정 폴더에 액세스하는 방법을 포함합니다. 이렇게 하려면 먼저 컴퓨터의 파일 구조를 탐색하여 해당 디렉터리를 찾아야 합니다. 이 작업이 완료되면 터미널 창이나 명령 프롬프트에 특정 명령을 입력하여 해당 디렉터리 내에 있는 파일에 액세스하고 조작할 수 있습니다.

 immich upload --key your-generated-API-key --server http://your-pi-local-ip-address:2283/api --recursive . 

업로드 절차를 시작하라는 메시지가 표시되면 시간이 오래 걸릴 수 있으므로 잠시 휴식을 취하는 것이 좋습니다.참고로 약 82GB의 저장 공간을 필요로 하는 40,000개 이상의 이미지로 구성된 대규모 아카이브를 업로드하는 데 약 6시간이 소요되었지만 이는 전체 작업의 일부에 불과합니다.

업로드가 완료되면 Immich는 이미지 처리, 메타데이터 추출, 얼굴 인식 및 객체 인식 알고리즘을 포함한 일련의 작업을 수행하게 됩니다. 이 과정에서 사용자 인터페이스의 반응 속도가 느려지고 이미지가 비정상적으로 표시될 수 있습니다. 이 작업은 다른 호스팅 서비스의 기능에 큰 영향을 미치지 않고 8GB 라즈베리 파이 4B를 사용하여 약 4일이 소요되었습니다.

웹 인터페이스를 통해 관리 > 작업에 액세스하여 상태의 진행 상황을 모니터링할 수 있습니다. Immich는 여러 작업의 동시 실행을 지원합니다. 앞서 언급한 매개변수를 수정하고 효율성을 높이려면 관리 > 설정 > 작업 설정으로 이동하여 기본 설정에 따라 동시 실행을 조정하세요.

이 글도 확인해 보세요:  새로운 아두이노 우노 R4가 메이커의 판도를 바꾸는 이유

웹에 Immich 노출

Immich 설치를 위해 Apache 서버를 구성하려면 구성 파일을 만들어야 합니다.

 cd /etc/apache2/sites-available && sudo nano immich.conf 

 <VirtualHost *:80>
ServerName your-domain-name.tld
ProxyPass / http://127.0.0.1:2283/
ProxyPassReverse / http:/127.0.0.1:2283/
ProxyPreserveHost On
</VirtualHost>

키보드 단축키 “Ctrl + O”와 “Ctrl + X”를 사용하여 텍스트 편집기 Nano를 저장하고 종료하세요. 그런 다음 구성 파일을 활성화하고 Apache 서버를 다시 시작하여 변경 사항을 적용하세요.

 sudo a2ensite immich.conf && sudo service apache2 restart 

강력한 암호화 프로토콜로 웹 통신을 보호하는 기능을 활용하는 Certbot을 사용하여 TLS(전송 계층 보안) 인증서 및 해당 키를 획득하고 배포합니다.

 sudo certbot 

제공된 목록에서 도메인 이름을 선택하고 Enter 키를 눌러 계속 진행하세요. 그런 다음 아래에 제공된 명령을 입력하여 Apache 서버를 재시작하세요:

 sudo service apache2 restart 

도메인 이름은 Immich 웹 애플리케이션에 액세스하는 데 사용될 수 있습니다.

Immich로 모바일 앱 사용

닫기

Immich는 상용 애플리케이션의 대안으로 활용할 수 있지만, 모든 기능을 이용하려면 호환되는 모바일 기기를 사용해야 합니다. 다행히도 Immich는 Android 및 iOS 플랫폼 모두에서 사용할 수 있으며 멀티미디어 콘텐츠 업로드 및 보기, 빠른 탐색, 자동 백업, 검색 및 일반적으로 프리미엄 앱에서 볼 수 있는 기타 많은 기능을 지원합니다.

작업을 시작하려면 접두사 을 포함한 Immich URL을 입력하고 관리자 자격 증명을 사용하여 인증하세요.사진 및 동영상에 액세스하려면 애플리케이션에 권한을 부여해야 합니다.

사용자 인터페이스는 복잡하지 않고 이해하기 쉬우므로 최소한의 도움으로 대부분의 기능을 쉽게 탐색할 수 있습니다. 백업을 시작하려면 오른쪽 상단에 있는 클라우드 아이콘을 클릭하고 저장하려는 로컬 저장 앨범을 선택하기만 하면 되며, 자동 백업을 포어와 백그라운드에서 동시에 실행할 수도 있습니다.

다운로드: iOS | Android (Play 스토어) | Android (F-Droid)

Immich는 진행중인 작업입니다

Immich의 개발은 꾸준히 진행되어 왔으며 프로젝트는 2022 년에 최근에야 시작되었지만 이미 iCloud와 Google 포토의 자체 호스팅 대안으로 놀라운 숙련도를 입증했습니다.

좀 더 정교한 작업을 해보고 싶으신가요? 그렇다면 대안으로 라즈베리파이에서 포토프리즘을 활용하는 것을 고려해 볼 수 있습니다.

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.