SSD Nodes Learn
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-07-25

Immich self-hosting: 6 GB RAM, port 2283, v3 பிரச்சினை

Immich-ஐ நிலையாக இயக்க 6 GB RAM தேவை. port 2283-ஐ HTTPS-இல் இயக்குவது, exit 137 memory kill, pgvecto.rs-இல் v3 தொடங்காத பிரச்சினை மற்றும் restore படிகள் இங்கே விளக்கப்பட்டுள்ளன.

நீங்கள் உருவாக்குவது என்ன

Immich என்பது தன்னாட்சியாக நிர்வகிக்கப்படும் ஒரு புகைப்பட மற்றும் வீடியோ காப்பு சேவை. இது Google Photos-க்கு முழுமையான மாற்று. இதில் ஒரு மொபைல் செயலி உள்ளது. அது பின்னணியில் உங்கள் கேமரா ரோலை பதிவேற்றும். இதில் காலவரிசை, ஆல்பங்கள், முக அடையாளம் காணுதல் மற்றும் இயந்திரக் கற்றல் அடிப்படையிலான தேடல் ஆகியவை உள்ளன. நீங்கள் எதையும் குறியிடாமலேயே "கடற்கரை" அல்லது ஒரு நபரை இந்தத் தேடல் கண்டுபிடிக்கும். நீங்கள் சொந்தமாக வைத்திருக்கும் ஒரு VPS-இல் இதை இயக்குவீர்கள். அசல் கோப்புகள் உங்கள் வட்டிலேயே இருக்கும். விளம்பரங்களைக் காட்ட யாரும் அவற்றை ஸ்கேன் செய்ய மாட்டார்கள்.

நிறுவல் என்பது இந்தத் திட்டத்தின் சொந்த Docker Compose கோப்பிலிருந்து வரும் நான்கு கொள்கலன்கள். அந்தப் பகுதி பத்து நிமிடங்கள் ஆகும். இந்த வழிகாட்டியின் மீதமுள்ள பகுதிதான் பிரச்சினைகள் நிறைந்தது. சிறிய சேவைக்கருவியில் இயந்திரக் கற்றல் கொள்கலன் அதிக நினைவகத்தைப் பயன்படுத்தும். அசல் கோப்புகள் வட்டு இடத்தை விரைவாக நிரப்பும். மொபைல் செயலி வெறும் HTTP சேவையகத்தை ஏற்காது. Immich அடிக்கடி பெரிய மாற்றங்களை வெளியிடுகிறது. எனவே, கவனமின்றி செய்யப்படும் ஒரு docker compose pull உங்கள் தரவுத்தளத்தை தொடங்க முடியாத நிலைக்கு தள்ளலாம். இந்த நான்கு விஷயங்களையும் கவனமாகக் கையாண்டால் Immich மிகவும் நிலையாக இயங்கும். அவற்றைப் புறக்கணித்தால் உங்கள் ஒரு வார இறுதி பாதிக்கப்படும்.

முன்தேவைகள், மற்றும் நேர்மையான எச்சரிக்கைகள்

  • RAM: அதிகாரப்பூர்வ ஆவணங்கள் குறைந்தபட்சம் 6 GB மற்றும் பரிந்துரைக்கப்படுவது 8 GB எனக் கூறுகின்றன — 4 GB உடன் swap சேர்ப்பதை கடைசி எல்லையாகக் கருதுங்கள். immich-server மற்றும் Postgres கொள்கலன்கள் சிறியவை. immich-machine-learning கொள்கலன்தான் அதிக நினைவகத்தைப் பயன்படுத்துகிறது — தேடல் அக்குவலைப் பெறுக்கு CLIP மற்றும் face-recognition மாதிரிகளை RAM-இல் ஏற்றுகிறது; 2 GB கொண்ட சேவையகத்தில் kernel இதைக் கொன்றுவிடும். 4 GB இருந்தாலும் swap சேர்க்கவும்.
  • வட்டு: உங்கள் முழு நூலகத்திற்கும் ஏற்றவாறு அளவிடவும், பிறகு சற்று அதிகமாகவும். உங்கள் அசல் படங்கள் முழுமையாக நகலெடுக்கப்படுகின்றன; மேலும் Immich சிறுபடங்கள் மற்றும் முன்னோட்டப் படங்களை உருவாக்குகிறது (கூடுதலாக ஏறக்குறைய 10–20%). 200 GB படத் தொகுப்பிற்கு 300 GB தொகுதி தேவை. ஒப்பிடும்போது Postgres சிறியது.
  • CPU: எந்த நவீன KVM VPS-ம் போதுமானது, ஆனால் CPU-வில் ML மெதுவானது. பெரிய இறக்குமதியின் smart-search அக்குவலைப் பெறுதல் பின்னணியில் பல மணிநேரம் இயங்கலாம். இது இயல்பானது; இதற்கு GPU தேவையில்லை.
  • ஒரு domain name VPS-ஐ நோக்கி அமைக்கப்பட்டிருக்க வேண்டும். மொபைல் செயலி HTTPS முனையத்தைக் கடுமையாக விரும்புகிறது; முன்பக்கம் ஒரு reverse proxy வேண்டும். இது Docker, TLS மற்றும் காப்புப்பிரதிகளுடன் தன்னுரிமையில் இயங்கும் Nextcloud நிறுவல் போன்றே அமைப்பு கொண்டது — Immich அந்த கோப்பு சேவையகத்தின் பட இணையானது.
  • Docker மற்றும் Compose சொருகி நிறுவப்பட்டிருக்க வேண்டும் — Docker Engine உடன் Docker-ன் சொந்த apt களஞ்சியத்திலிருந்து Compose v2 சொருகி, எங்கள் Docker Compose அடிப்படை வழிகாட்டியில் விளக்கியபடி அப்படியே.

படி 1: மற்ற எதையும் செய்வதற்கு முன் swap சேர்க்கவும்

சிறிய VPS இல் Immich தோல்வியடைவதற்கு மிகப் பொதுவான காரணம், ML container ஆனது OOM-killed ஆவதுதான். முதலில் kernel இற்கு இயங்குவதற்கு இடமளிக்கவும்.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

இப்போது free -h ஆனது 4.0Gi அளவுக்கான Swap: வரியைக் காட்ட வேண்டும். இது ML ஐ வேகமாக்காது. ஆனால் 4 GB கொண்ட கணினியில் container நடுவில் இறப்பதை இது தடுக்கும்.

படி 2: அதிகாரப்பூர்வ compose மற்றும் env கோப்புகளைப் பெறுங்கள் — நகலை அல்ல, அவர்களுடையதையே பயன்படுத்துங்கள்

Immich தனது சேவை பதிப்புகளையும், முக்கியமாக, தனது தரவுத்தள இமேஜையும் தான் வழங்கும் கோப்புகளுக்குள்ளேயே பொருத்தியுள்ளது. ஒரு வலைப்பதிவில் இருந்து (இதுவும் உட்பட) காப்பி செய்த compose கோப்பை நீங்கள் மூல ஆதாரமாக ஒட்ட வேண்டாம். வெளியீட்டு கோப்புகளைப் பதிவிறக்கவும்:

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

இவை குறியிடப்பட்ட வெளியீட்டிலிருந்து வருவதால், இமேஜ் குறிப்புகள் பொருந்தும். இந்த compose கோப்பு நான்கு சேவைகளை வரையறுக்கிறது. நீங்கள் எதையும் மாற்றுவதற்கு முன், ஒவ்வொன்றாக என்ன என்பதை அறிந்துகொள்வது உதவியாக இருக்கும்:

  • immich-server (ghcr.io/immich-app/immich-server, கன்டெய்னர் immich_server) — API மற்றும் web UI, போர்ட் 2283-இல் கவனிக்கிறது. உங்கள் பதிவேற்றங்களை /data-இல் ஏற்றுகிறது.
  • immich-machine-learning (ghcr.io/immich-app/immich-machine-learning, கன்டெய்னர் immich_machine_learning) — CLIP தேடல் மற்றும் முக அடையாளம் காணல். பதிவிறக்கிய மாதிரிகளை model-cache தொகுதியில் தேக்கி வைக்கிறது. நினைவகத்தை அதிகம் நுகர்பவை இதுவே.
  • database (கன்டெய்னர் immich_postgres) — VectorChord வெக்டர் நீட்டிப்புடன் கூடிய Postgres, இது ஒற்றுமை தேடலை இயக்குகிறது. இமேஜ் குறிச்சொல் compose கோப்பிலேயே டைஜெஸ்ட் மூலம் பொருத்தப்பட்டுள்ளது, உதாரணமாக ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:.... பழைய அமைப்புகள் pgvecto.rs-ஐப் பயன்படுத்தின; அதற்கான ஆதரவு Immich v3.0-இல் நீக்கப்பட்டது, எனவே நீங்கள் இன்று நிறுவுவது எதுவும் VectorChord-தான். இந்த குறிச்சொல்லை கைமுறையாக ஒருபோதும் திருத்த வேண்டாம்.
  • redis (கன்டெய்னர் immich_redis) — பணி வரிசைகளுக்கான Valkey/Redis நிகழ்வு.

படி 3: .env ஐ உள்ளமைக்கவும் — உங்கள் படங்களும் தரவுத்தளமும் எங்கே சேமிக்கப்படுகின்றன

.env ஐத் திறந்து நான்கு விஷயங்களை அமைக்கவும். குறிக்கப்பட்ட கோட்டுக்குக் கீழே உள்ள அனைத்தும் அப்படியே இருக்க வேண்டும்.

# Where original uploads are stored on the host
UPLOAD_LOCATION=/opt/immich/library

# Where the Postgres data lives. NEVER put this on an NFS/network share.
DB_DATA_LOCATION=/opt/immich/postgres

# "v3" is a floating tag that tracks the latest v3.x. Pin a full tag like
# v3.0.2 instead — then you upgrade on purpose, not by surprise.
IMMICH_VERSION=v3.0.2

# Change this to a long random string. Letters and digits only.
DB_PASSWORD=REPLACE_WITH_A_LONG_RANDOM_STRING

# Set your timezone so timestamps and "on this day" line up
TZ=Europe/London

###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

தொல்லையைத் தவிர்க்கும் இரண்டு விதிகள். UPLOAD_LOCATION உங்கள் பெரிய வட்டைச் சுட்டிக்காட்ட வேண்டும் — நீங்கள் பின்னர் ஒரு தரவுத் தொகுதியை இணைத்தால், இதை ஆரம்பத்திலேயே அதன் mount பாதையாக அமைக்கவும். ஏனெனில் பின்னர் இதனை மாற்றுவது சிறுபடங்களை நகர்த்துவதையும் asset பாதைகளைப் புதுப்பிப்பதையும் குறிக்கிறது. மேலும் DB_DATA_LOCATION கட்டாயம் உள்ளக வட்டில் இருக்க வேண்டும்: NFS அல்லது SMB பகிர்வில் உள்ள Postgres சேதமடையும், மேலும் ஆவணங்கள் இதனை தெளிவாகக் கூறுகின்றன. DB_PASSWORD இல் நீங்கள் எழுத்துக்கள் மற்றும் எண்களை மட்டும் பயன்படுத்தினால், connection-string escaping பிழைகளின் ஒரு வகையைத் தவிர்க்கலாம்.

படி 4: முதல் இயக்கம் மற்றும் admin பயனரை உருவாக்குதல்

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

சரியான வெளிப்பாடு நான்கு containers ஆகும். அனைத்தும் running நிலையில் இருக்கும். இறுதியில் healthy நிலைக்கு மாறும்:

NAME                      STATUS
immich_machine_learning   Up (healthy)
immich_postgres           Up (healthy)
immich_redis              Up (healthy)
immich_server             Up (healthy)

முதல் up பல gigabytes அளவு images-ஐ பதிவிறக்கம் செய்கிறது. எனவே அதற்கு நேரம் கொடுங்கள். sudo docker compose logs -f immich-server கொண்ட் முன்னேற்றத்தை கவனிக்கவும். சேவையகம் தயாரானதும் port 2283-இல் கவனிப்பதாக அதன் logs-இல் காட்டும். இப்போது ஒரு browser-இல் http://YOUR_SERVER_IP:2283-ஐ திறக்கவும். முதல் வருகையில் ஒரு Getting Started wizard காட்டப்படும். நீங்கள் உருவாக்கும் முதல் account ஆனது admin ஆகும். வலுவான கடவுச்சொல்லை அமைக்கவும். இந்த account சேவையக அமைப்புகள், பயனர் நிர்வாகம் மற்றும் பிறகு தேவைப்படும் ML configuration ஆகியவற்றை கட்டுப்படுத்துகிறது.

படிப்பு 5: மொபைல் செயலி மற்றும் பின்னணி காப்பு

App Store அல்லது Play Store இல் இருந்து "Immich" செயலியை நிறுவவும். உள்நுழைவு திரையில் Server Endpoint URL கேட்கப்படும். scheme உட்பட முழு URL ஐ உள்ளிடவும். உதாரணமாக https://photos.example.com (செயலி தானாகவே /api ஐ இணைத்துக்கொள்ளும்). நீங்கள் இப்போது உருவாக்கிய கணக்கைக் கொண்டு உள்நுழையவும். பிறகு செயலியின் Backup திரையைத் திறக்கவும். பாதுகாக்க வேண்டிய ஆல்பங்களைத் தேர்ந்தெடுக்கவும் (பொதுவாக Camera மற்றும் Screenshots). Background backup ஐ இயக்கவும். iOS இல் பின்னணி காப்பு OS ஆல் கட்டுப்படுத்தப்படுகிறது. foreground பதிவேற்றங்கள் எப்போதும் இயங்கும். background பதிவேற்றங்கள் OS அனுமதிக்கும்போது நிகழும்.

இங்கேதான் பலர் தடுப்பதடைகிறார்கள். எனவே செயலியுடன் போராடுவதற்கு முன் படிப்பு 6 ஐ படிக்கவும்.

படி 6: ரிவர்ஸ் ப்ராக்ஸி வழியாக HTTPS — மற்றும் முழு-URL விதி

மொபைல் செயலி HTTPS ஐ கட்டாயமாக எதிர்பார்க்கிறது. 2283 போர்ட்டின் முன் ஒரு ரிவர்ஸ் ப்ராக்ஸியை வைத்து TLS ஐ அங்கே முடிக்கவும். நீங்கள் ஏற்கனவே பல கன்டெய்னர்களை இயக்கினால், பல Docker செயலிகளுக்கு தானியங்கி TLS உடன் Traefik எளிதான விருப்பம் — ஒரு லேபிள் தொகுதி photos.example.comimmich-server கன்டெய்னருக்கு திருப்பி விடுகிறது மற்றும் சான்றிதழையும் உங்களுக்காக பெறுகிறது. நீங்கள் nginx ஐ விரும்பினால், Certbot மற்றும் nginx உடன் Let's Encrypt வழிகாட்டி ஒரு சான்றிதழையும் ஒரு proxy_pass http://127.0.0.1:2283; தொகுதியையும் தருகிறது. Immich க்கு ஒரு ப்ராக்ஸி அமைப்பு முக்கியம்: பதிவேற்ற அளவு வரம்பை உயர்த்தவும், ஏனெனில் போன் வீடியோக்கள் பெரியவை. nginx இல் அது சர்வர் தொகுதிக்குள் client_max_body_size 50000M; ஆகும் — இயல்புநிலை 1 MB வீடியோ பதிவேற்றங்களை 413 Request Entity Too Large உடன் நிராகரிக்கிறது.

செயலி செயல்படுத்தும் விதி: எண்ட்பாயிண்ட் அணுகக்கூடியதாக இருக்க வேண்டும் மற்றும் நடைமுறையில் HTTPS ஆக இருக்க வேண்டும். http:// எண்ட்பாயிண்ட்கள், அல்லது போர்ட் விடப்பட்ட நேரடி IP, தான் "செயலி சர்வரை அணுக முடியவில்லை" என்பதற்கு காரணம் — கீழே ஒரு குறிப்பிட்ட பெயரிடப்பட்ட தோல்வியாக விளக்கப்பட்டுள்ளது.

படி 7: வெளிப்புற நூலகங்கள் vs பதிவேற்றங்கள் — ஏற்கனவே உள்ள புகைப்பட மரத்தை இறக்குமதி செய்தல்

புகைப்படங்கள் Immich-க்குள் வர இரண்டு வழிகள் உள்ளன. இவை இரண்டும் ஒன்றல்ல.

  • பதிவேற்றங்கள் என்பவை Immich சொந்தமான சொத்துகள். செயலி அல்லது வலை பதிவேற்றி கோப்பை UPLOAD_LOCATION-க்குள் நகலெடுக்கிறது. Immich அவற்றை மறுபெயரிடலாம், நகர்த்தலாம், நீக்கலாம்.
  • வெளிப்புற நூலகங்கள் என்பவை உங்கள் சேவையகத்தில் ஏற்கனவே ஒரு கோப்புறையில் இருக்கும் கோப்புகளின் படிக்க மட்டும் அனுமதிக்கும் இறக்குமதிகள் — ஒரு பழைய Pictures மரம், ஒரு NAS ஏற்றுமதி. Immich அவற்றை அங்கேயே குறியீடு செய்கிறது. காலவரிசையில் காட்டுகிறது. ஆனால் அசல் கோப்புகளை ஒருபோதும் மாற்றாது அல்லது நீக்காது.

ஏற்கனவே உள்ள மரத்தை இறக்குமதி செய்ய, அதை சேவையக கொள்கலனுக்குள் படிக்க மட்டும் அனுமதிக்கும் வகையில் இணைக்கவும். immich-server: கீழ் docker-compose.yml-ஐத் திருத்தி ஒரு தொகுதியைச் சேர்க்கவும்:

  immich-server:
    volumes:
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
      - /srv/photos:/mnt/media/photos:ro

:ro என்பது Immich அசல்களை ஒருபோதும் தொடாது என்பதை உறுதி செய்கிறது. sudo docker compose up -d கொண்டு கொள்கலனை மீண்டும் உருவாக்கவும். பிறகு வலை UI-இல் உங்கள் அவதாரம் → Administration → External Libraries → Create Library-க்குச் செல்லவும். உரிமையாளர் பயனரைத் தேர்ந்தெடுக்கவும். Folders கீழ் Add-ஐக் கிளிக் செய்யவும். கொள்கலன் பாதையை உள்ளிடவும் — /mnt/media/photos, புரவலன் பாதை /srv/photos அல்ல. Scan-ஐக் கிளிக் செய்யவும். கொள்கலன் பாதைக்கு பதிலாக புரவலன் பாதையைப் பயன்படுத்துவது வெளிப்புற நூலகத்தின் முதல் எண் தவறு. ஸ்கேன் எதையும் கண்டுபிடிக்காது. பூஜ்ய சொத்துகள் என அறிவிக்கும்.

படி 8: Immich கடைப்பிடிக்கக் கோரும் மேம்படுத்தல் ஒழுங்குமுறை

இதுதான் செயல்படும் Immich-க்கும் உடைந்த Immich-க்கும் உள்ள வேறுபாடு. Immich வேகமாக வெளியீடுகளைத் தருகிறது. பழைய பதிப்புகளுக்கான திருத்தங்களைத் தராது. தரவிறக்கத்தையும் ஆதரிக்காது. v3 tag-ஐ கண்மூடித்தனமாகப் பின்தொடர்வது கடைசியில் உங்கள் தரவுத்தளத்தைச் சேதப்படுத்தும். ஒழுங்குமுறை:

  1. ஒரு பதிப்பைப் பொருத்தவும். IMMICH_VERSION-ஐ v3.0.2 போன்ற ஒரு குறிப்பிட்ட tag-ஆக வைத்திருங்கள். எப்போதும் புதிய v3.x-ஐ இழுக்கும் v3-ஆக வைக்க வேண்டாம்.
  2. மேம்படுத்துவதற்கு முன் ஒவ்வொரு முறையும் வெளியீட்டுக் குறிப்புகளைப் படிக்கவும். முறிவு மாற்றங்கள் — குறிப்பாக தரவுத்தள அல்லது vector-extension மாற்றங்கள் — அங்கே குறிப்பிடப்பட்டிருக்கும். v3.0 வெளியீடு இதற்குத் தெளிவான உதாரணம்: அது pgvecto.rs-ஐ முற்றிலுமாக நீக்கியது. எனவே, பழைய extension-ல் இருந்தவர்கள் மேம்படுத்துவதற்கு முன் VectorChord இடப்பெயர்ப்பை (v1.133-ல் அறிமுகப்படுத்தப்பட்டது) முடிக்க வேண்டியிருந்தது.
  3. முதலில் தரவுத்தளத்தை காப்புப் பிரதி எடுக்கவும் (படி 9). எப்போதும் செய்ய வேண்டும். குறிப்புகள் தரவுத்தளத்தைக் குறிப்பிடும்போது இரண்டு மடங்கு கவனமாக இருக்கவும்.
  4. புதிய compose கோப்பையும் எடுக்கவும். IMMICH_VERSION சேவையகம் மற்றும் ML படிமங்களை மட்டுமே பொருத்துகிறது. Postgres படிமம் docker-compose.yml-க்குள் digest மூலம் பொருத்தப்பட்டுள்ளது. எனவே, புதிய தரவுத்தள extension தேவைப்படும் பதிப்பு புதிய compose கோப்பைத் தருகிறது. இரண்டு வெளியீட்டு கோப்புகளையும் மீண்டும் பதிவிறக்கவும். உங்கள் .env மதிப்புகளை மீண்டும் பயன்படுத்தவும். பிறகு மேம்படுத்தவும்.
  5. உங்கள் மொபைல் கிளையன்டுகளையும் சுற்றியுள்ள நேரத்தில் மேம்படுத்தவும். சேவையகம் அதனுடன் பொருந்தும் major பதிப்பை மட்டுமே பேசுகிறது. செயலி தற்போதைய மற்றும் முந்தைய major பதிப்புகளை ஆதரிக்கிறது. செயலியை விட முன்னேறிய சேவையகம், நீங்கள் அதை மேம்படுத்தும் வரை போனில் Your app major version is not compatible with the server!-ஐக் காட்டும். எனவே, முதலில் செயலியை மேம்படுத்துவதே பாதுகாப்பானது.

புதிய கோப்புகளை இடத்தில் வைத்ததும் உள்ள உண்மையான கட்டளைகள்:

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

படி 9: காப்புப்பிரதிகள் — ஒரு தரவுத்தள டம்ப் மற்றும் அசல் கோப்புகள், மேலும் அதை சோதிக்கவும்

Immich-ன் காப்புப்பிரதி என்பது இரண்டு விஷயங்கள். ஒன்றை விட்டு மற்றொன்று பயனற்றது. தரவுத்தளம் ஆல்பம் அமைப்பு, முகங்கள், தேடல் குறியீடுகள் மற்றும் சொத்து-கோப்பு வரைபடத்தை கொண்டுள்ளது. அசல் கோப்புறை உண்மையான படங்களை கொண்டுள்ளது. ஒன்றை மட்டும் மீட்டெடுத்தால், நீங்கள் ஒழுங்கற்ற படங்களையோ அல்லது விடுபட்ட கோப்புகளை நோக்கி சுட்டிக்கொண்டிருக்கும் வெற்று ஓட்டையோ பெறுவீர்கள்.

Postgres கொள்கலனுக்குள் இருந்து pg_dump உடன் தரவுத்தளத்தை டம்ப் செய்யவும் — குறிப்பாக immich தரவுத்தளத்தை, முழு கிளஸ்டரையும் அல்ல:

sudo docker exec -t immich_postgres pg_dump --clean --if-exists \
  --dbname=immich --username=postgres | gzip > /opt/immich/immich-db-$(date +%F).sql.gz

பின்னர் UPLOAD_LOCATION-ஐ காப்புப்பிரதி எடுக்கவும் — முழு /opt/immich/library மரத்தையும், குறிப்பாக அதன் library/, upload/ மற்றும் profile/ துணைக்கோப்புறைகளை — restic, rsync அல்லது borg உடன் வேறொரு இயந்திரம் அல்லது ஆப்ஜெக்ட் ஸ்டோரேஜுக்கு காப்புப்பிரதி எடுக்கவும். முதலில் தரவுத்தளத்தையும் இரண்டாவதாக கோப்புகளையும் செய்யவும். இதனால் டம்ப் ஒருபோதும் கோப்பு காப்புப்பிரதி இன்னும் நகலெடுக்காத படத்தை குறிப்பிடாது. புற நூலகங்களை அவற்றின் உண்மையான மூலத்தில் தனியாக காப்புப்பிரதி எடுக்கவும்; Immich அவற்றை சொந்தமாக கொண்டிருக்காது.

இப்போது அனைவரும் தவறவிடும் பகுதி: மீட்டெடுப்பை சோதிக்கவும். மீட்டெடுப்பு ஒரு புதிய ஸ்டாக்கிற்கு எதிராக இயங்க வேண்டும். அதன் சர்வர் ஒருபோதும் தொடங்கியிருக்கக் கூடாது. வெக்டர் நீட்டிப்பு டம்ப்புடன் இணக்கமான ஒரு Postgres இமேஜில் இயங்க வேண்டும் — இதுதான் நீங்கள் DB இமேஜ் டேகை ஒருபோதும் தற்காலிகமாக மாற்றக்கூடாது என்பதற்கான காரணம். ஒரே compose மற்றும் .env கொண்ட ஒரு ஸ்க்ராட்ச் பாக்ஸில், பழைய நிலையை அழித்து, தரவுத்தளத்தை மட்டும் தொடங்கி, பின்னர் டம்ப்பை ஏற்றவும்:

cd /opt/immich
sudo docker compose down -v
sudo docker compose pull
sudo docker compose create
sudo docker start immich_postgres
sleep 10
gunzip --stdout immich-db-2026-07-15.sql.gz |
  sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" |
  sudo docker exec -i immich_postgres psql --dbname=immich --username=postgres --single-transaction --set ON_ERROR_STOP=on
sudo docker compose up -d

VectorChord தரவுத்தளத்தில் search_path-ன் sed மறுஎழுத்து கட்டாயமானது — அதை விட்டுவிட்டால் மீட்டெடுப்பு பாதிவழியில் நின்றுவிடும். உங்கள் அசல் கோப்புகள் இடத்தில் இருக்க, ஸ்டாக் மீண்டும் இயங்கும்போது, வெப் UI-ஐ திறக்கவும்: உங்கள் படங்கள் மற்றும் ஆல்பங்கள் அங்கு இருந்தால், உங்கள் காப்புப்பிரதி சரியாக வேலை செய்கிறது. நீங்கள் இதை ஒருபோதும் இயக்கியிருக்கவில்லை என்றால், உங்களிடம் காப்புப்பிரதி இல்லை — உங்களிடம் வெறும் நம்பிக்கை மட்டுமே உள்ளது.

பிழை நிலைகள், நீங்கள் காணும் சரங்களுடன்

ML கொள்கலன் OOM-ஆல் கொல்லப்படுகிறது. sudo docker compose logs immich-machine-learning திடீரென முடிகிறது, docker compose ps அதை Restarting எனக் காட்டுகிறது, வெளியேறும் குறியீடு 137. sudo dmesg | grep -i oom இதை உறுதிப்படுத்துகிறது: Out of memory: Killed process ... (python3). தேடல் மற்றும் முகம் அடையாளம் காணும் வேலைகள் பின்னர் நின்று போகின்றன. காரணம் மாதிரிகளுக்கு RAM போதாது. தீர்வுகள், வரிசையாக: swap சேர்க்கவும் (Step 1); VPS-க்கு அதிக RAM கொடுக்கவும்; அல்லது, நீங்கள் உண்மையில் முடியவில்லை என்றால், Administration → Settings → Machine Learning Settings-ல் Smart Search மற்றும் Facial Recognition-ஐ அணைத்து ML-ஐ முடக்கவும் — காப்புப்பிரதிகள் மற்றும் ஆல்பங்களை நீங்கள் வைத்திருப்பீர்கள், உள்ளடக்கத்தால் தேடுவதை இழப்பீர்கள். compose கோப்பிலிருந்து immich-machine-learning சேவையை நீக்குவதும் இதே விளைவைத் தரும்.

மேம்படுத்தலுக்குப் பிறகு Postgres தொடங்க மறுக்கிறது. சேவையக பதிவு The database currently has VectorChord 0.5.3 activated, but the Postgres instance only has 0.4.2 available. This most likely means the extension was downgraded. போன்ற ஒரு வரியுடன் சுழல்கிறது — அல்லது, பழைய ஸ்டாக்குகளில், The pgvecto.rs extension is not available in this Postgres instance. காரணம், உங்கள் தரவு மேம்படுத்தப்பட்ட பதிப்பை விட பழைய நீட்டிப்பு பதிப்பைக் கொண்ட தரவுத்தள படிமம்; கைமுறையாக படிம குறிச்சொல்லைத் திருத்தியது அல்லது பழைய படிமத்தில் புதிய dump-ஐ மீட்டமைத்தது என்பதே பெரும்பாலும் காரணம். தீர்வு, பொருந்தும் Postgres படிமத்தைப் பயன்படுத்துவது — உங்கள் தரவுத்தளத்துடன் பொருந்தும் வெளியீட்டிலிருந்து compose கோப்பை எடுக்கவும், தரவரிசையை இறக்க வேண்டாம், மற்றும் இணக்கமான படிமத்திற்கு மட்டுமே மீட்டமைக்கவும்.

மொபைல் செயலி சேவையகத்தை அடைய முடியவில்லை. URL-ஐ உள்ளிட்ட பிறகு உள்நுழைவு திரை இணைப்பு பிழையை / Server is not reachable காட்டுகிறது. மூன்று காரணங்கள்: நீங்கள் http:// உள்ளிட்டீர்கள், ஆனால் proxy https:// மட்டுமே வழங்குகிறது; நீங்கள் நேரடியாக backend-உடன் இணைத்தீர்கள் ஆனால் போர்ட்டை விட்டுவிட்டீர்கள், எனவே அது example.com:2283-க்கு பதிலாக example.com (போர்ட் 443) முயற்சித்தது; அல்லது reverse proxy /api-ஐ முன்னனுப்பவில்லை. முழு https://photos.example.com URL-ஐ உள்ளிட்டு, முதலில் அது மொபைல் உலாவியில் ஏற்றப்படுகிறதா என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள். உலாவி வேலை செய்தாலும் செயலி இல்லை என்றால், proxy பாதையை நீக்குகிறது அல்லது சான்றிதழ் self-signed ஆக உள்ளது — செயலி நம்பமுடியாத சான்றிதழ்களை நிராகரிக்கிறது.

இறக்குமதியின் போது வட்டு நிரம்பியது. பதிவேற்றங்கள் தோல்வியடையத் தொடங்குகின்றன, சிறுபடங்கள் காலியாகின்றன, மற்றும் பதிவுகள் ENOSPC: no space left on device அல்லது Postgres-லிருந்து could not extend file ... No space left on device காட்டுகின்றன. df -h UPLOAD_LOCATION தொகுதியை 100%-இல் காட்டுகிறது. பெரிய நூலகத்தை இறக்குமதி செய்வதற்கு முன்பு வட்டு அளவை நிர்ணயிப்பது இதற்காகவே. பெரிய தொகுதியை இணைத்து, ஸ்டாக்கை நிறுத்தி, UPLOAD_LOCATION-ஐ அதற்கு நகர்த்தி, .env-ஐ புதுப்பித்து, மீண்டும் தொடங்குவதன் மூலம் மீட்கவும் — அல்லது உங்கள் வழங்குநர் அனுமதித்தால் ஏற்கனவே உள்ள வட்டை விரிவாக்கவும். நிரம்பினால் Postgres செயலிழக்கலாம், எனவே ஊழல் என்று கருதுவதற்கு முன்பு இடத்தை காலியாக்கி தரவுத்தள கொள்கலனை மறுதொடக்கம் செய்யவும்.

FAQ

Immich-க்கு எவ்வளவு RAM மற்றும் வட்டு இடம் தேவை?

Immich-ன் அதிகாரப்பூர்வ தேவைகள்: குறைந்தபட்சம் 6 GB RAM, பரிந்துரைக்கப்படுவது 8 GB. சிறிய தொகுப்புக்கு swap உடன் 4 GB என்பது நடைமுறையிலான குறைந்தபட்ச எல்லை. இருப்பினும், swap-ஐ கட்டாயம் உள்ளமைக்கவும். ஏனெனில் machine-learning container தான் திடீர் சுமையை ஏற்படுத்தும் பகுதி. வட்டு இடத்திற்கு, உங்கள் முழு தொகுப்பின் அளவையும், உருவாக்கப்படும் thumbnails மற்றும் previews-ற்கு தோராயமாக 10–20% கூடுதலாகவும், உள்ளமை சேமிப்பில் ஒதுக்கவும். Postgres data directory-ஐ ஒருபோதும் network share-ல் வைக்க வேண்டாம். இன்னும் என்ன எல்லாம் இயக்கலாம் என்று முடிவு செய்யாமல் இருந்தால், 2026-ல் என்ன self-host செய்வது என்பதற்கான வழிகாட்டி Immich-ன் இடத்தேவையை மற்ற சேவைகளுடன் ஒப்பிட்டுக் காட்டுகிறது.

GPU இல்லாமல் Immich-ஐ இயக்க முடியுமா?

முடியும். Machine-learning container CPU-ல் இன்றே இயங்கும். GPU என்பது smart-search indexing-ஐ மட்டுமே வேகப்படுத்துகிறது. சரியான image variant இருந்தால், video transcoding-ஐயும் வேகப்படுத்தும். CPU-ல், பெரிய தொகுப்பின் ஆரம்ப index-ஐ உருவாக்க பின்னணியில் சில மணிநேரங்கள் ஆகலாம். ஆனால் இது backups அல்லது browsing-ஐ தடுக்காது. உங்கள் கணினி ML-ஐ இயக்க போதுமான அளவு பெரியதாக இல்லை என்றால், admin settings-ல் Smart Search மற்றும் Facial Recognition-ஐ முடக்கி மற்ற அனைத்தையும் பயன்படுத்தலாம்.

Immich-ஐ பாதுகாப்பாக எப்படி மேம்படுத்துவது?

IMMICH_VERSION-ஐ v3.0.2 போன்ற ஒரு குறிப்பிட்ட tag-க்கு பின் செய்யவும். ஒவ்வொரு மேம்படுத்தலுக்கும் முன் release notes-ஐ படிக்கவும். முதலில் database-ஐ backup செய்யவும். Postgres image ஆனது IMMICH_VERSION மூலமாக அல்லாமல் docker-compose.yml-க்குள் பின் செய்யப்பட்டிருப்பதால், உங்கள் இலக்கு release-லிருந்து compose file மற்றும் example.env இரண்டையும் மீண்டும் பதிவிறக்கவும். உங்கள் values-ஐ மீண்டும் பயன்படுத்தி, பின்னர் docker compose pull && docker compose up -d-ஐ இயக்கவும். பதிப்பை கண்காணிப்பின்றி மிதக்க விட வேண்டாம். Immich முறிவு ஏற்படுத்தும் மாற்றங்களை வெளியிடுகிறது. இது downgrades-ஐ ஆதரிக்காது.

நான் என்னென்ன backup செய்ய வேண்டும்?

இரண்டையும் ஒன்றாக backup செய்ய வேண்டும்: immich database-ன் pg_dump மற்றும் முழு UPLOAD_LOCATION originals directory-யும். Database ஆனது albums, faces மற்றும் asset-to-file mapping-ஐ கொண்டிருக்கும். Directory ஆனது உண்மையான படங்களை கொண்டிருக்கும். ஒரு restore-க்கு இவை இரண்டும் மற்றும் compatible vector extension கொண்ட database image தேவை. முதலில் database dump-ஐ எடுக்கவும். இரண்டாவதாக file copy-ஐ செய்யவும். ஒரு சோதனை கணினியில் restore-ஐ குறைந்தது ஒருமுறையாவது சோதிக்கவும். சோதிக்கப்படாத backup என்பது backup அல்ல.

எனது தற்போதைய படக் கோப்புறையை எப்படி import செய்வது?

கோப்புறையை ஒரு கூடுதல் volume-ஆக immich-server container-ல் read-only-ஆக mount செய்யவும் (உதாரணமாக - /srv/photos:/mnt/media/photos:ro). Container-ஐ மீண்டும் உருவாக்கவும். பின்னர் Administration → External Libraries-ல் ஒரு library-ஐ உருவாக்கி, container path /mnt/media/photos-ஐ சேர்க்கவும். Immich கோப்புகளை அங்கேயே index செய்கிறது. அவற்றை ஒருபோதும் மாற்றாது அல்லது நீக்காது. பொதுவான தவறு என்னவென்றால், container path-க்கு பதிலாக host path-ஐ உள்ளிடுவது தான். இதனால் scan எதையும் கண்டுபிடிக்காது.