Cara Hos Sendiri Immich: RAM 6GB dan Kemas Kini Selamat
Ketahui keperluan sebenar RAM 6GB untuk mengelakkan ralat exit 137, konfigurasi port 2283 di sebalik HTTPS, serta isu pangkalan data pgvecto.rs pada Immich v3 yang kritikal.
Apa yang anda sedang bina
Immich ialah perkhidmatan sandaran foto dan video yang dihoskan sendiri, satu pengganti sebenar untuk Google Photos. Ia mempunyai aplikasi telefon yang memuat naik gulungan kamera anda di latar belakang, garis masa, album, pengecaman wajah dan carian pembelajaran mesin yang menemui "pantai" atau seseorang tanpa anda perlu menandakan apa-apa pun. Anda menjalankannya pada VPS milik anda, fail asal kekal pada cakera anda, dan tiada sesiapa yang mengimbasnya untuk menjual barangan kepada anda. Jika anda masih menimbangkannya dengan calon lain yang jelas, perbandingan PhotoPrism dan Immich kami meletakkan keperluan RAM, aplikasi telefon dan arahan sandaran mereka bersebelahan.
Pemasangan ini terdiri daripada empat kontena daripada fail Docker Compose projek itu sendiri. Bahagian itu mengambil masa sepuluh minit. Selebihnya panduan ini adalah tempat kesukarannya: kontena pembelajaran mesin sangat dahagakan memori pada kotak kecil, fail asal memakan ruang cakera dengan cepat, aplikasi mudah alih menolak pelayan HTTP biasa, dan Immich mengeluarkan perubahan yang memecahkan fungsi (breaking changes) dengan cukup kerap sehingga docker compose pull yang cuai boleh menyebabkan pangkalan data anda tidak dapat bermula. Ambil serius empat perkara tersebut dan Immich akan menjadi sangat stabil. Abaikan perkara itu dan anda akan kehilangan masa hujung minggu anda.
Prasyarat dan perkara penting yang perlu diketahui
- RAM: dokumentasi rasmi menyatakan minimum 6 GB dan 8 GB disyorkan, anggap 4 GB berserta swap sebagai had mutlak. Kontena
immich-serverdan Postgres tidak menggunakan banyak sumber. Kontenaimmich-machine-learningadalah yang paling berat, ia memuatkan model CLIP dan pengecaman wajah ke dalam RAM untuk membina indeks carian, dan pada pelayan 2 GB, kernel akan menamatkan proses tersebut. Tambahkan swap walaupun anda mempunyai 4 GB. - Cakera: sediakan saiz untuk keseluruhan pustaka anda, dan lebihkan sedikit. Fail asal anda disalin sepenuhnya, ditambah dengan Immich yang menjana imej kecil (thumbnail) dan pratonton (kira-kira 10–20% tambahan). Koleksi foto 200 GB memerlukan volum 300 GB. Postgres pula bersaiz kecil jika dibandingkan.
- CPU: mana-mana VPS KVM moden sudah memadai, tetapi ML pada CPU adalah perlahan. Pengindeksan carian pintar bagi import yang besar boleh berjalan selama berjam-jam di latar belakang. Itu adalah perkara biasa; ia tidak memerlukan GPU.
- Nama domain yang dihalakan ke VPS. Aplikasi mudah alih sangat mengutamakan endpoint HTTPS, dan anda memerlukan reverse proxy di hadapan. Ini adalah bentuk persediaan yang sama seperti instans Nextcloud yang dihoskan sendiri dengan Docker, TLS dan sandaran, Immich ialah padanan foto bagi pelayan fail tersebut.
- Docker dan pemalam Compose dipasang, Docker Engine berserta pemalam Compose v2 daripada repositori apt rasmi Docker, tepat seperti yang dibincangkan dalam panduan asas Docker Compose kami.
Langkah 1: Tambah swap sebelum melakukan perkara lain
Kegagalan Immich yang paling kerap berlaku pada VPS bersaiz kecil ialah bekas ML ditamatkan oleh OOM-killer. Berikan ruang kepada kernel untuk berfungsi terlebih dahulu.
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 -hfree -h kini sepatutnya memaparkan baris Swap: yang menunjukkan 4.0Gi. Ini tidak akan mempercepatkan ML, tetapi ia menghalang bekas tersebut daripada terhenti semasa proses pengindeksan pada mesin 4 GB.
Langkah 2: Dapatkan fail compose dan env rasmi, gunakan fail asal, bukan salinan
Immich menetapkan versi servisnya dan, yang paling penting, imej pangkalan datanya di dalam fail yang dibekalkan. Jangan tampal fail compose daripada blog (termasuk blog ini) sebagai rujukan utama anda. Muat turun aset keluaran:
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.envAset ini datang daripada keluaran yang ditanda (tagged release), jadi rujukan imej adalah sepadan. Fail compose mentakrifkan empat servis, dan adalah wajar untuk mengetahui fungsi setiap satu sebelum anda membuat sebarang perubahan:
immich-server(ghcr.io/immich-app/immich-server, kontenaimmich_server), API dan UI web, mendengar pada port2283. Ia melekapkan (mount) muat naik anda di/data.immich-machine-learning(ghcr.io/immich-app/immich-machine-learning, kontenaimmich_machine_learning), carian CLIP dan pengecaman wajah. Menyimpan model yang dimuat turun dalam volummodel-cache. Ini adalah servis yang menggunakan banyak memori.database(kontenaimmich_postgres), Postgres dengan sambungan vektor VectorChord, yang menggerakkan carian keserupaan. Tag imej ditetapkan mengikut digest terus di dalam fail compose, contohnyaghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:.... Persediaan lama menggunakanpgvecto.rs; sokongan untuknya telah dibuang dalam Immich v3.0, jadi apa sahaja yang anda pasang hari ini adalah VectorChord. Jangan sesekali mengubah tag ini secara manual.redis(kontenaimmich_redis), instans Valkey/Redis untuk baris gilir tugasan (job queues).
Langkah 3: Konfigurasikan .env, tempat foto dan pangkalan data anda disimpan
Buka .env dan tetapkan empat perkara. Segala-galanya di bawah baris bertanda kekal seperti sedia ada.
# 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=immichDua peraturan yang dapat menjimatkan masalah anda. UPLOAD_LOCATION harus menghala ke cakera besar anda; jika anda melampirkan volum data kemudian, tetapkan ini ke laluan lekapannya (mount path) dari awal, kerana memindahkannya selepas itu bermakna memindahkan imej kecil (thumbnails) dan mengemas kini laluan aset. Dan DB_DATA_LOCATION mestilah berada pada cakera tempatan: Postgres pada perkongsian NFS atau SMB akan rosak, dan dokumentasi menyatakan perkara ini dengan jelas. Jika anda hanya menggunakan huruf dan angka dalam DB_PASSWORD, anda mengelakkan satu kelas pepijat pelarian rentetan sambungan (connection-string escaping bugs).
Langkah 4: Pelaksanaan pertama dan penciptaan pengguna admin
cd /opt/immich
sudo docker compose up -d
sudo docker compose psHasil yang betul ialah empat kontena, kesemuanya running dan akhirnya healthy:
NAME STATUS
immich_machine_learning Up (healthy)
immich_postgres Up (healthy)
immich_redis Up (healthy)
immich_server Up (healthy)up yang pertama akan memuat turun imej bersaiz beberapa gigabait, jadi berikan masa. Pantau kemajuan dengan sudo docker compose logs -f immich-server; pelayan akan mencatat log bahawa ia sedang mendengar pada port 2283 sebaik sahaja ia siap. Sekarang, buka http://YOUR_SERVER_IP:2283 dalam pelayar web. Lawatan pertama akan memaparkan wizard Getting Started, akaun pertama yang anda cipta ialah akaun admin. Tetapkan kata laluan yang kuat; akaun ini memiliki tetapan pelayan, pengurusan pengguna dan konfigurasi ML yang anda perlukan kemudian.
Langkah 5: Aplikasi mudah alih dan sandaran latar belakang
Pasang "Immich" daripada App Store atau Play Store. Pada skrin log masuk, aplikasi akan meminta Server Endpoint URL. Masukkan URL penuh termasuk skema, contohnya https://photos.example.com (aplikasi akan menambah /api secara automatik). Log masuk dengan akaun yang baru anda buat, kemudian buka skrin Backup dalam aplikasi, pilih album yang ingin dilindungi (biasanya Camera dan Screenshots), dan aktifkan Background backup. Sandaran latar belakang iOS dihadkan oleh sistem pengendalian; muat naik di latar depan sentiasa berjalan, manakala sandaran latar belakang hanya berlaku apabila sistem pengendalian membenarkannya.
Di sinilah pengguna biasanya menghadapi masalah, jadi baca Langkah 6 sebelum anda cuba menyelesaikan isu aplikasi tersebut.
Langkah 6: HTTPS melalui reverse proxy, dan peraturan URL penuh
Aplikasi mudah alih itu benar-benar memerlukan HTTPS. Letakkan reverse proxy di hadapan port 2283 dan lakukan TLS termination di situ. Jika anda sudah menjalankan beberapa container, Traefik dengan TLS automatik untuk beberapa aplikasi Docker ialah pilihan paling kemas. Satu blok label menghala photos.example.com ke container immich-server dan mendapatkan sijil untuk anda. Jika anda lebih suka nginx, panduan Let's Encrypt dengan Certbot dan nginx akan mendapatkan sijil serta blok proxy_pass http://127.0.0.1:2283;. Selepas proxy itu tersedia, menambah servis seterusnya biasanya hanya memerlukan subdomain baharu. Dengan cara ini, frontend media seperti Halcyon, skin gedung video 90-an untuk Jellyfin boleh dijalankan bersama Immich pada pelayan yang sama. Perkara yang sama terpakai pada HarnessRouter yang dihos sendiri untuk meletakkan Codex dan Claude Code di belakang satu API. Servis itu sengaja diikat pada loopback dan hanya boleh dicapai selepas proxy melakukan TLS termination di hadapannya. Oleh itu, tukar log masuk lalainya sebelum menghala subdomain kepadanya. Namun, tidak setiap container perlu mempunyai hostname awam. Alat untuk pentadbir sahaja seperti pengimbas keselamatan open-kritt yang dihos sendiri lebih baik dibiarkan di luar proxy dan dicapai melalui terowong SSH apabila anda jarang membuka UI-nya. Sesetengah servis tidak menggunakan proxy kerana HTTP bukan protokolnya. Pelayan relay RustDesk yang dihos sendiri ialah contoh paling jelas. Servis itu mendengar pada beberapa port TCP dan UDP mentah, serta memerlukan peraturan firewall dan bukannya subdomain. Satu tetapan proxy penting untuk Immich: naikkan had saiz muat naik kerana video daripada telefon bersaiz besar. Dalam nginx, tetapan itu ialah client_max_body_size 50000M; di dalam blok server. Nilai lalai 1 MB menolak muat naik video dengan 413 Request Entity Too Large.
Peraturan yang dikuatkuasakan oleh aplikasi: endpoint mesti boleh dicapai dan, secara praktikalnya, mestilah HTTPS. Endpoint http://, atau IP terus tanpa port, adalah punca mesej "aplikasi tidak dapat mencapai pelayan", yang diterangkan sebagai kegagalan bernama di bawah.
Langkah 7: Pustaka luaran berbanding muat naik, mengimport pepohon foto sedia ada
Terdapat dua cara foto dimasukkan ke dalam Immich, dan ia bukanlah perkara yang sama.
- Muat naik ialah aset yang dimiliki oleh Immich. Aplikasi atau pemuat naik web menyalin fail tersebut ke dalam
UPLOAD_LOCATION. Immich boleh menamakan semula, mengalih dan memadam fail tersebut. - Pustaka luaran ialah import baca-sahaja bagi fail yang sudah pun berada dalam folder pada pelayan anda, pepohon
Pictureslama, atau eksport NAS. Immich mengindeks fail tersebut di lokasi asalnya dan memaparkannya dalam garis masa, tetapi tidak akan mengubah atau memadam fail asal.
Untuk mengimport pepohon sedia ada, lekapkan (mount) ia sebagai baca-sahaja ke dalam kontena pelayan. Edit docker-compose.yml di bawah immich-server: dan tambah satu volum:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
- /srv/photos:/mnt/media/photos:ro:ro menjamin Immich tidak akan sesekali menyentuh fail asal. Cipta semula kontena dengan sudo docker compose up -d, kemudian dalam UI web pergi ke avatar anda → Pentadbiran → Pustaka Luaran → Cipta Pustaka, pilih pengguna pemilik, klik Tambah di bawah Folder, dan masukkan laluan kontena, /mnt/media/photos, bukan laluan hos /srv/photos. Klik Imbas. Menggunakan laluan hos dan bukannya laluan kontena adalah kesilapan paling lazim bagi pustaka luaran; imbasan tidak akan menemui apa-apa dan melaporkan sifar aset.
Langkah 8: Disiplin naik taraf yang dituntut oleh Immich
Ini adalah bahagian yang membezakan antara Immich yang berfungsi dengan baik dan yang rosak. Immich mengeluarkan kemas kini dengan pantas dan tidak melakukan backport untuk pembaikan atau menyokong penurunan versi (downgrade). Mengikuti tag v3 yang berubah-ubah secara membuta tuli akhirnya akan merosakkan pangkalan data anda. Tabiat menetapkan versi (pin) kemudian membaca nota keluaran patut digunakan pada setiap kontena yang berjalan lama di dalam pelayan, itulah sebabnya ejen KiroCrew yang dihoskan sendiri ditetapkan pada satu tag yang diketahui stabil dan bukannya dibiarkan berubah secara automatik pada but semula seterusnya. Disiplinnya:
- Tetapkan versi (Pin a version). Pastikan
IMMICH_VERSIONditetapkan pada tag konkrit sepertiv3.0.2, bukan tagv3yang sentiasa menarik versi v3.x terkini. - Baca nota keluaran setiap kali sebelum menaik taraf. Perubahan yang memecahkan keserasian (breaking changes), terutamanya perubahan pada pangkalan data atau sambungan vektor, dinyatakan di sana. Keluaran v3.0 adalah contoh yang jelas: ia membuang pgvecto.rs sepenuhnya, jadi sesiapa yang masih menggunakan sambungan lama perlu menyelesaikan migrasi VectorChord (diperkenalkan dalam v1.133) sebelum mereka boleh menaik taraf.
- Sandarkan pangkalan data terlebih dahulu (Langkah 9). Sentiasa lakukan ini, terutamanya apabila nota menyebut tentang pangkalan data.
- Ambil fail compose yang baharu juga.
IMMICH_VERSIONhanya menetapkan versi imej pelayan dan ML. Imej Postgres ditetapkan mengikut digest di dalamdocker-compose.yml, jadi versi yang memerlukan sambungan pangkalan data yang lebih baharu akan menyertakan fail compose yang baharu. Muat turun semula kedua-dua aset keluaran, gunakan semula nilai.envanda, kemudian lakukan naik taraf. - Kemas kini klien mudah alih anda pada masa yang sama. Pelayan hanya berkomunikasi dengan versi major yang sepadan, dan aplikasi menyokong versi major semasa serta sebelumnya. Pelayan yang telah mendahului versi aplikasi akan memaparkan
Your app major version is not compatible with the server!pada telefon sehingga anda mengemas kininya, jadi langkah paling selamat adalah dengan mengemas kini aplikasi terlebih dahulu.
Perintah sebenar, setelah anda meletakkan fail baharu di tempatnya:
cd /opt/immich
sudo docker compose pull
sudo docker compose up -d
sudo docker image pruneLangkah 9: Sandaran, dump pangkalan data DAN fail asal, serta ujian pemulihan
Sandaran Immich terdiri daripada dua bahagian, dan satu tanpa yang lain adalah tidak berguna. Pangkalan data menyimpan struktur album, wajah, indeks carian dan pemetaan daripada aset kepada fail. Direktori asal menyimpan foto sebenar. Jika anda memulihkan salah satu tanpa yang lain, anda akan mendapat foto tanpa organisasi atau kerangka kosong yang merujuk kepada fail yang tiada.
Lakukan dump pangkalan data dengan pg_dump dari dalam kontena Postgres, khusus untuk pangkalan data immich, bukan keseluruhan kluster:
sudo docker exec -t immich_postgres pg_dump --clean --if-exists \
--dbname=immich --username=postgres | gzip > /opt/immich/immich-db-$(date +%F).sql.gzKemudian sandarkan UPLOAD_LOCATION, keseluruhan pepohon /opt/immich/library, dan khususnya subfolder library/, upload/ dan profile/, menggunakan restic, rsync atau borg ke mesin lain atau storan objek. Lakukan sandaran pangkalan data dahulu dan fail kemudian, supaya dump tidak merujuk kepada foto yang belum disalin oleh sandaran fail. Pustaka luaran perlu disandarkan secara berasingan pada sumber asalnya; Immich tidak menguruskan pustaka tersebut.
Sekarang bahagian yang sering diabaikan oleh semua orang: uji pemulihan. Pemulihan mesti dijalankan pada stack baharu yang pelayannya belum pernah dimulakan, pada imej Postgres yang sambungan vektornya serasi dengan dump tersebut, itulah sebabnya anda tidak boleh mengubah tag imej DB secara semberono. Pada mesin ujian dengan fail compose dan .env yang sama, hapuskan sebarang keadaan lama, naikkan pangkalan data sahaja, kemudian muatkan dump tersebut:
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 -dPenulisan semula sed bagi search_path adalah wajib pada pangkalan data VectorChord; jika ditinggalkan, pemulihan akan terhenti di tengah jalan. Apabila stack kembali aktif dengan fail asal anda di tempatnya, buka UI web: jika foto dan album anda ada di sana, sandaran anda berfungsi. Jika anda tidak pernah melakukan ini, anda tidak mempunyai sandaran, anda hanya mempunyai harapan.
Mod kegagalan, berserta rentetan yang akan anda lihat
Kontena ML ditamatkan oleh OOM-killer. sudo docker compose logs immich-machine-learning tamat secara tiba-tiba, docker compose ps menunjukkan ia Restarting, dan kod keluar ialah 137. sudo dmesg | grep -i oom mengesahkannya: Out of memory: Killed process ... (python3). Kerja carian dan pengecaman wajah kemudian terhenti. Punca masalah ialah RAM yang terlalu sedikit untuk model tersebut. Pembaikan, mengikut urutan: tambah swap (Langkah 1); berikan VPS lebih banyak RAM; atau, jika anda benar-benar tidak dapat melakukannya, lumpuhkan ML dalam Administration → Settings → Machine Learning Settings dengan mematikan Smart Search dan Facial Recognition, anda akan mengekalkan sandaran dan album, tetapi kehilangan fungsi carian mengikut kandungan. Mengalih keluar servis immich-machine-learning daripada fail compose memberikan kesan yang sama.
Postgres enggan bermula selepas naik taraf. Log pelayan berulang dengan baris seperti 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., atau, pada stack yang lebih lama, The pgvecto.rs extension is not available in this Postgres instance.. Punca masalah ialah imej pangkalan data yang versi sambungannya lebih lama daripada versi data yang telah dinaik taraf, selalunya disebabkan oleh penyuntingan tag imej secara manual atau memulihkan dump yang lebih baharu ke dalam imej yang lebih lama. Pembaikannya ialah menggunakan imej Postgres yang sepadan, ambil fail compose daripada release yang sepadan dengan pangkalan data anda, jangan lakukan downgrade, dan pulihkan hanya pada imej yang serasi.
Aplikasi mudah alih tidak dapat mencapai pelayan. Skrin log masuk menunjukkan ralat sambungan / Server is not reachable selepas anda memasukkan URL. Tiga punca: anda menaip http:// sedangkan proksi hanya melayani https://; anda menyambung terus ke backend tetapi tertinggal port, jadi ia mencuba example.com (port 443) dan bukannya example.com:2283; atau reverse proxy tidak memajukan /api. Baiki dengan memasukkan URL https://photos.example.com yang lengkap dan pastikan ia dimuatkan dalam pelayar telefon terlebih dahulu. Jika pelayar berfungsi tetapi aplikasi tidak, proksi mungkin membuang path atau sijil adalah self-signed, aplikasi menolak sijil yang tidak dipercayai.
Kehabisan ruang cakera semasa import. Muat naik mula gagal, imej kecil (thumbnail) menjadi kosong, dan log menunjukkan ENOSPC: no space left on device atau, daripada Postgres, could not extend file ... No space left on device. df -h menunjukkan volum UPLOAD_LOCATION pada 100%. Inilah sebabnya anda perlu menetapkan saiz cakera sebelum mengimport pustaka yang besar. Pulihkan dengan melampirkan volum yang lebih besar, hentikan stack, alihkan UPLOAD_LOCATION ke sana, kemas kini .env, dan mulakan semula, atau kembangkan cakera sedia ada jika pembekal anda membenarkannya. Postgres boleh terhenti jika ia penuh, jadi kosongkan ruang dan mulakan semula kontena pangkalan data sebelum menganggap berlakunya kerosakan data.
FAQ
Berapakah keperluan RAM dan cakera untuk Immich?
Keperluan rasmi Immich ialah minimum 6 GB RAM dan 8 GB disyorkan. 4 GB dengan swap adalah had praktikal untuk pustaka kecil, namun konfigurasikan swap walau apa pun keadaannya, kerana kontena pembelajaran mesin (machine-learning) adalah bahagian yang menyebabkan lonjakan penggunaan sumber. Bagi cakera, sediakan ruang sebesar saiz penuh pustaka anda ditambah kira-kira 10–20% untuk lakaran kecil (thumbnails) dan pratonton yang dijana. Gunakan storan setempat; jangan sekali-kali meletakkan direktori data Postgres pada network share. Jika anda masih membuat keputusan tentang perisian lain untuk dijalankan, panduan tentang perkara untuk di-self-host pada 2026 meletakkan jejak sumber Immich bersebelahan dengan servis lain.
Bolehkah saya menjalankan Immich tanpa GPU?
Boleh. Kontena pembelajaran mesin berjalan dengan lancar pada CPU. GPU hanya mempercepatkan pengindeksan carian pintar (smart-search) dan, dengan varian imej yang betul, pengekodan video (video transcoding). Pada CPU, indeks awal bagi pustaka yang besar boleh mengambil masa berjam-jam di latar belakang, tetapi ia tidak menghalang proses sandaran atau pelayaran. Jika mesin anda terlalu kecil untuk ML, anda boleh menyahdayakan Smart Search dan Facial Recognition dalam tetapan pentadbir dan mengekalkan fungsi lain.
Bagaimanakah cara menaik taraf Immich dengan selamat?
Tetapkan IMMICH_VERSION kepada tag konkrit seperti v3.0.2, baca nota keluaran (release notes) sebelum setiap naik taraf, dan buat sandaran pangkalan data terlebih dahulu. Oleh kerana imej Postgres ditetapkan di dalam docker-compose.yml dan bukannya oleh IMMICH_VERSION, muat turun semula fail compose dan example.env daripada keluaran sasaran anda dan gunakan semula nilai anda, kemudian jalankan docker compose pull && docker compose up -d. Jangan biarkan versi berubah tanpa pengawasan; Immich mengeluarkan perubahan yang memecahkan keserasian (breaking changes) dan tidak menyokong penurunan versi (downgrades).
Apakah yang perlu saya sandarkan sebenarnya?
Dua perkara, secara bersama: pg_dump bagi pangkalan data immich dan keseluruhan direktori asal UPLOAD_LOCATION. Pangkalan data menyimpan album, wajah, dan pemetaan aset-ke-fail; direktori tersebut menyimpan foto sebenar, dan pemulihan memerlukan kedua-duanya serta imej pangkalan data dengan sambungan vektor yang serasi. Lakukan dump pangkalan data dahulu dan salinan fail kemudian, serta uji pemulihan pada mesin percubaan sekurang-kurangnya sekali. Sandaran yang tidak diuji bukanlah sandaran.
Bagaimanakah cara untuk mengimport folder foto saya yang sedia ada?
Mount folder tersebut sebagai read-only ke dalam kontena immich-server sebagai volum tambahan (contohnya - /srv/photos:/mnt/media/photos:ro), cipta semula kontena tersebut, kemudian dalam Administration → External Libraries, cipta pustaka dan tambah laluan kontena /mnt/media/photos. Immich mengindeks fail di tempatnya dan tidak akan mengubah atau memadam fail tersebut. Kesilapan paling biasa ialah memasukkan laluan hos (host path) dan bukannya laluan kontena, yang menyebabkan imbasan tidak menemui apa-apa.