VPS-এ Immich: ছবি ও ভিডিওর জন্য নিজের ক্লাউড তৈরি করুন

2 মিনিট পড়া
Tropic
VPS-এ Immich: ছবি ও ভিডিওর জন্য নিজের ক্লাউড তৈরি করুন

Language: bn

Immich: VPS-এ ছবি ও ভিডিওর জন্য নিজের ক্লাউড সেট আপ

Immich হলো ছবি ও ভিডিও সংরক্ষণ এবং স্বয়ংক্রিয়ভাবে আপলোড করার একটি self-hosted সার্ভিস। এতে মোবাইল অ্যাপ, ওয়েব ইন্টারফেস, অ্যালবাম, স্মার্ট সার্চ এবং মুখ শনাক্ত করার সুবিধা রয়েছে। আপনার পছন্দের সার্ভারেই এর মিডিয়া লাইব্রেরি রাখা যায়।

এই নিবন্ধে Immich-এর প্রয়োজনীয়তা, Docker Compose দিয়ে Ubuntu-এ ইনস্টলেশন, HTTPS সেটআপ, ফোন সংযোগ এবং বাহ্যিক ব্যাকআপ কনফিগারেশন দেখানো হবে।

ছয় ধাপে Immich

  1. পর্যাপ্ত RAM ও ডিস্ক স্পেসসহ একটি Linux VPS তৈরি করুন।
  2. photos.example.com-এর মতো একটি সাবডোমেন সার্ভারের IP ঠিকানায় নির্দেশ করুন।
  3. Docker ইনস্টল করে অফিসিয়াল Immich কনফিগারেশন ডাউনলোড করুন।
  4. মিডিয়া লাইব্রেরি ও ডেটাবেসের পথ নির্দিষ্ট করে কনটেইনার চালু করুন।
  5. অভ্যন্তরীণ পোর্ট বন্ধ করুন এবং HTTPS চালু করুন।
  6. মোবাইল অ্যাপ ইনস্টল করে বাহ্যিক ব্যাকআপ কনফিগার করুন।

Immich কী

Immich হলো নিজের ছবি ও ভিডিও লাইব্রেরি পরিচালনার একটি ওপেন-সোর্স অ্যাপ্লিকেশন। ছবি টাইমলাইনে দেখা যায়, অ্যালবামে সাজানো যায়, সার্চের মাধ্যমে খুঁজে পাওয়া যায় এবং ফোন থেকে সার্ভারে স্বয়ংক্রিয়ভাবে আপলোড করা যায়।

সাধারণ ক্লাউড ফটো সার্ভিসের সঙ্গে এর প্রধান পার্থক্য হলো সার্ভার-সাইডের ওপর আপনার নিয়ন্ত্রণ। ফাইল আপনার VPS বা হোম সার্ভারে থাকে, কিন্তু খালি জায়গা, আপডেট, নিরাপত্তা এবং ব্যাকআপের দায়িত্ব মালিকের।

পরামিটারক্লাউড ফটো সার্ভিসImmich
ফাইল কোথায় থাকেসরবরাহকারীর অবকাঠামোতেআপনার সার্ভারে
রক্ষণাবেক্ষণসরবরাহকারী করেমালিক করেন
খরচস্টোরেজভিত্তিক প্ল্যানVPS, ডিস্ক স্পেস ও ব্যাকআপ

Immich নিজে কোনো ব্যাকআপ নয়। ছবিগুলো যদি শুধু একটি VPS-এ থাকে, তাহলে ডিস্ক নষ্ট হওয়া বা ভুল করে মুছে ফেলার কারণে পুরো আর্কাইভ নষ্ট হতে পারে।

Immich-এর প্রধান বৈশিষ্ট্য

  • স্বয়ংক্রিয় আপলোড। Android ও iOS অ্যাপ নির্বাচিত অ্যালবাম থেকে ছবি এবং ভিডিও আপলোড করে। ডিফল্টভাবে Wi-Fi ব্যবহার করা হয় এবং checksum-এর ভিত্তিতে আগে থেকেই থাকা ফাইল বাদ দেওয়া হয়।
  • স্মার্ট সার্চ। মানুষ, অবস্থান, তারিখ, ক্যামেরা, ছবির ভেতরের লেখা এবং ছবির বিষয়বস্তুর বর্ণনা দিয়ে সার্চ করা যায়। মুখগুলো আলাদা গ্রুপে সাজিয়ে পরে নাম দেওয়া যায়।
  • অ্যালবাম ও শেয়ারিং। Immich একাধিক ব্যবহারকারী, শেয়ার করা অ্যালবাম, পার্টনার শেয়ারিং এবং পাসওয়ার্ড ও মেয়াদসহ পাবলিক লিংক সমর্থন করে।
  • ম্যাপ ও মেটাডেটা। Immich EXIF ডেটা পড়ে, ছবি কোথায় তোলা হয়েছে তা দেখায়, memories তৈরি করে এবং favorites, archive ও external libraries সমর্থন করে।

প্রথমবার ডেটা ইমপোর্টের সময় মেশিন লার্নিং CPU ও RAM-এর ওপর সবচেয়ে বেশি চাপ ফেলে। থাম্বনেইল ও ইনডেক্স তৈরি হয়ে গেলে দৈনন্দিন রিসোর্স ব্যবহার সাধারণত কমে আসে।

Immich সার্ভারের প্রয়োজনীয়তা

বর্তমান সংস্করণগুলোর জন্য অফিসিয়াল প্রয়োজনীয়তা হলো:

  • 64-bit Linux বা Unix-সদৃশ সিস্টেম;
  • কমপক্ষে 2টি CPU কোর, 4টি সুপারিশকৃত;
  • কমপক্ষে 6 GB RAM, 8 GB সুপারিশকৃত;
  • docker compose প্লাগইনসহ Docker Engine;
  • PostgreSQL ডেটাবেসের জন্য স্থানীয় SSD;
  • মূল ফাইল, থাম্বনেইল এবং transcoded ভিডিওর জন্য পর্যাপ্ত জায়গা।

মেশিন-লার্নিং ফিচার বন্ধ করলে 4 GB RAM-এর সার্ভারেও Immich চালানো যায়। মুখ শনাক্তকরণ এবং স্মার্ট সার্চ ব্যবহার করতে চাইলে শুরু থেকেই 8 GB বেছে নেওয়া ভালো।

থাম্বনেইল ও transcoded ফাইল মিডিয়া লাইব্রেরির আকারে গড়ে 10–20% যোগ করে। 200 GB আর্কাইভের জন্য কমপক্ষে 240–260 GB বরাদ্দ করুন। DB_DATA_LOCATION ডেটাবেস ডিরেক্টরি নেটওয়ার্ক ড্রাইভে নয়, স্থানীয় SSD-তে রাখা উচিত।

শুরু করার জন্য ব্যবহারিক কনফিগারেশন হলো 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS এবং মূল লাইব্রেরির চেয়ে 20–30% বেশি ক্ষমতার SSD। আলাদা গ্রাফিক্স কার্ড প্রয়োজন নেই, তবে বড় আর্কাইভ প্রসেস করতে এটি গতি বাড়াতে পারে।

VPS-এ Immich ইনস্টল করার পদ্ধতি

এই উদাহরণে Ubuntu 24.04 এবং photos.example.com সাবডোমেন ব্যবহার করা হয়েছে।

1. DNS কনফিগার করুন এবং Ubuntu প্রস্তুত করুন

VPS-এর IPv4 ঠিকানায় নির্দেশ করে একটি A DNS রেকর্ড তৈরি করুন। এরপর 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 পাসওয়ার্ডে Latin অক্ষর ও সংখ্যা থাকা উচিত; 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. Caddy দিয়ে HTTPS চালু করুন

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-কে অবশ্যই কোনো ডোমেন বা সাবডোমেনের root-এ চালাতে হবে; example.com/immich-এর মতো ঠিকানা সমর্থিত নয়।

6. অ্যাডমিনিস্ট্রেটর তৈরি করে ফোন সংযুক্ত করুন

https://photos.example.com খুলুন। প্রথম নিবন্ধিত ব্যবহারকারী অ্যাডমিনিস্ট্রেটর হন এবং অতিরিক্ত অ্যাকাউন্ট তৈরি করতে পারেন।

App Store বা Google Play থেকে Immich ইনস্টল করুন। সাইন-ইন স্ক্রিনে /api ছাড়া ঠিকানাটি লিখুন:

https://photos.example.com

অ্যালবামগুলো বেছে নিয়ে ব্যাকআপ চালু করুন। প্রথম ইমপোর্টে কিছুটা সময় লাগতে পারে: সার্ভার থাম্বনেইল তৈরি করে, মুখ শনাক্ত করে, সার্চ ডেটা ইনডেক্স করে এবং ভিডিও প্রসেস করে।

Immich আপডেট করা

আপডেট করার আগে release notes পড়ুন, বিশেষ করে নতুন major version-এ যাওয়ার সময়:

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 বা object storage-এ পাঠান এবং 3-2-1 ব্যাকআপ কৌশল অনুসরণ করুন। শুধু ব্যাকআপ ফাইল আছে কিনা দেখবেন না; নিয়মিত restore পরীক্ষা করুন।

Immich-এর জন্য কোন VPS বেছে নেবেন

মুখ শনাক্তকরণ ও স্মার্ট সার্চসহ সম্পূর্ণ ফিচারের জন্য কমপক্ষে 4 vCPU এবং 8 GB RAM-এর VPS নেওয়া যুক্তিযুক্ত। মিডিয়া লাইব্রেরির আকারের সঙ্গে থাম্বনেইল, ভিডিও এবং আর্কাইভ বৃদ্ধির অতিরিক্ত জায়গা যোগ করে ডিস্কের আকার হিসাব করুন।

স্ট্যাটিক IP ঠিকানা ও SSD স্টোরেজসহ tropic.host-এর Linux VPS এই কাজের জন্য উপযুক্ত। 8 GB RAM-এর কনফিগারেশন দিয়ে শুরু করে লাইব্রেরি বাড়ার সঙ্গে রিসোর্স বৃদ্ধি করতে পারেন। PostgreSQL ডেটাবেস দ্রুত স্থানীয় ডিস্কে রাখুন এবং এই VPS-এর বাইরে ব্যাকআপ রাখুন।

যেকোনো নেটওয়ার্ক থেকে 24 ঘণ্টা অ্যাক্সেসের জন্য VPS সুবিধাজনক। কয়েক টেরাবাইটের আর্কাইভ হলে হোম সার্ভার সস্তা হতে পারে, কিন্তু বিদ্যুৎ, বাহ্যিক অ্যাক্সেস এবং redundancy আপনাকেই নিশ্চিত করতে হবে।

Immich-এর সীমাবদ্ধতা

Self-hosting নির্ভরযোগ্যতার নিশ্চয়তা দেয় না। দুর্বল পাসওয়ার্ড, উন্মুক্ত 2283 পোর্ট, পুরোনো কনটেইনার বা বাহ্যিক ব্যাকআপ না থাকা ডেটা হারানোর ঝুঁকি তৈরি করে।

Immich Google Photos বা iCloud-এর হুবহু বিকল্পও নয়: এডিটিং ও ব্যাকগ্রাউন্ড সিঙ্ক্রোনাইজেশনের সুবিধা আলাদা এবং বিশ্লেষণের গতি হার্ডওয়্যারের ওপর নির্ভর করে। আপনার একমাত্র আর্কাইভ স্থানান্তরের আগে ছোট লাইব্রেরি দিয়ে সার্ভিসটি পরীক্ষা করুন।

উপসংহার

Immich মোবাইল আপলোড, অ্যালবাম, মুখ শনাক্তকরণ, সার্চ এবং শেয়ারিংসহ নিজের ছবি গ্যালারি তৈরি করতে দেয়। বর্তমান সংস্করণের জন্য 4 কোর, 8 GB RAM এবং কমপক্ষে 20–30% অতিরিক্ত ক্ষমতাসহ SSD-যুক্ত Linux VPS প্রস্তুত করা ভালো।

ইনস্টলেশনের পর মিডিয়া ডিরেক্টরি ও ডেটাবেসের বাহ্যিক ব্যাকআপের সঙ্গে HTTPS এবং আপডেট কনফিগার করুন। ছবি হারানো থেকে সুরক্ষা দেয় ব্যাকআপ—শুধু self-hosting নয়।

FAQ

Immich কি বিনামূল্যে?

Immich সার্ভার ওপেন সোর্স এবং বাধ্যতামূলক সাবস্ক্রিপশন ছাড়াই চালানো যায়। তবে VPS, ডোমেন, ডিস্ক স্পেস এবং ব্যাকআপের জন্য খরচ হবে।

Immich-এর কত RAM প্রয়োজন?

অফিসিয়াল ন্যূনতম 6 GB RAM, আর 8 GB সুপারিশ করা হয়। 4 GB RAM-এ মেশিন লার্নিং বন্ধ করতে হবে।

ডোমেন ছাড়া কি Immich ইনস্টল করা যায়?

প্রযুক্তিগতভাবে যায়, কিন্তু ফোন থেকে স্থায়ী অ্যাক্সেসের জন্য ডোমেন ও HTTPS ব্যবহার করা ভালো। এতে লগইন এবং ফাইল ট্রান্সফার সুরক্ষিত থাকে।

Immich কি ছবি ব্যাকআপের বিকল্প?

না। মিডিয়া লাইব্রেরি ও ডেটাবেস আলাদা করে অন্য ডিভাইস বা স্থানে কপি করুন।

বিদ্যমান ছবি আর্কাইভ কি স্থানান্তর করা যায়?

হ্যাঁ। ওয়েব ইন্টারফেস বা CLI দিয়ে ফাইল আপলোড করা যায়, অথবা একটি ডিরেক্টরিকে external library হিসেবে সংযুক্ত করা যায়। বড় আকারের ইমপোর্টের আগে মূল ডেটার একটি কপি তৈরি করুন।