تصور کنید گالری عکسهای شما بهجای یک انبار ساده، مانند یک دستیار هوشمند عمل کند که بهطور خودکار عکسها را دستهبندی و پردازش میکند. با انتشار نسخه ۳.۰.۰ در ۲ ژوئیه ۲۰۲۶، Immich از یک فضای ذخیرهسازی غیرفعال به یک سامانه مدیریت رسانه فعال تبدیل شده است. این تحول بنیادی از طریق معرفی یک لایه اتوماسیون برنامهریزیشده و قابلیت پردازش لحظهای ویدیوها رخ داده است.
برای اکثر کاربران، تجربه همچنان یک بکآپ ساده و یکپارچه از عکسها و ویدیوها است، اما مقیاس ابزارهای در دسترس بهشدت گسترش یافته است. Immich برای کسانی طراحی شده که راحتی و سهولت گوگلفوتوز را میخواهند، اما نمیخواهند دادههای حساس خود را به غولهای ابری بسپارند. طبق گزارش تیم توسعه، این بهروزرسانی در پاسخ به نیاز جامعه کاربران برای کنترل بیشتر بر نحوه سازماندهی و پردازش کتابخانههای بسیار حجیم صورت گرفته است.
همانطور که در تحلیلهای قبلی ما دربارهی میزبانی شخصی (Self-hosting) اشاره کردیم، کنترل کامل بر دادهها بدون از دست دادن تجربه کاربری، سختترین چالش این حوزه است.
ظهور اتوماسیون کتابخانه
مرکز ثقل نسخه ۳.۰.۰ معرفی گردشهای کاری (Workflows) است که در حال حاضر در وضعیت پیشنمایش قرار دارد. این ویژگی به کاربران اجازه میدهد تا اقدامات کتابخانهای را با زنجیره کردن محرکها، فیلترها و عملیاتها از طریق یک سازنده بصری «بکش و رها کن» (drag-and-drop) خودکار کنند.

کاربران میتوانند از طریق مسیر Utilities > Workflows در رابط وب به این ابزارها دسترسی یابند. این سیستم با انعطافپذیری بالا طراحی شده است تا هر دو نوع کاربر را پوشش دهد: یک ویرایشگر بصری برای ساخت شهودی و سریع، و یک ویرایشگر JSON برای پیکربندیهای دقیق فنی و اشتراکگذاری با دیگران.

هر گردش کار از یک محرک (Trigger) شروع میشود که نقطه ورود سیستم است، و سپس با توالی گامهایی ادامه مییابد. این گامها شامل فیلترهایی برای تعیین شرایط خاص (مانند تاریخ یا مکان) و اقداماتی (Actions) برای اجرای اثر مطلوب (مانند تغییر برچسب یا جابهجایی) هستند.

به نقل از مستندات پروژه، برای رشد سریعتر جامعه کاربران، دو روش اشتراکگذاری پیاده شده است. توصیفات متنی برای بحث و تبادل نظر در انجمنها در دسترس است، در حالی که خروجیهای JSON به دیگر کاربران اجازه میدهد تا یک کپی دقیق از پیکربندی خاص یک گردش کار را در سیستم خود ایجاد کنند.

جزئیات فنی گردشهای کاری
در این بخش، مکانیسمهای دقیقتر اتوماسیون را بررسی میکنیم:
- حالتهای ویرایشگر: ویرایشگر بصری به طور خاص برای مرحله ساخت بهینه شده است، در حالی که ویرایشگر JSON برای ارسال و دریافت محتوا از سوی سایر کاربران به کار میرود.
- منطق اجزا: جریان کاری دقیقاً به صورت زیر است: محرک $
ightarrow$ فیلترها (شرایط) $
ightarrow$ اقدامات (اثرات). - مکانیزمهای اشتراکگذاری: کاربران میتوانند متن توضیحات را از طریق پنل خلاصه گردشهای کاری (در پایین سمت راست صفحه) کپی کنند، یا فایل JSON را از طریق دکمه copy workflows در نوار برنامه یا دکمه "Show schema" در منوی زمینه به اشتراک بگذارند.
- ورودی جامعه: تیم توسعه فعالانه از طریق رشتههای بحث اختصاصی، بازخوردهای کاربران را برای پیشنهاد محرکها و اقدامات جدید جمعآوری میکند.
- گزینههای شروع سریع: کاربران برای شروع میتوانند یا از یک صفحه کاملاً خالی استفاده کنند یا از میان قالبهای پیشساخته (templates) گشتوگذار کنند تا متوجه شوند اتوماسیون چگونه میتواند در کتابخانه آنها به کار گرفته شود.
- یکپارچهسازی خارجی: قابلیتهای جدید شامل یک اقدام webhook است که امکان اتصال گردشهای کاری Immich به سرویسهای خارجی را فراهم میکند.
- جزئیات فیلترها: فیلترهای جدیدی اضافه شدهاند، از جمله فیلتر مکانسنجی (Geolocation) که امکان اتوماسیون بر اساس موقعیت جغرافیایی عکسها را فراهم میکند.
تکامل پردازش ویدیو
این بهروزرسانی قابلیتهای آزمایشی HLS و رمزگشایی (Transcoding) — شبیه به تبدیل یک فایل ویدیو سنگین به فرمتی که هر دستگاهی بتواند سریع پخش کند — بهصورت زنده و در لحظه را معرفی میکند. پیش از این، Immich به تولید رمزگشاییهای آفلاین (پیشپردازش شده) متکی بود؛ اما اکنون میتواند ویدیوها را در لحظه و بر اساس کدکهایی که کلاینت (مرورگر یا اپلیکیشن) پشتیبانی میکند، پردازش کند.
بر اساس اعلام توسعهدهندگان، این تغییر استراتژیک مزایای فوری متعددی دارد:
- تغییر کیفیت پخش بهصورت پویا (هم به صورت دستی و هم خودکار) بسته به سرعت اینترنت.
- کاهش چشمگیر فضای ذخیرهسازی به دلیل امکان غیرفعال کردن رمزگشاییهای آفلاین.
- تحویل بهینه محتوا از طریق remuxing در زمانهایی که پهنای باند اجازه میدهد.
- ایجاد پتانسیل برای پشتیبانی از HDR برای کلاینتهای سازگار (که در حال حاضر پیاده نشده اما زیرساخت آن آماده است).
در حال حاضر این قابلیت تنها محدود به اپلیکیشن وب است و پشتیبانی از نسخههای موبایل در دست ساخت است. کاربران برای بهرهمندی از این ویژگی باید آن را در تنظیمات رمزگشایی ویدیو فعال کنند. نکته مهم این است که برای داراییهایی (Assets) که پیش از نسخه ۳ وارد شدهاند، کاربران باید عملیات "Metadata Extraction" را در پنل Job مجدداً اجرا کنند تا این فایلها دوباره پردازش شوند. تیم توسعه اشاره کرده است که برای دستیابی به بهترین تجربه کاربری، استفاده از شتابدهنده سختافزاری (Hardware Acceleration) توصیه میشود، هرچند که الزامی نیست.
ارتقای رابط رسانهای وب
علاوه بر رمزگشایی، یک پخشکننده ویدیو سفارشی به نسخه وب اضافه شده است. این اقدام تضمین میکند که تمام دستگاهها از کنترلها، دکمهها و چیدمان یکسانی استفاده کنند که با زبان طراحی کلی Immich هماهنگ است. این پخشکننده جدید شامل توابع پایه مانند تغییر نرخ پخش (Playback Rate) است و یک مشکل حیاتی در iOS را حل کرده است؛ در نسخه قبلی، کنترلهای سیستمعامل iOS زیر نوار ناوبری Immich مخفی میشدند. همچنین پشتیبانی از جابهجایی در ویدیو با استفاده از کلیدهای کیبورد (Keyboard Seeking) برای دسترسی بهتر کاربران دسکتاپ اضافه شده است.
بازنگری تجربه موبایل
کاربران موبایل ارتقای قابلتوجهی در نحوه ویرایش عکسها دریافت میکنند. Immich اکنون از ویرایش غیرتخریبی (Non-destructive editing) در موبایل پشتیبانی میکند که مشابه نسخه وب است (که در v2.5.0 عرضه شده بود). این یعنی شما میتوانید عکسها را برش دهید، بچرخاند یا تنظیمات رنگی را تغییر دهید بدون اینکه فایل اصلی آسیب ببیند یا تغییر کند. این ویرایشها با سرور همگام میشوند و بعداً میتوان آنها را در نسخه وب تغییر داد یا بازگرداند.

برای سادهسازی و بهینهسازی سیستم جدید، برخی ویژگیهای قدیمی ویرایش موبایل حذف شدهاند؛ از جمله تغییر رنگ (recoloring) عکسها، ویرایش عکسهای زنده (Live Photos) و ویرایش داراییهای محلی. این ویژگیها در نسخههای آینده بازخواهند گشت.
کاربران اندروید شاهد بهبود شدید در قابلیت اطمینان بکآپهای پسزمینه هستند. اپلیکیشن اکنون از یک زمانبند وظایف دورهای (periodic task scheduler) جدید استفاده میکند. این سیستم اجازه میدهد کل کتابخانه در پسزمینه آپلود شود، در حالی که محدودیتهای سختگیرانه اندروید در مورد اجرای برنامهها در پسزمینه را بهطور بهینه مدیریت میکند. همچنین اپلیکیشن اکنون وظایف را بهدرستی پاکسازی میکند و در صورتی که تنظیمات اعلانها یا بهینهسازی باتری باعث اختلال در بکآپ شود، به کاربر هشدار میدهد.
در iOS، وظیفه بهروزرسانی پسزمینه تغییر کرده است؛ اکنون عملیات همگامسازی (Sync) و آپلود بهطور موازی اجرا میشوند. این کار باعث میشود از پنجره زمانی محدودی که اپل برای آپلود در پسزمینه در اختیار برنامهها قرار میدهد، به بیشترین شکل ممکن استفاده شود.
بهبودهای ابزارهای هسته
امنیت و سلامت دادهها از طریق «بررسیهای یکپارچگی» (Integrity Checks) تامین شده است. سیستم اکنون میتواند فایلسیستم را اسکن کرده و آن را با پایگاهداده مقایسه کند تا موارد زیر را شناسایی و لیست کند:
- فایلهای ردیابینشده (Untracked files): فایلهایی که روی دیسک وجود دارند اما Immich هیچ اطلاعی از آنها در دیتابیس ندارد.
- فایلهای گمشده (Missing files): ارجاعاتی در پایگاهداده وجود دارد اما فایل مربوطه دیگر روی دیسک نیست.
- عدم تطابق Checksum: تفاوت بین اثر انگشت دیجیتالی (Checksum) فایل روی دیسک و مقدار ذخیره شده در دیتابیس. این مورد معمولاً نشانه خرابی فایل (Corruption) یا یک عملیات تغییر نام ناموفق است.
کاربران میتوانند زمانبندی و مدت زمان اجرای این وظایف را برای اجرا به صورت شبانه در تنظیمات ادمین در صفحه Maintenance تنظیم کنند. همچنین سیستم برای جلوگیری از نتایج مثبت کاذب (False Positives)، کتابخانههای خارجی (External Libraries) را در بررسیهای Checksum نادیده میگیرد.
بررسی عمیق ویژگیهای موبایل
در ادامه به جزئیات تکمیلی ویژگیهای اپلیکیشن موبایل میپردازیم:
- OCR در موبایل: یک سوئیچ در نمایشگر داراییها اضافه شده که متنهای شناسایی شده در عکس را هایلایت میکند. این قابلیت به کاربران اجازه میدهد متن را مستقیماً از روی تصویر انتخاب و کپی کنند.
- صفحه تازهافزودهها (Recently Added): یک نمای جدید اضافه شده که بهجای تاریخ ثبت عکس، بر اساس تاریخ آپلود مرتب شده است. این صفحه در تب Explore (در وب) یا تب Search (در موبایل) یافت میشود و پیمایش در دستههای جدید وارد شده را تسهیل میکند.
- یکپارچگی با گالری اندروید: Immich اکنون میتواند بهعنوان اپلیکیشن گالری پیشفرض سیستم عمل کند. با ضربه زدن روی یک عکس در هر برنامه دیگر و انتخاب Immich، عکس مستقیماً در نمایشگر Immich باز شده و گزینههای آپلود یا اشتراکگذاری نمایش داده میشود. بهبودهای بیشتری برای شناسایی فایلهای موجود در آینده اعمال خواهد شد.
- آپلود مستقیم در آلبوم: عکسهای محلی را میتوان مستقیماً از طریق منوی پایین (bottom sheet) اپلیکیشن موبایل در یک آلبوم خاص آپلود کرد و دیگر نیازی نیست ابتدا عکس را آپلود و سپس سازماندهی کنید.
- کنترلهای اشتراکگذاری: کاربران اکنون میتوانند پیش از ارسال عکس از موبایل، اندازه تصویر را انتخاب کنند. این رفتار پیشفرض در App Settings > Preferences قابل تغییر است، یا میتوان با نگه داشتن دکمه Share، اندازه خاصی را انتخاب کرد.
- اسلایدشو: تجربه اسلایدشو اکنون در موبایل نیز در دسترس است و دقیقاً مشابه نسخه وب، امکان پخش متوالی عکسها و ویدیوها را در تمام صفحه فراهم میکند.
بهینهسازی عملکرد و رابط کاربری
عملکرد تایملاین برای کاربرانی که حجم بسیار زیادی از داراییها را در ماههای خاص مرور میکنند، بهطور چشمگیری بهبود یافته است. این تغییر مانع از قفل شدن (Freeze) تبهای مرورگر در هنگام ناوبری در نقاط پرتراکم کتابخانه میشود. علاوه بر این، جستوجوی مسیر کامل (Full-path search) و یک نقشه حرارتی (Heatmap) از آپلودهای کاربران به رابط وب اضافه شده است.
سایر بهبودها شامل امکان فیلتر کردن کاربران هنگام اشتراکگذاری و سادهسازی تابع «سطل زباله/بازیابی همه» در موبایل است. در رابط وب، وضعیت نمایش اطلاعات مسیر فایل در پنل جزئیات اکنون ذخیره (Persist) میشود و آمار سرور برای افزایش سرعت لود اولیه صفحه، بهصورت lazy-load بارگذاری میگردد.
مهاجرت فنی و تغییرات ساختاری
بهروزرسانی به نسخه ۳.۰.۰ مستلزم تغییر یک متغیر کلیدی است. شما باید مقدار IMMICH_VERSION را در فایل .env از v2 به v3 تغییر دهید و سپس دستورات زیر را اجرا کنید:docker compose pull && docker compose up -d
طبق یادداشتهای انتشار، این نسخه شامل چندین تغییر ساختاری (Breaking Changes) است که عمدتاً نقاط اتصال API مورد استفاده توسط ابزارهای شخص ثالث را تحت تأثیر قرار میدهد. با این حال، برای اکثریت قاطع کاربران، فرآیند بهروزرسانی طبق روال استاندارد و ساده است.
خلاصه جزئیات فنی
برای متخصصان و توسعهدهندگان، تغییرات زیر در هسته سیستم اعمال شده است:
- بازسازیهای هسته: سیستم داخلی از کتابخانه
class-validatorبهzodمهاجرت کرده و پشتیبانی ازpgvecto.rsمتوقف شده است. همچنین ویژگیهایreplace assetوmy shared link dtoحذف شدند. - تغییرات API: چندین نقطه اتصال حذف یا اصلاح شدند، از جمله
getRandomو/api/server/theme. همچنینdeviceIdوdeviceAssetIdحذف شده وalbum ownerبهalbum_userتغییر یافت. - تغییر نوع دادهها: اعداد به نوع integer تغییر یافتند. سیستم اکنون رتبهبندیهای ستارهای کمتر از ۱ را نمیپذیرد (هرچند در اصلاحیهی بعدی رتبه -۱ بازگردان شد). مدتزمانها اکنون با میلیثانیه محاسبه میشوند.
- بهروزرسانیهای امنیتی: عکسهای پروفایل اکنون از خط لوله thumbnail عبور میکنند تا بهینه شوند. درخواستهای OAuth ناامن بهطور پیشفرض مسدود شدهاند. یک نقطه اتصال API برای خروج از کانال پشتیبانی (backchannel logout) و گزینهای برای بازنویسی URL خروج OIDC اضافه شده است.
- پایگاهداده و ذخیرهسازی: سرور اکنون توکنهای تاریخ و زمان در قالبهای ذخیرهسازی را در UTC رندر میکند تا از مشکلات تنظیمات منطقه زمانی جلوگیری شود. پشتیبانی از فرمت فایل MPO نیز اضافه شده است. همچنین هنگام بهروزرسانی یک «خاطره» (Memory)، سرور اکنون نیاز دارد حداقل یک فیلد مقداردهی شده باشد.

کاربرانی که مایل به دسترسی زودهنگام به ویژگیهای جدید هستند، میتوانند کانال انتشار خود را در تنظیمات ادمین (Admin settings > Version check options) از "Stable" به "Release Candidate" تغییر دهند تا نسخههای پیشانتشار را پیش از عرضه رسمی آزمایش کنند.

این بهروزرسانی جامع، Immich را از یک آینه ساده گالری گوشی به یک سرور رسانهای پیشرفته و هوشمند تبدیل میکند. حرکت به سمت اتوماسیون (Workflows) نشاندهنده آیندهای است که در آن سرور میتواند بهطور کاملاً خودکار، بر اساس قوانین پیچیده متادیتا، عکسها را برچسبگذاری کند، آنها را جابهجا نماید یا به کاربران اعلان بفرستد.
برای کاربر عادی، این به معنای صرف زمان کمتر برای مرتبسازی دستی هزاران عکس و تجربه روانتری است که مانند یک محصول تجاری گرانقیمت عمل میکند، اما در عین حال کاملاً خصوصی و تحت کنترل کاربر باقی میماند. برای کسانی که قصد حمایت از توسعه این پروژه را دارند، کلیدهای محصول در buy.immich.app و کالاهای رسمی در immich.store در دسترس است. محصولات جدید شامل لباس کودک (برای کسانی که فرزندانشان دلیل اصلی حجم زیاد کتابخانه آنها هستند) و لباسهایی با لوگوهای گلدوزی شده رنگی است.
برای شروع کار با موتور اتوماسیون جدید، به بخش Utilities در نسخه وب خود مراجعه کنید و قالبهای پیشساخته گردش کار را برای خودکارسازی کتابخانه خود بررسی نمایید.
گام بعدی شما
- به بخش Utilities در نسخه وب مراجعه کنید و قالبهای پیشساخته گردش کار را برای خودکارسازی کتابخانه خود بررسی کنید.
- اگر از اندروید استفاده میکنید، تنظیمات بهینهسازی باتری را بررسی کنید تا بکآپهای پسزمینه جدید دچار اختلال نشوند.
- در صورت استفاده از ابزارهای شخص ثالث، مستندات API نسخه ۳ را برای اطمینان از عدم شکست در اتصالها مطالعه کنید.
اما داستان سختافزاری این تحول در بخش رمزگشایی زنده حتی شگفتانگیزتر است — به تحلیل ما دربارهی بهینهسازیهای GPU در سرورهای خانگی مراجعه کنید.




گفتگو