사진관리 앱 우분투 기반 Docker- immich 설치 방법

본문은아래의 4곳 링크에 올라온 본문을 스크랩 한 내용입니다.  immich를 알게되고 오라클 프리티어 에서 우분투를 기반으로 설치 하려고 했더니…  이와 관련된 글이 몇개 없네요.

본문은 어디까지나 개인 저장용으로 추후 참고를 위해 스크랩을 한 글이며.  혹시라도 Docker에 설치해서 사용하는 것이 목적이신 분들은 아래의 글보다는 각각 의 원래 페이지로 이동하셔서 보시는 것을 추천. 권장합니다.

 

시놀로지에 사진관리 앱 Immich 설치하기.(Synology Photo 대안)

시놀로지에 사진관리 앱 Immich 설치하기.(Synology Photo 대안)

 

 

서버포럼 - 시놀로지에 사진관리 앱 Immich 설치하기.(Synology Photo 대안)

안녕하세요. 달소입니다. 이번글에서는 예~전에 소개해드린 사진관리 앱 Immich 를 소개해드리고자합니다. 구글은 Google Photo가 있고 시놀로지에서도 Synology Photo가 있지만 기본적인 기능외에 기능

svrforum.com

오라클 클라우드 + immich 삽질/구축기

 

오라클 클라우드 + immich 삽질/구축기 - 리뷰 / 사용기 - 기글하드웨어

0. 서론    구글이 학교계정을 제한함에 따라 사실상 무료였던 구글 드라이브가 쪼그라들었습니다. 대체제를 찾으러 네이버 myBox, MS OneDrive 등을 고려했습니다. 그러나 이들은 사진이 메인이 아

gigglehd.com

immich, 임미치] 우분투 22.04 에 이미치 설치 (with RPI4, 라즈베리파이 4)

 

yes - [immich, 임미치] 우분투 22.04 에 이미치 설치 (with RPI4, 라즈베리파이 4)

[immich, 임미치] 우분투 22.04 에 이미치 설치 (with RPI4, 라즈베리파이 4) pigallery2 에서 얼굴인식은 jpeg 파일의 tag 를 이용하네요. (인공지능에 의한 것이 아니네요.) 얼굴인식기능이 신기해서 임미치

yes.ddonz.com

 

[Community] Immich OCI Free Tier ARM Ubuntu 22.04 VM Tutorial by Jay2

 

[Community] Immich OCI Free Tier ARM Ubuntu 22.04 VM Tutorial by Jay2

Self-hosted photo and video backup solution directly from your mobile phone. - immich-app/immich

github.com

 

 



 

안녕하세요. 달소입니다.

 

이번글에서는 예~전에 소개해드린 사진관리 앱 Immich 를 소개해드리고자합니다.

구글은 Google Photo가 있고 시놀로지에서도 Synology Photo가 있지만 기본적인 기능외에 기능개선등의 업그레이드가 많이 부족한 반면에 Immich의 경우 꾸준한 기능개선으로 많은 옵션들을 제공해주고있어 추천드려봅니다.

 

 

기존 Linux 버전도 1년이 넘었지만.. DSM버전은 없기때문에 신규로 ㅎㅎ..

 

설치환경

DSM 7.2

docker / docker-compose 

 

immich를 구성할 공유폴더도 아예 별도로 만들어주겠습니다.

 

 그리고 설정을 cli에서 해줄것이기때문에 터미널도 활성화시켜주세요.

 

 

Immich 컨테이너 생성하기

먼저 putty등으로 CLI로 ㅈ버속해주고 아래와같이 공유폴더 경로로 이동해주세요.

 

하나는 docker-compose.yml 파일이고 하나는 그안에 환경변수 파일인 .env 파일입니다.

 

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

mkdir library

최종적으로 요렇게 두개 + library가 있으면 됩니다. 

 

기본적으 chmod 640 [파일명]으로 root 쓰기권한을 주시면됩니다.

 

그리고 아래 빨간박스에 대해서 수정해주세요.

 

버전은 현재 v1.71.0 과 같은 식으로 써주시면됩니다.

 

 

수정해주셨으면 docker-compose up -d 명령어로 실행시켜주시면됩니다.

 

 

:2283 포트로 접속해주시면 됩니다.

Getting Started로 관리계정을 만듭니다.

 

 

 

오랜만에 설치해보고 방금 Photo Prism을 설치해봤는데 immichrk 직관적이고.. 업로드 속도나 인덱싱속도

얼굴인식 속도 모두 엄청나네요..

 

시놀로지포토에 질리신분들이라면 한번 설치해보시는걸 추천드립니다 ㅎㅎ

저는,, 넘어갈것같네요.. 

 

https://it-svr.com/sinolrojie-sajingwanri-aeb-immich-seolcihagi-google-photo-daean/

 

시놀로지에 사진관리 앱 Immich 설치하기.(Google Photo 대안)

안녕하세요. 달소입니다. 이번글에서는 예~전에 소개해드린 사진관리 앱 Immich 를 소개해드리고자합니다. 구글은 Google Photo가 있고 시놀로지에서도 Synology Photo가 있지만 기본적인 기능외에 기능

it-svr.com

 




 

 

[immich, 임미치] 우분투 22.04 에 이미치 설치 (with RPI4, 라즈베리파이 4)

 

 

pigallery2 에서 얼굴인식은 jpeg 파일의 tag 를 이용하네요.

(인공지능에 의한 것이 아니네요.)

 

얼굴인식기능이 신기해서 임미치를 설치 해 봅니다.

 

 

포데이너 스택으로 설치 합니다. (portainer stack)

- stacks 으로 갑니다.

-  add stack 선택

- 스택이름을 넣고, web editor 선택

- docker-compose.yml 내용을 web editor 에 넣습니다.

https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

- 내용중에 .env 항목을 stack.env 로 교체해 줍니다.

 

version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "immich" ]
    volumes:
      - /vo9:/usr/src/app/upload                  # 업로드 경로
    env_file:
      - stack.env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.yml
    #   service: hwaccel
    command: [ "start.sh", "microservices" ]
    volumes:
      - /vo9:/usr/src/app/upload
    env_file:
      - stack.env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - /vo9/model-cache:/cache
    env_file:
      - stack.env
    restart: always

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
    env_file:
      - stack.env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
      # remove this to get debug messages
      - GLOG_minloglevel=1
    volumes:
      - /vo9/tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: always

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
    env_file:
      - stack.env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - /vo9/pgdata:/var/lib/postgresql/data
    restart: always

  immich-proxy:
    container_name: immich_proxy
    image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
    environment:
      # Make sure these values get passed through from the env file
      - IMMICH_SERVER_URL
      - IMMICH_WEB_URL
    ports:
      - 5006:8080
    depends_on:
      - immich-server
      - immich-web
    restart: always

volumes:
  pgdata:
  model-cache:
  tsdata:

 

 

- advanced mode 선택합니다.

- example.env 파일을 붙여 넣습니다.

https://github.com/immich-app/immich/releases/latest/download/example.env

 

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_API_KEY=some-random-text
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

REDIS_HOSTNAME=immich_redis

 

- 다시 simple mode 로 복귀 합니다.

   upload_location 에 경로를 입력합니다.

 

 

폴더 권한 설정 (그래야 업로드 가능합니다.)

hs7@hcp:~$ sudo chmod -R 755 /vo9

 

 

- 아래는 사진 2,000 장 정도를 올렸습니다

   immich-machine-learning 이 일을 열심히 합니다.

   라즈베리파이4가 10시간 동안 거의 얼음상태가 됩니다. 

   그 후엔, 조금씩 사진 올리는 거라, CPU 사용량이 많지는 않습니다.

 

 

 

 

 




 

0. 서론

 구글이 학교계정을 제한함에 따라 사실상 무료였던 구글 드라이브가 쪼그라들었습니다.

대체제를 찾으러 네이버 myBox, MS OneDrive 등을 고려했습니다. 그러나 이들은 사진이 메인이 아닌 스토리지가 주 목적이라 배제를 했습니다. 앨범을 따로 만들고 그러면 되겠지만 그런 번거로운 과정이 싫거든요.

 

 그리고 클라우드 서비스들은 익숙한 것에 손이 가길 마련이고, MS서비스랑 동기화 하기가 싫었습니다. (윈도우 부팅하면 계속 OneDrive가 자동실행하고 귀찮게 굴어서 그런듯..) 묘하게 MS서비스들은 OA사무용이란 인식이 있기도 했고요.

 

 네이버 mybox는 구 네이버 클라우드 시절부터 파일 유실 사건사고가 많이 있다고 들어서, 특히 일러스트 하시는 분들이 강력한 비추(!)를 했습니다.

 

 NAS를 구매하려고 했고, 실제로 구매했다가 취소 했습니다. 사유는 뱃사공이 너무 많았고(시놀로지를 가네, 하드디스크 NAS전용을 써야하네, 플러터 방식때문에 일반용 쓰면 안되네 되네 등등) 어쨌든 서버(리눅스)이기 때문에 관리하는 시간이 적잖이 들어갑니다. NAS의 가격의 80%는 소프트웨어값이라는 말이 있듯이, 저렴하게 구축하면 소프트웨어 유지하는데 자원이 너무 많이 투입이 될거 같더라구요. 또한, 집에 콘센트랑 LAN선 빼는것도 힘들었던것도 이유였습니다. (+전기세 타령하는 부모님)

 

 그럴바엔 그냥 클라우드에다가 사진 전용 NAS를 구축하자! 하고... 프리티어가 혜자라고 소문난 오라클 클라우드를 선택하게 되었습니다. (본격 노예계약 시작)

 사실, 구글이 학교계정 제한했을때 부터 오라클 클라우드를 고려했는데 그놈의 '오라클'이라는 악명높은 이미지 밸류 덕택에 많이 고민을 했지만, 클라우드 업계는 웬만해선 순위변동이 없고, 완벽한 후발주자로 혜자 혜택을 계속 줄 수 밖에 없는 위치(=꼴찌)이기 때문에 그냥 선택했습니다.

 

=대신 조건이 있었습니다.

 

 

1. 오라클 클라우드 가입 및 인스턴트 생성 시도

1-1. 프리티어 계정 생성 시도

 

 오라클 클라우드 프리티어는 막강한 하드웨어 사양을 제공합니다. 무료 200GB 블록스토리지, Ampere 4 OCPU / 24GB RAM을 제공합니다. 대신 저 사양을 Full로 땡기려면 Oracle Linux를 선택해야합니다. (이게 조건)

 

 하지만, 프리티어 캐파가 꽉 차서 신청할 수가 없었고, 그렇다고 가입시 리전을 바꿀수도 없었습니다. (현재 저는 춘천리전을 사용중입니다) 서울 리전은 꽉차서 안된다고 하더니, 서울리전에 가입한 개발자분은 잘만 생성되더라구요 ㅎㄷㄷ;

 

 혹시 몰라 오라클 클라우드 챗팅 상담에 물어봤습니다. 그랬더니 그냥 기다리래요. 그리고 그런 문제가 있었냐고 오히려 되 묻더라구요. 역시... 미국서비스들은 챗봇이나 사람이나 거기서 거기입니다.

 

 그래서 오라클 한국지사에 전화했더니, 자기네들은 클라우드 관련 응대할 수 있는 사람이 없고 단순 엔지니어 두 분만 있다고 하더라구요. (역시 쓰는사람이 잘 써야 하는 오라클...)

 

 국내 클라우드업체들이 품질이 떨어진다고 엄청 까이는데, 그래도 국내 서비스 업체는 말귀라도 알아듣지

해외 서비스는 그런거도 없어요. 괜히 외산 갔다가 국산으로 돌아오는게 아니더라구요.

 

 

 구글링 해보니, 파이썬으로 인스턴트 VM 생성 스크립트가 있어서 API키를 발급받아 1분에 한번씩 무료 VM인스턴트를 생성하는 스크립트를 만들었습니다.

 

 

윈도우 같은경우에는 작업스케쥴러로 py파일을 돌려버리고

리눅스는 crontab에 넣어주면 됩니다.

 

저는 1분에 한번씩 간격으로 py파일이 돌아가게끔 했습니다.

그렇게 2일동안 했는데도 도통 답이 없어서 결제를 했어요.

 

 

1-2. 유료회원 전환 및 VM 생성

 

 

월 초에 안쓰는 VM들이 삭제되고 자리가 생겨서 무료티어를 생성 가능하다고 합니다.

하지만 전 참을성이 없었고, 또한 유료계정으로 전환하면 각종 혜택들이 있다고 해서 전환했어요.

 

예컨데, 오랫동안 사용안하면 VM이 삭제되는게 일어나지 않으니, 개인 NAS용으로 사용하기 위해선 어짜피 결제를 해야 했거든요.

 

 

USD 100 결제 승인 후 바로 취소가 되었습니다. 신용카드가 아닌 체크카드만 있다면 부담이 되었을거 같네요.

 

업그레이드가 진행중입니다

세팅하는데 1일 정도 걸린다고 하던데 저는 20분 만에 전환 되었습니다.

 

 그렇게 Ampere ARM 4 ocpu와 24gb ram, 200gb 블록스토리지 무료 사양을 풀로 땡겼습니다.

원래는 나눠서 인스턴트를 생성해도 되지만 저는 사진백업용으로만 온전히 사용할 거라 했죠.

 

 그리고 저렇게 땡겨서 쓰려면.... '오라클리눅스'(이하 OL)를 선택해야했어요. 우분투로 하려면 minimal 버전이 아니여서 선택지는 얘 밖에 없더라구요.

 

 

그리고 유료로 전환하니 오라클에서 메일이 왔습니다. 유료가 좋긴 좋네요.

허나 영업메일...

 

역시 한국 오라클은 IT기업이 아니라 영업회사라는게 정설....

 

 

1-3. 'ocivolume-oled' lv파티션의 난입

 

블록스토리지 200G를 풀로 다 땡겼는데, 시스템 상에서는 30gb밖에 표시가 안되서 파티션을 봤습니다.

sda1,2야 다 아는 내용이니 패스하고

 

sda3를 보시면 197.9GB인데

'ocivolume-root'가 29.5gb 만 먹고있습니다.

더 기가막힌건 그 아래 'ocivolume-oled'가 15gb 씩 먹고있고 아무것도 없습니다.

 

생각난 김에, 한국 오라클 담당자한테 한번 물어봤습니다.

 

 

어짜피 자기네들도 모른대요. (저 메일은 이미 파티션 날린 뒤 확인차 보낸 메일)

 

근데 해외 사례 검색해보니 어짜피 Crash 관련된거 모아두는거고 날려도 상관없어서

200gb를 통으로 다 쓰려고 하는 저를 '아무도 날 막을 순 없으셈ㅋ' 으로 바로 날렸습니다.

 

lvremove 하고 lvextend 100% FREE 넣어주시면 됩니다.

 

 

ocivolume-oled는 사라졌습니다.

 

 

2. 이미지 관리 프로그램 - immich

 

 암튼 그렇게 셋팅하고,

이미지 관리툴로 immich 라는 한창 개발중이고

국내에서도 잘 안 알려진 녀석을 선택했습니다.

 

 

https://immich.app/

 

 발음이 '이미지'와 비슷하게 발음되는 애고, 무엇보다 구글포토를 지향하는 녀석이라, 아직 미 구현된 기능도 많지만, 혼자만 사용하려면 얘만한게 없었습니다. (그래도 ML기반의 이미지 태깅이나 분류작업은 구현되어있습니다)

 

 원래는 photoprism을 고려했지만 사용성이 너무 불편하고, 휴대폰 사진의 정보를 (EXIF 가 없더라구요? 다른 방식으로 매칭하나봅니다) 제대로 못 불러와서 고민할 찰나에 회사 개발자 분의 추천으로 설치하게 되었습니다.

 

설치는 도커로 설치하면 됩니다.

설치할때 .env파일 그대로 냅두시고, 나중에 업데이트할때 pull로 당겨 오면됩니다.

 

그리고 docker compose는 arm 버젼이 따로 있으니 별도로 설치해주세요.

 

 

 

대충 요렇게 생겼습니다.

웹에서 접속하면 검색이 안되지만, 모바일 앱에서는 검색이 잘 됩니다. (왜?)

 

 

관리자 화면에서는 저렇게 사진이나 용량정보를 확인할 수 있습니다. 최근에 추가된 기능이예요.

 

 

 

 

썸네일 생성기능, EXIF. 머신러닝 재색인 페이지입니다.

눌러봤는데 딱히 나아지는게 뭔지 잘 모르겠어요.

 

 

사용자를 추가할 수 있어요. 예전버전에서는 생성만 되고

유저 삭제가 안되서 어떻게 할 수 없었는데 지금은 모르겠네요.

 

(docker sudo 권한이 안먹혀서 업데이트하다가 날려서 한번 싹 갈아엎어 지금은 없어요)

 

 

 

 

 

(저거 incheon이 아니라 siheung 내지 baegot인데...)

 

모바일 앱에서는 검색도 가능하고

장소별로 잘 정리하는 모습을 보여줍니다. (EXIF 기반)

 

 

웹에서도 당연히 이렇게 잘 보여주는데

문제는 저게 오픈스트리트맵 기반이라.... 이름이 쪼금.. 혹은 행정구역이 이상하게 되던가 하는 문제는 있어요.

 

그래도 쓸만합니다.

 

 

200G 블록스토리지를 오래오래 울궈먹어야 하기 때문에

스냅시드로 후 보정을 한 애들만 자동 업로드를 하도록 했습니다.

 

안드로이드는 이게 당연히 되고

아이폰도 되더라구요. (사진 전체 접근 허용 후, snapseed 앨범만 허용하면 됩니다)

 

 

사소한 단점이라면, 가끔 이미지 백업이 실패했다고 해서 들어가보면

최신 버전으로 업데이트 해달라고 하거나

dns로 연결이 잘 안되서, 그냥 ip주소로 연결해뒀습니다. (그래도 가끔 끊기는거 보면 오라클 잘못인듯...)

 

 

진짜 일주일에 한번은 계속 업데이트가 나오는거 같아요.

그때마다 업데이트 합니다만...

 

immich 설치했던 폴더 가서 (docker-compose.yml파일이랑 .env 파일 존재해야함)

 

docker compose pull && docker compose up -d

 

쳐주면 끝납니다.

 

 

아, 저게 MobaXterm 이란 터미널 프로그램인데 진짜 편리해요! 탭으로 터미널 여러개 할수 있고

putty 깔려있으면 자동으로 땡겨와줍니다. (회사 개발자한테 영업당했어요)

 

또한 옆에 ftp처럼 되어있어서 폴더 권한만 주고 (전 귀찮아서 chmod 777 잠깐만 하고 다시 닫아요)

파일 업로드합니다. (wget 못사용하는 경우)

 

그래서 가끔은 개인 클라우드처럼 써요.. (...)

 

 

업데이트하면 새로운 컨테이너랑 이미지로 연결되는데

그래서 포테이너에서 unused 라고 되어있는 이미지랑 컨테이너를 지워주면 끝납니다...

 

3. SSL (https) 적용

 저는 그냥 certbot 깔고 하면 다 될줄 알았습니다. 그래서 나중에 nginx에다가 깔고 또 인증서 발급하고 그랬는데

포트별로 각각 따로 들어가더라구요. (...)

 

 사실 ssl 적용하는 개념이 머릿속에 없다보니까 많이 삽질을 했었습니다. 가장 기초적인 실수로는 오라클 클라우드 콘솔에서 443 포트를 연다는걸 433 으로 적어서 하루 정도 날렸고 (게임회사가 잘못했네!) 포트별로 적용해야 한다는 것도 나중에 알게되었어요. nginx깔아서 ssl 적용까진 성공했는데 immich 로 포워딩하는건 실패해서 ㅠㅠ

 

 그렇게 삽질을 하다가 npm (nginx proxy manager) 라는 녀석을 추천 받았어요. 와일드카드 발급도 손쉽고, 프록시 마다 별도로 인증서 발급이 되고, let's encrypt 로 발급됩니다.

 

와일드카드 적용으로 했는데 보안연결 실패로 떠서 (서명자가 다르다나) 각각 발급받았습니다.

 

 

다만 npm이 80포트를 먹기 때문에 기존에 cerbot 삽질한다고 nginx를 깔아둔거를 iptables에서 중단했습니다.

 

나중에 듣기로는 ip관리를 페도라 계열은 firewalld로 하고, 우분투계열에서는 iptables로 한다고 하더라구요.

뭔 차인지는 모르겠지만... 나중에 firewalld로 익숙해지게 해야겠습니다.

 

암튼 각각 proxy별로 ssl 발급해서 적용했습니다.

 

 

하도 삽질해서 let's encrypt를 하니까 발급 갯수 제한 걸리더라구요. 그래서 2주 동안 기다렸습니다 (...)

 

 

정리하자면

 

오라클 클라우드 : 다른 클라우드 대비 혜자여서 좋으나, 회사서 도입한다면 국내 클라우드 쓸래요.

immich : 혼자 구글포토처럼 쓸꺼면 강추. 업데이트도 간편.

portainer : 추천

npm : 추천 (물론 기본적인것만 하려면. 더 고급기능을 한다 하면 nginx 깔고 직접 세팅을....)

MovaXterm : 강력추천. putty 지웠습니다.

 

나중에 200gb이 넘어가면...

그땐 얄짤없이 원드라이브 1tb로 가든지

아님 piwigo 유료서비스 (1년에 39유로 무제한)로 가든지

 

해야겠습니다...

오라클 클라우드 + immich 삽질/구축기 - 리뷰 / 사용기 - 기글하드웨어 : https://gigglehd.com/gg/?mid=review&document_srl=13224282

 

 

 

 


  1. Sign in to OCI and click the hamburger menu
  1. Select ‘Compute’ and then ‘Instances’
  1. Click ‘Create Instance’
  1. On the ‘Create compute instance’ page, make the following changes:
  • ‘Placement’
    • Leave as default.
  • ‘Image and shape’
    • Click the ‘Edit’ button on the ‘Image’ section
      • Click the "Change image" button
        • Choose "Canonical Ubuntu"
        • Click the ‘Select image’ button
  • Click the ‘Change Shape’ button on the ‘Shape’ section
    • Click the‘ Change shape’ button
      • Choose ‘Ampere’
      • Select ‘VM.Standard.A1.Flex’
      • Drag ‘Number of OCPUs slider to ‘4’
      • Drag ‘Amount of memory (GB)’ slider to ‘24’
      • Click ‘Select shape’ button
  • ‘Networking’
    • Leave as default.
  • ‘Add SSH keys’
    • Click on the ‘Paste public keys’ radial button
  • Install PuTTY if you haven’t already and open ‘PuTTYGen’.
  • Click the ‘Generate’ button and move the mouse randomly until the green bar is full.
  • Select All of the text (right-click ‘Select All’) in the PuTTYGen ‘Public key for pasting…’ text box
  • Copy to clipboard (right-click ‘Copy’)
  • Paste (right-click ‘Paste’) in to the ‘SSH keys’ text box on the OCI ‘Add SSH keys’ section
  • In ‘PuTTYGen’ window, click ‘Save private key’ button. Choose whatever file name you want and save this file in a safe place. PuTTYGen will ask you if you’re sure you want to save without a passphrase - choose ‘Yes’.

 

  1. ‘Boot Volume’
  • Click ‘Specify a custom boot volume size’
  • Enter ‘200’ in ‘Boot volume size (GB)’ text box
  • Click ‘Create’ button
  1. Wait 1-2 minutes for VM provisioning to complete. When complete, yellow provisioning box will turn green. Once green, you can proceed with next steps.
  1. In the ‘Primary VNIC’ section, click link beside ‘Subnet:’
  1. In the ‘Security Lists’ section click the ‘Default Security List…’ link
  1. Click ‘Add Ingress Rules’ button
  2. Fill out the ‘Ingress Rule’ form:
  • Stateless: Unchecked
  • Source Type: CIDR
  • Source CIDR: 0.0.0.0/0
  • IP Protocol: TCP
  • Source Port Range: [blank]
  • Destination Port Range: 2283
  • Description: Immich
  1. Click ‘Add Ingress Rules’ button
  1. Click hamburger menu > Compute > Instance
  1. Select instance
  1. Click the ‘Copy’ link beside "Public IP Address"
  1. Open PuTTY
  1. Paste Public IP Address into ‘Host Name’ text box
  1. On left-hand side of PuTTY window expand ‘SSH’ menu and click ‘Auth’
  1. Click ‘Browse’ button, browse to the location that you saved your private key file in PuTTYGen and click the open button
  1. On left hand side of PuTTY window select ‘Session’, enter any name you’d like in to ‘Saved Sessions’ text box and click ‘Save’ button
  1. Double click the new session and click ‘Accept’ on the PuTTY Security Alert prompt
  1. log in as: ubuntu
  1. Enter the following commands in the order listed. You must enter them 1 at a time. You can copy (highlight > right-click ‘Copy’) from this document and paste it into the PuTTY window (right-click). If at any point you are prompted with a bright pink ‘Package configuration’ screen, push tab-enter to select ‘Ok’ and continue with the following steps.
sudo -i


apt update


apt upgrade -y


apt install net-tools ca-certificates curl gnupg lsb-release


mkdir -p /etc/apt/keyrings


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg


echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


apt update


apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y


mkdir immich-main


mkdir immich-photos


cd immich-main


wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml


wget https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example


cp .env.example .env


nano .env
 

*Use arrow keys to navigate down to ‘Upload File Config’ section and set ‘UPLOAD_LOCATION’ to /root/immich-photos *Navigate to ‘JWT SECRET’ section and set ‘JWT_SECRET’ to some random string of characters (see image below for example

  • Navigate to ‘WEB - Required’ section
  • Open another PuTTY window, click on your saved session and click ‘Load’ button. Take note of the IP address in the ‘Host Name’ text box.
  • Set ‘VITE_SERVER_ENDPOINT’ to http://:2283/api (see pic for example)
  • Press ‘CTRL-X’ and then ‘Y’ and then ‘Enter’ to save
  • Enter command: docker compose up -d
  • Wait at least 2 minutes
  • Close PuTTY
  • Open Windows Browser and navigate to: http://:2283
  • Done! If you enjoy Immich please consider buying Alex a coffee :) https://www.buymeacoffee.com/altran1502
반응형