Immich: Menyiapkan Cloud Sendiri untuk Foto dan Video di VPS
Immich adalah layanan self-hosted untuk menyimpan dan mengunggah foto serta video secara otomatis. Layanan ini menyediakan aplikasi seluler, antarmuka web, album, pencarian cerdas, dan pengenalan wajah, sementara perpustakaan tetap berada di server pilihan Anda.
Di bawah ini, kita akan membahas persyaratan Immich, pemasangan di Ubuntu dengan Docker Compose, penyiapan HTTPS, koneksi ponsel, dan cadangan eksternal.
Immich dalam Enam Langkah
- Buat Linux VPS dengan RAM dan ruang disk yang cukup.
- Arahkan subdomain, seperti
photos.example.com, ke alamat IP server. - Pasang Docker dan unduh konfigurasi resmi Immich.
- Tentukan jalur perpustakaan media dan database, lalu jalankan container.
- Tutup port internal dan aktifkan HTTPS.
- Pasang aplikasi seluler dan konfigurasikan cadangan eksternal.
Apa Itu Immich?
Immich adalah aplikasi sumber terbuka untuk mengelola perpustakaan foto dan video sendiri. Foto muncul di linimasa, dapat dikelompokkan ke dalam album, ditemukan melalui pencarian, dan diunggah otomatis dari ponsel ke server.
Perbedaan utama dari layanan cloud foto biasa adalah kendali atas sisi server. File disimpan di VPS atau server rumah Anda, tetapi pemilik bertanggung jawab atas ruang kosong, pembaruan, keamanan, dan cadangan.
| Parameter | Layanan foto cloud | Immich |
|---|---|---|
| Lokasi penyimpanan file | Di infrastruktur penyedia | Di server Anda |
| Pemeliharaan | Ditangani penyedia | Ditangani pemilik |
| Biaya | Paket berdasarkan penyimpanan | VPS, ruang disk, dan cadangan |
Immich bukan cadangan dengan sendirinya. Jika foto hanya ada di satu VPS, kerusakan disk atau penghapusan tidak sengaja tetap dapat menghancurkan arsip.
Fitur Utama Immich
- Unggahan otomatis. Aplikasi Android dan iOS mengunggah foto serta video dari album yang dipilih. Wi-Fi digunakan secara default, dan file yang sudah ada dilewati berdasarkan checksum.
- Pencarian cerdas. Layanan dapat mencari berdasarkan orang, lokasi, tanggal, kamera, teks dalam gambar, dan deskripsi konten. Wajah dikelompokkan dan kemudian dapat diberi nama.
- Album dan berbagi. Immich mendukung banyak pengguna, album bersama, berbagi dengan pasangan, serta tautan publik dengan kata sandi dan tanggal kedaluwarsa.
- Peta dan metadata. Immich membaca data EXIF, menampilkan tempat foto diambil, membuat memories, serta mendukung favorit, arsip, dan perpustakaan eksternal.
Machine learning memberikan beban terbesar pada CPU dan RAM selama impor awal. Setelah thumbnail dan indeks dibuat, penggunaan sumber daya sehari-hari biasanya lebih rendah.
Persyaratan Server Immich
Persyaratan resmi untuk versi saat ini adalah:
- sistem Linux atau Unix-like 64-bit;
- minimal 2 core CPU, dengan 4 core sebagai rekomendasi;
- minimal 6 GB RAM, dengan 8 GB sebagai rekomendasi;
- Docker Engine dengan plugin
docker compose; - SSD lokal untuk database PostgreSQL;
- ruang untuk file asli, thumbnail, dan video hasil transkode.
Immich dapat berjalan di server dengan RAM 4 GB jika fitur machine learning dinonaktifkan. Untuk pengenalan wajah dan pencarian cerdas, lebih baik memilih 8 GB sejak awal.
Thumbnail dan file hasil transkode menambah ukuran perpustakaan media rata-rata 10–20%. Untuk arsip 200 GB, sediakan setidaknya 240–260 GB. Direktori database DB_DATA_LOCATION sebaiknya disimpan di SSD lokal, bukan drive jaringan.
Konfigurasi awal yang praktis adalah 4 vCPU, RAM 8 GB, Ubuntu 24.04 LTS, dan SSD dengan kapasitas 20–30% lebih besar daripada perpustakaan sumber. Kartu grafis khusus tidak diperlukan, meskipun dapat mempercepat pemrosesan arsip besar.
Cara Memasang Immich di VPS
Contoh ini menggunakan Ubuntu 24.04 dan subdomain photos.example.com.
1. Konfigurasikan DNS dan Siapkan Ubuntu
Buat catatan DNS A yang mengarah ke alamat IPv4 VPS. Kemudian hubungkan melalui SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableJangan menutup sesi SSH saat ini sampai Anda memastikan koneksi baru dapat digunakan.
2. Pasang Docker dan 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 versionGunakan perintah docker compose secara khusus: perintah docker-compose yang sudah usang tidak lagi didukung proyek.
3. Unduh dan Konfigurasikan 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.envBuka file tersebut:
nano /opt/immich/.envUbah parameter utama:
UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORDMasukkan zona waktu Anda sendiri. Kata sandi PostgreSQL harus berisi huruf Latin dan angka; perintah openssl rand -hex 24 akan menghasilkan nilai acak. Biarkan baris lainnya seperti pada file example.env saat ini.
4. Tutup Port Internal dan Jalankan Container
Di docker-compose.yml, cari port untuk layanan immich-server:
ports:
- '2283:2283'Ganti menjadi:
ports:
- '127.0.0.1:2283:2283'Kini port hanya dapat diakses dari VPS itu sendiri. Jalankan layanan:
cd /opt/immich
docker compose up -d
docker compose psUntuk diagnostik, gunakan docker compose logs --tail=200.
5. Aktifkan HTTPS dengan 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 caddyCaddy akan meminta sertifikat secara otomatis jika DNS mengarah ke VPS dan port 80 serta 443 dapat diakses. Immich harus berjalan di root domain atau subdomain; alamat seperti example.com/immich tidak didukung.
6. Buat Administrator dan Hubungkan Ponsel
Buka https://photos.example.com. Pengguna pertama yang mendaftar menjadi administrator dan dapat membuat akun tambahan.
Pasang Immich dari App Store atau Google Play. Pada layar masuk, masukkan alamat tanpa /api:
https://photos.example.comPilih album dan aktifkan cadangan. Impor pertama mungkin membutuhkan waktu: server membuat thumbnail, mengenali wajah, mengindeks data pencarian, dan memproses video.
Memperbarui Immich
Sebelum memperbarui, baca catatan rilis, terutama saat berpindah ke versi mayor baru:
cd /opt/immich
docker compose pull
docker compose up -d
docker image prunePerbarui aplikasi seluler terlebih dahulu, kemudian server. Mengembalikan database ke versi yang lebih lama mungkin tidak didukung kecuali ada instruksi terpisah.
Mencadangkan Immich
Immich otomatis membuat dump PostgreSQL, tetapi dump tersebut hanya berisi database dan metadata, bukan foto serta video. Untuk pemulihan lengkap, simpan:
- seluruh direktori
/srv/immich-data; /opt/immich/.envdandocker-compose.yml;- konfigurasi Caddy.
Salinan di VPS yang sama tidak melindungi dari kerusakan disk atau penghapusan server. Kirim data ke server, NAS, atau object storage terpisah dan ikuti strategi cadangan 3-2-1. Uji pemulihan secara berkala, bukan hanya memeriksa bahwa file cadangan ada.
VPS Mana yang Dipilih untuk Immich
Untuk fungsionalitas penuh dengan pengenalan wajah dan pencarian cerdas, sebaiknya pilih VPS dengan setidaknya 4 vCPU dan RAM 8 GB. Hitung ukuran disk berdasarkan perpustakaan media, dengan kapasitas tambahan untuk thumbnail, video, dan pertumbuhan arsip.
Linux VPS dari tropic.host dengan alamat IP statis dan penyimpanan SSD cocok untuk tugas ini. Anda dapat memulai dengan konfigurasi RAM 8 GB dan meningkatkan sumber daya seiring pertumbuhan perpustakaan. Simpan database PostgreSQL di disk lokal yang cepat dan cadangan di luar VPS ini.
VPS nyaman untuk akses sepanjang waktu dari jaringan mana pun. Untuk arsip beberapa terabyte, server rumah mungkin lebih murah, tetapi Anda harus menyediakan listrik, akses eksternal, dan redundansi sendiri.
Keterbatasan Immich
Self-hosting tidak menjamin keandalan. Kata sandi yang lemah, port 2283 yang terbuka, container usang, atau tidak adanya cadangan eksternal menciptakan risiko kehilangan data.
Immich juga bukan salinan persis Google Photos atau iCloud: kemampuan pengeditan dan sinkronisasi latar belakang berbeda, sedangkan kecepatan analisis bergantung pada perangkat keras. Sebelum memindahkan satu-satunya arsip, uji layanan dengan perpustakaan kecil.
Kesimpulan
Immich memungkinkan Anda membuat galeri foto sendiri dengan unggahan seluler, album, pengenalan wajah, pencarian, dan berbagi. Untuk versi terbaru, sebaiknya siapkan Linux VPS dengan 4 core, RAM 8 GB, dan SSD dengan kapasitas cadangan minimal 20–30%.
Setelah instalasi, konfigurasikan HTTPS, pembaruan, dan cadangan eksternal direktori media bersama database. Cadanganlah—bukan self-hosting itu sendiri—yang melindungi foto dari kehilangan.
FAQ
Apakah Immich gratis?
Server Immich bersumber terbuka dan dapat berjalan tanpa langganan wajib. Anda tetap perlu membayar VPS, domain, ruang disk, dan cadangan.
Berapa banyak RAM yang dibutuhkan Immich?
Minimum resmi adalah RAM 6 GB, sementara 8 GB direkomendasikan. Dengan RAM 4 GB, Anda harus menonaktifkan machine learning.
Apakah Immich dapat dipasang tanpa domain?
Secara teknis, ya, tetapi untuk akses permanen dari ponsel, sebaiknya gunakan domain dan HTTPS. Ini melindungi autentikasi dan transfer file.
Apakah Immich menggantikan cadangan foto?
Tidak. Salin perpustakaan media dan database secara terpisah ke perangkat atau lokasi lain.
Bisakah saya memigrasikan arsip foto yang sudah ada?
Ya. File dapat diunggah melalui antarmuka web atau CLI, atau direktori dapat dihubungkan sebagai perpustakaan eksternal. Buat salinan data sumber sebelum melakukan impor berskala besar.
