ระบบจัดการรูปภาพของฉันที่แข็งแกร่งจนน่าทึ่ง (เวอร์ชัน Immich)
(jaisenmathai.com)สร้างระบบจัดการรูปภาพที่แข็งแกร่งมาก โดยทำให้ Immich บันทึกการเปลี่ยนแปลงอย่างอัลบั้ม คำอธิบาย ตำแหน่ง วันที่ และรายการโปรด ลงใน EXIF ของไฟล์รูปเอง ทำให้สำรองข้อมูลอัตโนมัติผ่าน Synology NAS + Dropbox ได้แม้ไม่มีฐานข้อมูล
ปรัชญาหลัก (3 ลำดับความสำคัญ)
- Preserve (การเก็บรักษา): ต้องคงอยู่ได้โดยไม่มีปัญหาแม้ในอนาคตอีกหลายสิบปี
- Unify (การรวมศูนย์): รวมรูปจากโทรศัพท์หลายเครื่องของคู่สามีภรรยาไว้ในไลบรารีเดียว
- Experience (ประสบการณ์): ต้องทำให้สามารถหวนกลับไปรู้สึกถึงความทรงจำผ่านรูปภาพและวิดีโอได้อย่างมีชีวิตชีวา
พื้นหลังและวิธีที่ใช้ในอดีต
- พัฒนาเวิร์กโฟลว์จัดการรูปภาพมานานกว่า 20 ปี
- เก็บเมตาดาต้าทั้งหมด (อัลบั้ม คำอธิบาย รายการโปรด ฯลฯ) ไว้ ใน EXIF เท่านั้น → ไม่พึ่ง DB ภายนอก → เหมาะที่สุดสำหรับการเก็บรักษาระยะยาว
- ที่เก็บหลัก: Synology NAS
- เครื่องมือจัดระเบียบ: CLI โอเพนซอร์ส Elodie ที่ผู้เขียนพัฒนามานานกว่า 10 ปี (https://github.com/jmathai/elodie)
- ในอดีต: ใช้ Google Photos เป็น ตัวดูแบบอ่านอย่างเดียว → ความสามารถด้านการค้นพบ การค้นหา และการรื้อฟื้นความทรงจำดีมาก แต่เลิกใช้เพราะการเปลี่ยนนโยบายในปี 2019 + ปัญหาความเป็นส่วนตัว
- Synology Photos มีความสามารถน้อยเกินไป จึงต้องหาตัวแทน
การนำ Immich มาใช้ (ปลายปี 2025 ~ 2026)
- ฟีเจอร์ external library ของ Immich (สามารถเมานต์โฟลเดอร์แบบอ่านอย่างเดียวได้) เป็นปัจจัยชี้ขาด
- ตอนแรกเริ่มจากการเป็นตัวดูแบบอ่านอย่างเดียว → ต่อมาจึงเปลี่ยนมาเป็น เครื่องมือจัดระเบียบ อย่างเต็มตัว
- ปัญหา: พฤติกรรมเริ่มต้นของ Immich จะเก็บเมตาดาต้าไว้ในฐานข้อมูล Postgres หรือ XMP sidecar → ผู้เขียนปฏิเสธทั้งสองแบบ
→ จึงพัฒนาวิธีแบบคัสตอมที่ ฝังทุกการเปลี่ยนแปลงลงใน EXIF ของไฟล์รูปโดยตรง
วิธีการทำงานหลัก
- ใช้ Immich API → เมื่อเพิ่มอัลบั้ม เขียนคำอธิบาย หรือกดรายการโปรดจาก UI → จะถูกบันทึกลง EXIF
- การเชื่อมกับ Elodie: Elodie จะย้ายไฟล์ไปยังโฟลเดอร์อัลบั้ม + อัปเดต EXIF → Immich จะมองว่านี่คือการลบไฟล์+สร้างใหม่ → ทำให้เกิดความไม่สอดคล้องชั่วคราว
→ วิธีแก้: ใช้แนวทาง eventually consistent (ความสอดคล้องในท้ายที่สุด) → ยอมให้การสะท้อนผลล่าช้าได้ - ไม่ใช้ XMP sidecar (มองว่าเปราะบาง)
- ผลลัพธ์: Immich มอบประสบการณ์ด้านการค้นพบ การค้นหา และการรื้อฟื้นความทรงจำในระดับ Google Photos + เก็บข้อมูลทุกอย่างไว้ได้ด้วย EXIF เพียงอย่างเดียว
เครื่องมือที่ใช้ & กลยุทธ์การสำรองข้อมูล
- Immich (ใช้ external library + API)
- Elodie (แกนหลักของการแมปไฟล์ซิสเต็มและการจัดระเบียบ)
- Synology NAS → ที่เก็บหลัก
- Dropbox → สำรองข้อมูลอัตโนมัติ (เมื่อ EXIF เปลี่ยน → ตัวไฟล์เปลี่ยน → ซิงก์อัตโนมัติ)
- ปลั๊กอินคัสตอม: https://github.com/jmathai/immich-exif (เวอร์ชันแบบง่าย)
- ติดตามความคืบหน้า: https://github.com/jmathai/elodie/issues/496
ข้อดี
- เก็บรักษาได้สมบูรณ์ด้วย EXIF โดยไม่ต้องมีฐานข้อมูล → ผ่านไป 10 ปี 20 ปีก็ไม่มีปัญหา
- ได้ UI และประสบการณ์การค้นพบที่สมบูรณ์แบบคล้าย Google Photos กลับคืนมา
- แก้ปัญหาความเป็นส่วนตัวและการผูกติดกับบริการ
- สำรองซ้ำสองด้วย NAS + Dropbox เพื่อความเสถียรสูงสุด
ข้อเสีย & ความเป็นจริง
- ตั้งค่ายากมาก (ผู้เขียนเองยังใช้เวลา 2 สัปดาห์ และถึงมี AI ช่วยก็ไม่ได้ง่าย)
- มีหลายส่วนที่ขัดกับการออกแบบพื้นฐานของ Immich จึงต้องคัสตอม
- ไม่ใช่การอัปเดตแบบเรียลไทม์ แต่เป็นแบบ eventually consistent จึงไม่ได้เรียลไทม์สมบูรณ์
บทสรุปโดยรวม
ผู้เขียนประเมินว่าตนสามารถยกระดับจาก ตัวดูแบบอ่านอย่างเดียว ไปสู่ แพลตฟอร์มจัดระเบียบ+ค้นพบอย่างเต็มรูปแบบ ผ่าน Immich ได้สำเร็จ โดยไม่ยอมละทิ้งปรัชญา “เชื่อใน EXIF เท่านั้น” ที่ยึดถือมานานแม้แต่น้อย
มีการบอกว่าจะเขียนโพสต์แยกอธิบายการทำงานเชิงเทคนิคอย่างละเอียดในภายหลัง ดังนั้นถ้าสนใจก็ควรติดตาม GitHub issue หรือบล็อกของเขาต่อไป
ยังไม่มีความคิดเห็น