Tropic Host

Immich pe un VPS: creează-ți propriul cloud pentru fotografii și videoclipuri

7 min citire
Tropic
Immich pe un VPS: creează-ți propriul cloud pentru fotografii și videoclipuri

Language: ro

Immich: creează-ți propriul cloud pentru fotografii și videoclipuri pe un VPS

Immich este un serviciu auto-găzduit pentru stocarea și încărcarea automată a fotografiilor și videoclipurilor. Oferă aplicații mobile, interfață web, albume, căutare inteligentă și recunoaștere facială, păstrând biblioteca pe serverul ales de tine.

Mai jos vom acoperi cerințele Immich, instalarea pe Ubuntu cu Docker Compose, configurarea HTTPS, conectarea telefonului și backupurile externe.

Immich în șase pași

  1. Creează un VPS Linux cu suficient RAM și spațiu pe disc.
  2. Direcționează un subdomeniu, de exemplu photos.example.com, către adresa IP a serverului.
  3. Instalează Docker și descarcă configurația oficială Immich.
  4. Specifică locațiile bibliotecii media și ale bazei de date, apoi pornește containerele.
  5. Închide portul intern și activează HTTPS.
  6. Instalează aplicația mobilă și configurează un backup extern.

Ce este Immich?

Immich este o aplicație open-source pentru gestionarea propriei biblioteci de fotografii și videoclipuri. Fotografiile apar pe o cronologie, pot fi grupate în albume, găsite prin căutare și încărcate automat de pe telefon pe server.

Diferența principală față de un serviciu cloud obișnuit pentru fotografii este controlul asupra părții de server. Fișierele sunt stocate pe VPS-ul sau serverul tău de acasă, însă proprietarul este responsabil pentru spațiul liber, actualizări, securitate și backupuri.

ParametruServiciu cloud pentru fotografiiImmich
Unde sunt stocate fișierelePe infrastructura furnizoruluiPe serverul tău
ÎntreținereGestionată de furnizorGestionată de proprietar
CosturiPlan bazat pe spațiul de stocareVPS, spațiu pe disc și backupuri

Immich nu este un backup în sine. Dacă fotografiile există doar pe un singur VPS, o defecțiune a discului sau o ștergere accidentală poate distruge în continuare arhiva.

Funcțiile principale ale Immich

  • Încărcări automate. Aplicațiile Android și iOS încarcă fotografii și videoclipuri din albumele selectate. Wi-Fi este folosit implicit, iar fișierele existente sunt omise pe baza checksumului.
  • Căutare inteligentă. Serviciul poate căuta după persoane, locație, dată, cameră, text dintr-o imagine și descrierea conținutului. Fețele sunt grupate și pot primi apoi nume.
  • Albume și partajare. Immich acceptă mai mulți utilizatori, albume partajate, partajarea cu un partener și linkuri publice cu parolă și dată de expirare.
  • Hartă și metadate. Immich citește datele EXIF, afișează locul în care a fost făcută o fotografie, creează amintiri și acceptă favorite, arhivă și biblioteci externe.

Învățarea automată solicită cel mai mult procesorul și memoria RAM în timpul importului inițial. După generarea miniaturilor și a indexurilor, consumul zilnic de resurse este de obicei mai mic.

Cerințele serverului Immich

Cerințele oficiale pentru versiunile actuale sunt:

  • un sistem Linux sau Unix-like pe 64 de biți;
  • cel puțin 2 nuclee CPU, cu 4 recomandate;
  • cel puțin 6 GB RAM, cu 8 GB recomandați;
  • Docker Engine cu pluginul docker compose;
  • un SSD local pentru baza de date PostgreSQL;
  • spațiu pentru fișierele originale, miniaturi și videoclipuri transcodate.

Immich poate rula pe un server cu 4 GB RAM dacă funcțiile de învățare automată sunt dezactivate. Pentru recunoaștere facială și căutare inteligentă, este mai bine să alegi de la început 8 GB.

Miniaturile și fișierele transcodate adaugă în medie 10–20% la dimensiunea bibliotecii media. Pentru o arhivă de 200 GB, alocă cel puțin 240–260 GB. Directorul bazei de date DB_DATA_LOCATION trebuie păstrat pe un SSD local, nu pe o unitate de rețea.

O configurație practică de început este de 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS și un SSD cu o capacitate cu 20–30% mai mare decât biblioteca sursă. O placă video dedicată nu este necesară, deși poate accelera procesarea unei arhive mari.

Cum instalezi Immich pe un VPS

Acest exemplu folosește Ubuntu 24.04 și subdomeniul photos.example.com.

1. Configurează DNS și pregătește Ubuntu

Creează o înregistrare DNS A care indică adresa IPv4 a VPS-ului. Apoi conectează-te prin SSH:

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

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

Nu închide sesiunea SSH actuală până nu verifici că o conexiune nouă funcționează.

2. Instalează Docker și 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

Folosește în mod specific comanda docker compose: vechea comandă docker-compose nu mai este acceptată de proiect.

3. Descarcă și configurează 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

Deschide fișierul:

nano /opt/immich/.env

Modifică parametrii principali:

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

Introdu propriul fus orar. Parola PostgreSQL trebuie să conțină litere latine și cifre; comanda openssl rand -hex 24 va genera o valoare aleatorie. Lasă celelalte linii așa cum apar în fișierul example.env actual.

4. Închide portul intern și pornește containerele

În docker-compose.yml, găsește portul pentru serviciul immich-server:

ports:
  - '2283:2283'

Înlocuiește-l cu:

ports:
  - '127.0.0.1:2283:2283'

Portul este acum accesibil doar din VPS. Pornește serviciul:

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

Pentru diagnosticare, folosește docker compose logs --tail=200.

5. Activează HTTPS cu 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

Caddy va solicita automat un certificat dacă DNS indică VPS-ul, iar porturile 80 și 443 sunt accesibile. Immich trebuie să ruleze la rădăcina unui domeniu sau subdomeniu; o adresă precum example.com/immich nu este acceptată.

6. Creează un administrator și conectează telefonul

Deschide https://photos.example.com. Primul utilizator înregistrat devine administrator și poate crea conturi suplimentare.

Instalează Immich din App Store sau Google Play. În ecranul de autentificare, introdu adresa fără /api:

https://photos.example.com

Selectează albumele și activează backupul. Primul import poate dura ceva timp: serverul generează miniaturi, recunoaște fețe, indexează datele pentru căutare și procesează videoclipuri.

Actualizarea Immich

Înainte de actualizare, citește notele versiunii, mai ales când treci la o versiune majoră nouă:

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

Actualizează mai întâi aplicațiile mobile, apoi serverul. Revenirea bazei de date la o versiune mai veche poate să nu fie acceptată dacă nu există instrucțiuni separate.

Backupul Immich

Immich creează automat dumpuri PostgreSQL, însă acestea conțin doar baza de date și metadatele, nu și fotografiile și videoclipurile. Pentru o recuperare completă, salvează:

  • întregul director /srv/immich-data;
  • /opt/immich/.env și docker-compose.yml;
  • configurația Caddy.

O copie pe același VPS nu protejează împotriva defectării discului sau ștergerii serverului. Trimite datele pe un server separat, NAS sau în object storage și urmează strategia de backup 3-2-1. Testează periodic restaurarea, nu verifica doar că fișierele de backup există.

Ce VPS să alegi pentru Immich

Pentru funcționalitate completă cu recunoaștere facială și căutare inteligentă, este rezonabil să alegi un VPS cu cel puțin 4 vCPU și 8 GB RAM. Calculează dimensiunea discului pornind de la biblioteca media și adaugă capacitate pentru miniaturi, videoclipuri și creșterea arhivei.

Un VPS Linux de la tropic.host, cu adresă IP statică și stocare SSD, este potrivit pentru această sarcină. Poți începe cu o configurație de 8 GB RAM și să mărești resursele pe măsură ce biblioteca crește. Păstrează baza de date PostgreSQL pe un disc local rapid și backupul în afara acestui VPS.

Un VPS este convenabil pentru acces permanent din orice rețea. Pentru o arhivă de câțiva terabytes, un server de acasă poate fi mai ieftin, dar va trebui să asiguri singur alimentarea, accesul extern și redundanța.

Limitările Immich

Auto-găzduirea nu garantează fiabilitatea. O parolă slabă, un port 2283 expus, containere neactualizate sau lipsa unui backup extern creează risc de pierdere a datelor.

Immich nu este nici o copie exactă a Google Photos sau iCloud: capacitățile de editare și sincronizare în fundal diferă, iar viteza analizei depinde de hardware. Înainte să muți singura arhivă, testează serviciul cu o bibliotecă mică.

Concluzie

Immich îți permite să creezi propria galerie foto cu încărcări mobile, albume, recunoaștere facială, căutare și partajare. Pentru o versiune actuală, este bine să pregătești un VPS Linux cu 4 nuclee, 8 GB RAM și un SSD cu cel puțin 20–30% capacitate liberă.

După instalare, configurează HTTPS, actualizările și un backup extern al directorului media împreună cu baza de date. Backupul — nu auto-găzduirea în sine — protejează fotografiile împotriva pierderii.

FAQ

Immich este gratuit?

Serverul Immich este open-source și poate rula fără un abonament obligatoriu. Tot trebuie să plătești pentru VPS, domeniu, spațiu pe disc și backupuri.

De cât RAM are nevoie Immich?

Minimul oficial este de 6 GB RAM, iar 8 GB sunt recomandați. Cu 4 GB va trebui să dezactivezi învățarea automată.

Se poate instala Immich fără domeniu?

Tehnic, da, însă pentru acces permanent de pe telefon este mai bine să folosești un domeniu și HTTPS. Acestea protejează autentificarea și transferurile de fișiere.

Immich înlocuiește un backup pentru fotografii?

Nu. Copiază separat biblioteca media și baza de date pe un alt dispozitiv sau într-o altă locație.

Pot migra o arhivă foto existentă?

Da. Fișierele pot fi încărcate prin interfața web sau CLI, ori poți conecta un director ca bibliotecă externă. Creează o copie a datelor sursă înainte de un import la scară largă.