Membangun Galeri Pribadi: Panduan Cara Install Immich di Debian 12 Menggunakan MariaDB

Pendahuluan

Dalam era digital seperti saat ini, penyimpanan foto dan video menjadi kebutuhan yang tak terelakkan. Banyak orang menggunakan layanan seperti Google Photos atau iCloud untuk menyimpan kenangan mereka secara online. Namun, sebagian pengguna memilih solusi self-hosted demi menjaga privasi dan mengontrol penuh data pribadi mereka.

Salah satu solusi terbaik untuk itu adalah Immich, platform self-hosted photo and video management yang dibangun dengan teknologi modern seperti NestJS, PostgreSQL, dan Docker. Immich memungkinkan kamu menyimpan, menelusuri, serta membagikan foto dan video di server pribadi tanpa bergantung pada layanan pihak ketiga.

Pada artikel ini, kita akan membahas cara instalasi Immich di Debian 12 dengan MariaDB sebagai database utama. Meskipun Immich secara default menggunakan PostgreSQL, kita akan melakukan sedikit penyesuaian agar dapat berjalan menggunakan MariaDB — cocok bagi pengguna yang sudah memiliki infrastruktur berbasis MariaDB.


Persiapan Awal Sistem

Sebelum memulai, pastikan kamu menggunakan server Debian 12 yang bersih dan memiliki hak akses root atau sudo.

1. Update Sistem

sudo apt update && sudo apt upgrade -y

2. Install Dependensi

Beberapa paket dasar dibutuhkan untuk menjalankan Docker dan MariaDB.

sudo apt install curl gnupg ca-certificates lsb-release -y

Instalasi Docker dan Docker Compose

Immich berjalan menggunakan Docker untuk mengelola berbagai komponennya (backend, frontend, dan worker).

1. Tambahkan Repositori Docker

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Tambahkan sumber repositori resmi Docker:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. Instalasi Docker Engine

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

3. Verifikasi

Pastikan Docker sudah aktif:

sudo systemctl enable --now docker
docker --version

Instalasi dan Konfigurasi MariaDB

Immich menyimpan metadata (seperti nama file, path, user, dan tag) di database. Di sini kita akan gunakan MariaDB.

1. Install MariaDB Server

sudo apt install mariadb-server mariadb-client -y

2. Amankan Instalasi

sudo mysql_secure_installation

Ikuti instruksi untuk menghapus pengguna anonim, menonaktifkan login remote root, dan menghapus database test.

3. Buat Database Immich

Masuk ke MariaDB:

sudo mysql -u root -p

Lalu jalankan:

CREATE DATABASE immich CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'immichuser'@'localhost' IDENTIFIED BY 'passwordku';
GRANT ALL PRIVILEGES ON immich.* TO 'immichuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Ganti passwordku dengan password kuat pilihanmu.

Menyiapkan Immich

Secara resmi, Immich menggunakan PostgreSQL. Namun, untuk pengguna MariaDB, kita akan sedikit menyesuaikan environment variable agar koneksi database tetap berfungsi.

1. Clone Repository Immich

Kita ambil kode sumber dari GitHub resmi Immich:

cd /opt
sudo git clone https://github.com/immich-app/immich.git
cd immich

2. Buat File Konfigurasi

Edit file .env:

nano .env

Ubah atau tambahkan baris berikut:

DB_HOST=mariadb
DB_PORT=3306
DB_USERNAME=immichuser
DB_PASSWORD=passwordku
DB_DATABASE_NAME=immich
UPLOAD_LOCATION=/usr/src/app/upload
IMMICH_LOG_LEVEL=log

Membuat File Docker Compose

Immich terdiri dari beberapa service utama:

  • immich-server → backend utama
  • immich-web → antarmuka web
  • immich-microservices → proses thumbnail & indexing
  • immich-machine-learning → AI tagging
  • mariadb → database

Buat file docker-compose.yml di direktori /opt/immich:

nano docker-compose.yml

Isi dengan :

version: '3.8'

services:
  mariadb:
    image: mariadb:10.11
    container_name: immich-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: immich
      MYSQL_USER: immichuser
      MYSQL_PASSWORD: passwordku
    volumes:
      - ./db:/var/lib/mysql

  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    container_name: immich-server
    depends_on:
      - mariadb
    environment:
      DB_HOST: mariadb
      DB_PORT: 3306
      DB_USERNAME: immichuser
      DB_PASSWORD: passwordku
      DB_DATABASE_NAME: immich
    volumes:
      - ./upload:/usr/src/app/upload
    ports:
      - "2283:2283"
    restart: unless-stopped

  immich-web:
    image: ghcr.io/immich-app/immich-web:release
    container_name: immich-web
    depends_on:
      - immich-server
    ports:
      - "80:3000"
    restart: unless-stopped

  immich-microservices:
    image: ghcr.io/immich-app/immich-microservices:release
    container_name: immich-micro
    depends_on:
      - immich-server
    environment:
      DB_HOST: mariadb
      DB_PORT: 3306
      DB_USERNAME: immichuser
      DB_PASSWORD: passwordku
      DB_DATABASE_NAME: immich
    restart: unless-stopped

Jika kamu ingin mengaktifkan machine learning (AI tagging), tambahkan service immich-machine-learning ke file di atas.

Menjalankan Immich

Setelah semua siap, jalankan perintah:

docker compose up -d

Periksa status container:

docker ps

Jika semua container (immich-server, immich-web, immich-db, immich-microservices) aktif, maka instalasi berhasil.

Akses Immich Web

Buka browser dan akses:

http://IP-server-anda

Kamu akan melihat halaman awal Immich.
Daftarkan akun baru (sebagai admin pertama) dan login untuk mulai menggunakan aplikasi.

Setelah itu, kamu bisa mengunggah foto, membuat album, serta membagikannya ke pengguna lain.

Tips Tambahan

  • SSL/HTTPS:
    Gunakan reverse proxy seperti Nginx Proxy Manager agar Immich dapat diakses menggunakan domain dan SSL dari Let’s Encrypt.
  • Backup Data:
    Backup folder upload dan direktori db secara rutin.
  • Monitoring:
    Gunakan docker logs -f immich-server untuk memantau aktivitas server.
  • Update Container:
    Untuk memperbarui Immich, jalankan:
docker compose pull
docker compose up -d

Kesimpulan

Dengan mengikuti langkah-langkah di atas, kamu telah berhasil menginstal Immich di Debian 12 menggunakan MariaDB sebagai database.
Immich memberikan pengalaman seperti Google Photos tetapi berjalan sepenuhnya di server pribadi. Menggunakan MariaDB membuatnya lebih fleksibel untuk lingkungan yang sudah mengandalkan database MySQL/MariaDB.

Meskipun Immich secara resmi merekomendasikan PostgreSQL, MariaDB tetap dapat digunakan dengan beberapa penyesuaian konfigurasi seperti di atas. Kombinasi Docker dan MariaDB menjadikan sistem ini modular, mudah dipelihara, dan aman.


Kata Penutup

Immich adalah solusi masa depan bagi pengguna yang mengutamakan privasi dan kontrol data.
Dengan antarmuka modern, performa cepat, serta kemampuan self-hosted, Immich memberikan kebebasan penuh untuk mengelola foto dan video tanpa batas.

Kini kamu tidak perlu lagi bergantung pada layanan penyimpanan komersial — cukup gunakan server Debian milikmu, pasang Immich, dan nikmati pengalaman galeri pribadi yang tangguh dan elegan.

Leave a Comment