Tropic Host

Immich VPS-ზე: შექმენით საკუთარი ღრუბელი ფოტოებისა და ვიდეოებისთვის

2 წაკითხვის წთ
Tropic
Immich VPS-ზე: შექმენით საკუთარი ღრუბელი ფოტოებისა და ვიდეოებისთვის

Language: ka

Immich: ფოტოებისა და ვიდეოებისთვის საკუთარი ღრუბლის შექმნა VPS-ზე

Immich არის თვითჰოსტინგზე გაშვებული სერვისი ფოტოებისა და ვიდეოების შესანახად და ავტომატურად ასატვირთად. ის გთავაზობთ მობილურ აპლიკაციებს, ვებინტერფეისს, ალბომებს, ჭკვიან ძიებასა და სახეების ამოცნობას, ხოლო ბიბლიოთეკა თქვენს მიერ არჩეულ სერვერზე რჩება.

ქვემოთ განვიხილავთ Immich-ის მოთხოვნებს, Ubuntu-ზე Docker Compose-ით დაყენებას, HTTPS-ის კონფიგურაციას, ტელეფონის დაკავშირებასა და გარე სარეზერვო ასლებს.

Immich ექვს ნაბიჯად

  1. შექმენით Linux VPS საკმარისი RAM-ითა და დისკის სივრცით.
  2. ქვედომენი, მაგალითად photos.example.com, მიმართეთ სერვერის IP-მისამართზე.
  3. დააყენეთ Docker და ჩამოტვირთეთ Immich-ის ოფიციალური კონფიგურაცია.
  4. მიუთითეთ მედიის ბიბლიოთეკისა და მონაცემთა ბაზის გზები, შემდეგ გაუშვით კონტეინერები.
  5. დახურეთ შიდა პორტი და ჩართეთ HTTPS.
  6. დააყენეთ მობილური აპლიკაცია და მოაწყვეთ გარე სარეზერვო ასლი.

სერვისის დასაწყებად AI-გასაღები საჭირო არ არის. მის გარეშე შენახვა, ალბომები, OCR, ჭკვიანი ძიება და სრული ტექსტით ძიება კვლავ იმუშავებს. ავტომატური ტეგები და შეჯამებები არ შეიქმნება.

რა არის Immich?

Immich არის ღია კოდის აპლიკაცია საკუთარი ფოტოებისა და ვიდეოების ბიბლიოთეკის სამართავად. ფოტოები დროის ხაზზე ჩანს, მათი ალბომებად დაჯგუფება და ძიებით პოვნა შეიძლება, ასევე ტელეფონიდან სერვერზე ავტომატურად იტვირთება.

ჩვეულებრივ ღრუბლოვან ფოტოსერვისთან მთავარი განსხვავება სერვერულ მხარეზე კონტროლია. ფაილები თქვენს VPS-ზე ან სახლის სერვერზე ინახება, თუმცა თავისუფალ სივრცეზე, განახლებებზე, უსაფრთხოებასა და სარეზერვო ასლებზე მფლობელი აგებს პასუხს.

პარამეტრიღრუბლოვანი ფოტოსერვისიImmich
სად ინახება ფაილებიპროვაიდერის ინფრასტრუქტურაშითქვენს სერვერზე
მოვლაპროვაიდერი ასრულებსმფლობელი ასრულებს
ხარჯებისაცავზე დაფუძნებული გეგმაVPS, დისკის სივრცე და სარეზერვო ასლები

Immich თავისთავად სარეზერვო ასლი არ არის. თუ ფოტოები მხოლოდ ერთ VPS-ზე არსებობს, დისკის დაზიანებამ ან შემთხვევითმა წაშლამ შეიძლება არქივი მაინც გაანადგუროს.

Immich-ის ძირითადი შესაძლებლობები

  • ავტომატური ატვირთვა. Android-ისა და iOS-ის აპლიკაციები შერჩეული ალბომებიდან ფოტოებსა და ვიდეოებს ტვირთავს. ნაგულისხმევად გამოიყენება Wi-Fi, უკვე არსებული ფაილები კი checksum-ის მიხედვით გამოტოვდება.
  • ჭკვიანი ძიება. სერვისს შეუძლია ძიება ადამიანების, ადგილის, თარიღის, კამერის, სურათში არსებული ტექსტისა და შიგთავსის აღწერის მიხედვით. სახეები ჯგუფდება და შემდეგ მათთვის სახელების მინიჭებაა შესაძლებელი.
  • ალბომები და გაზიარება. Immich მხარს უჭერს რამდენიმე მომხმარებელს, გაზიარებულ ალბომებს, პარტნიორთან გაზიარებასა და პაროლითა და ვადის გასვლის თარიღით დაცულ საჯარო ბმულებს.
  • რუკა და მეტამონაცემები. Immich კითხულობს EXIF-მონაცემებს, აჩვენებს ფოტოს გადაღების ადგილს, ქმნის მოგონებებს და მხარს უჭერს რჩეულებს, არქივსა და გარე ბიბლიოთეკებს.

მანქანური სწავლება CPU-სა და RAM-ს ყველაზე მეტად პირველი იმპორტისას ტვირთავს. ესკიზებისა და ინდექსების შექმნის შემდეგ ყოველდღიური რესურსების გამოყენება ჩვეულებრივ ნაკლებია.

Immich-ის სერვერის მოთხოვნები

მიმდინარე ვერსიებისთვის ოფიციალური მოთხოვნებია:

  • 64-ბიტიანი Linux ან Unix-ის მსგავსი სისტემა;
  • მინიმუმ 2 CPU ბირთვი, რეკომენდებულია 4;
  • მინიმუმ 6 GB RAM, რეკომენდებულია 8 GB;
  • Docker Engine docker compose პლაგინით;
  • ლოკალური SSD PostgreSQL-ის მონაცემთა ბაზისთვის;
  • ადგილი ორიგინალი ფაილებისთვის, ესკიზებისა და ტრანსკოდირებული ვიდეოებისთვის.

Immich შეუძლია იმუშაოს 4 GB RAM-ის მქონე სერვერზე, თუ მანქანური სწავლების ფუნქციები გამორთულია. სახეების ამოცნობისა და ჭკვიანი ძიებისთვის უმჯობესია თავიდანვე 8 GB აირჩიოთ.

ესკიზები და ტრანსკოდირებული ფაილები მედიის ბიბლიოთეკის ზომას საშუალოდ 10–20%-ით ზრდის. 200 GB-იანი არქივისთვის გამოყავით მინიმუმ 240–260 GB. მონაცემთა ბაზის DB_DATA_LOCATION დირექტორია ლოკალურ SSD-ზე უნდა იყოს და არა ქსელურ დისკზე.

პრაქტიკული საწყისი კონფიგურაციაა 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS და წყაროს ბიბლიოთეკაზე 20–30%-ით უფრო დიდი SSD. ცალკე გრაფიკული ბარათი საჭირო არ არის, თუმცა მას დიდი არქივის დამუშავების დაჩქარება შეუძლია.

როგორ დავაყენოთ Immich VPS-ზე

ამ მაგალითში გამოიყენება Ubuntu 24.04 და ქვედომენი photos.example.com.

1. მოაწესრიგეთ DNS და მოამზადეთ Ubuntu

შექმენით A DNS-ჩანაწერი, რომელიც VPS-ის IPv4-მისამართზე მიუთითებს. შემდეგ SSH-ით დაუკავშირდით:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

მიმდინარე SSH-სესია არ დახუროთ, სანამ ახალ კავშირს არ გადაამოწმებთ.

2. დააყენეთ Docker და Docker Compose

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

გამოიყენეთ კონკრეტულად docker compose ბრძანება: მოძველებულ docker-compose ბრძანებას პროექტი აღარ უჭერს მხარს.

3. ჩამოტვირთეთ და მოაწესრიგეთ Immich

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

გახსენით ფაილი:

nano /opt/immich/.env

შეცვალეთ ძირითადი პარამეტრები:

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORD

მიუთითეთ თქვენი დროის სარტყელი. PostgreSQL-ის პაროლი ლათინურ ასოებსა და ციფრებს უნდა შეიცავდეს; openssl rand -hex 24 ბრძანება შემთხვევით მნიშვნელობას შექმნის. დანარჩენი სტრიქონები დატოვეთ ისე, როგორც მიმდინარე example.env ფაილშია.

4. დახურეთ შიდა პორტი და გაუშვით კონტეინერები

docker-compose.yml-ში იპოვეთ immich-server სერვისის პორტი:

ports:
  - '2283:2283'

ჩაანაცვლეთ ასე:

ports:
  - '127.0.0.1:2283:2283'

ახლა პორტზე წვდომა მხოლოდ თავად VPS-იდან იქნება შესაძლებელი. გაუშვით სერვისი:

cd /opt/immich
docker compose up -d
docker compose ps

დიაგნოსტიკისთვის გამოიყენეთ docker compose logs --tail=200.

5. ჩართეთ HTTPS Caddy-ით

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

თუ DNS VPS-ზე მიუთითებს და 80 და 443 პორტები ხელმისაწვდომია, Caddy სერტიფიკატს ავტომატურად მოითხოვს. Immich დომენის ან ქვედომენის ძირში უნდა მუშაობდეს; მისამართი example.com/immich მხარდაჭერილი არ არის.

6. შექმენით ადმინისტრატორი და დააკავშირეთ ტელეფონი

გახსენით https://photos.example.com. პირველი დარეგისტრირებული მომხმარებელი ადმინისტრატორი ხდება და დამატებითი ანგარიშების შექმნა შეუძლია.

დააყენეთ Immich App Store-იდან ან Google Play-დან. შესვლის ეკრანზე მისამართი /api-ის გარეშე შეიყვანეთ:

https://photos.example.com

აირჩიეთ ალბომები და ჩართეთ სარეზერვო ასლი. პირველ იმპორტს შეიძლება გარკვეული დრო დასჭირდეს: სერვერი ქმნის ესკიზებს, ამოიცნობს სახეებს, ინდექსირებას უკეთებს ძიების მონაცემებს და ამუშავებს ვიდეოებს.

Immich-ის განახლება

განახლებამდე წაიკითხეთ გამოშვების შენიშვნები, განსაკუთრებით ახალ ძირითად ვერსიაზე გადასვლისას:

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

ჯერ მობილური აპლიკაციები განაახლეთ, შემდეგ სერვერი. მონაცემთა ბაზის ძველ ვერსიაზე დაბრუნება შეიძლება მხარდაჭერილი არ იყოს, თუ ცალკე ინსტრუქცია არ არსებობს.

Immich-ის სარეზერვო ასლი

Immich PostgreSQL-ის dump-ებს ავტომატურად ქმნის, მაგრამ ისინი მხოლოდ მონაცემთა ბაზასა და მეტამონაცემებს შეიცავს და არა ფოტოებსა და ვიდეოებს. სრული აღდგენისთვის შეინახეთ:

  • სრული /srv/immich-data დირექტორია;
  • /opt/immich/.env და docker-compose.yml ფაილები;
  • Caddy-ის კონფიგურაცია.

იმავე VPS-ზე შენახული ასლი დისკის დაზიანებისა და სერვერის წაშლისგან ვერ დაგიცავთ. მონაცემები ცალკე სერვერზე, NAS-ზე ან ობიექტურ საცავში გაგზავნეთ და 3-2-1 სარეზერვო სტრატეგია დაიცავით. პერიოდულად სცადეთ აღდგენა და მხოლოდ სარეზერვო ფაილების არსებობის შემოწმებით არ შემოიფარგლოთ.

რომელი VPS ავირჩიოთ Immich-ისთვის?

სახეების ამოცნობითა და ჭკვიანი ძიებით სრული ფუნქციონალისთვის გონივრულია მინიმუმ 4 vCPU-იანი და 8 GB RAM-ის მქონე VPS. დისკის ზომა გამოთვალეთ მედიის ბიბლიოთეკის მიხედვით და დამატებითი ადგილი დატოვეთ ესკიზებისთვის, ვიდეოებისა და არქივის ზრდისთვის.

ამ ამოცანისთვის შესაფერისია tropic.host-ის Linux VPS სტატიკური IP-მისამართითა და SSD-საცავით. შეგიძლიათ დაიწყოთ 8 GB RAM-იანი კონფიგურაციით და ბიბლიოთეკის ზრდასთან ერთად რესურსები გაზარდოთ. PostgreSQL-ის მონაცემთა ბაზა სწრაფ ლოკალურ დისკზე, სარეზერვო ასლი კი ამ VPS-ის გარეთ შეინახეთ.

VPS მოსახერხებელია ნებისმიერი ქსელიდან 24/7 წვდომისთვის. რამდენიმე ტერაბაიტის არქივისთვის სახლის სერვერი შეიძლება იაფი იყოს, მაგრამ ელექტროენერგია, გარე წვდომა და რეზერვირება თავად უნდა უზრუნველყოთ.

Immich-ის შეზღუდვები

თვითჰოსტინგი საიმედოობის გარანტიას არ იძლევა. სუსტი პაროლი, ღია 2283 პორტი, მოძველებული კონტეინერები ან გარე სარეზერვო ასლის არქონა მონაცემების დაკარგვის რისკს ქმნის.

Immich Google Photos-ის ან iCloud-ის ზუსტი ასლი არ არის: რედაქტირებისა და ფონური სინქრონიზაციის შესაძლებლობები განსხვავებულია, ანალიზის სიჩქარე კი აპარატურაზეა დამოკიდებული. ერთადერთი არქივის გადატანამდე სერვისი პატარა ბიბლიოთეკით გამოცადეთ.

დასკვნა

Immich გაძლევთ საშუალებას შექმნათ საკუთარი ფოტო-გალერეა მობილური ატვირთვებით, ალბომებით, სახეების ამოცნობით, ძიებითა და გაზიარებით. მიმდინარე ვერსიისთვის უმჯობესია მოამზადოთ 4-ბირთვიანი, 8 GB RAM-ის მქონე Linux VPS და წყაროს ბიბლიოთეკაზე მინიმუმ 20–30%-ით დიდი SSD.

დაყენების შემდეგ ერთად მოაწესრიგეთ HTTPS, განახლებები და მედიის დირექტორიის მონაცემთა ბაზასთან ერთად გარე სარეზერვო ასლი. ფოტოებს დაკარგვისგან თვითჰოსტინგი კი არა, სარეზერვო ასლი იცავს.

FAQ

Immich უფასოა?

Immich-ის სერვერი ღია კოდისაა და სავალდებულო გამოწერის გარეშე მუშაობს. მაინც დაგჭირდებათ VPS-ის, დომენის, დისკის სივრცისა და სარეზერვო ასლების საფასურის გადახდა.

რამდენი RAM სჭირდება Immich-ს?

ოფიციალური მინიმუმია 6 GB RAM, რეკომენდებულია 8 GB. 4 GB-ის შემთხვევაში მანქანური სწავლების გამორთვა დაგჭირდებათ.

შეიძლება Immich-ის დაყენება დომენის გარეშე?

ტექნიკურად კი, თუმცა ტელეფონიდან მუდმივი წვდომისთვის უმჯობესია დომენი და HTTPS გამოიყენოთ. ეს ავთენტიფიკაციასა და ფაილების გადაცემას იცავს.

ანაცვლებს Immich ფოტოებისთვის სარეზერვო ასლს?

არა. მედიის ბიბლიოთეკა და მონაცემთა ბაზა ცალ-ცალკე დააკოპირეთ სხვა მოწყობილობაზე ან ადგილას.

შეიძლება არსებული ფოტოარქივის გადატანა?

დიახ. ფაილების ატვირთვა შესაძლებელია ვებინტერფეისით ან CLI-ით, ან დირექტორია გარე ბიბლიოთეკად შეიძლება მიებას. მასშტაბურ იმპორტამდე წყაროს მონაცემების ასლი შექმენით.