Immich 3.0
(github.com/immich-app)- Immich v3.0.0 là bản phát hành lớn tiếp theo sau nhiều tháng làm việc, bao gồm chỉnh sửa không phá hủy trên di động, xem trước workflow, cải thiện sao lưu nền, kiểm tra tính toàn vẹn, xem trước chuyển mã video thời gian thực và nhiều nội dung khác
- Bản phát hành này có Breaking changes, nhưng phần lớn là thay đổi endpoint API của Immich nên chủ yếu ảnh hưởng đến các công cụ bên thứ ba tích hợp với Immich API; đa số người dùng vẫn có thể cập nhật theo cách hiện tại
- Để nâng cấp, đổi IMMICH_VERSION trong
.envtừv2sangv3, rồi chạydocker compose pull && docker compose up -d; ngoài ra, v3.0.0 ngừng hỗ trợ pgvecto.rs, nên các môi trường trước v1.133.0 cần migrate sang VectorChord - Ứng dụng di động áp dụng mô hình chỉnh sửa không phá hủy giống web và cải thiện sao lưu nền trên Android bằng bộ lập lịch tác vụ định kỳ; trên iOS, quá trình đồng bộ và tải lên được chạy song song trong khoảng thời gian nền ngắn
- Chuyển mã video thời gian thực hiện vẫn là tính năng thử nghiệm và hiện chỉ mới có trên ứng dụng web; ứng dụng di động vẫn đang được triển khai nên không khuyến nghị xóa thủ công các tệp chuyển mã ngoại tuyến hiện có
Cập nhật và thay đổi tương thích
- Immich v3.0.0 được công bố là phiên bản major tiếp theo và bao gồm nhiều Breaking changes
- Nhiều Breaking changes là cập nhật endpoint API, nên chủ yếu ảnh hưởng đến các công cụ bên thứ ba tích hợp với Immich API
- Đa số người dùng có thể cập nhật theo cách giống như trước đây
- Hướng dẫn migrate đầy đủ được cung cấp qua liên kết riêng trong thông báo phát hành
- v3.0.0 ngừng hỗ trợ pgvecto.rs
- Nếu bạn đang chạy Immich trước v1.133.0 và chưa migrate, cần kiểm tra migrate sang VectorChord trước
- Liên kết hướng dẫn: https://docs.immich.app/install/upgrading/#migrating-to-vectorchord
- Quy trình cập nhật:
- Trong file
.env, đổiIMMICH_VERSION=v2thànhIMMICH_VERSION=v3 - Chạy
docker compose pull && docker compose up -d
- Trong file
Release candidate và kênh thông báo
- v3.0.0 là bản phát hành đầu tiên mà Immich sử dụng release candidate
- Release candidate là bản pre-release đã được kiểm thử nhưng chưa phải bản phát hành chính thức, dùng để tìm và sửa các lỗi còn lại trước bản phát hành cuối cùng
- Nếu muốn nhận thông báo release candidate trong Immich, bạn có thể đổi kênh phát hành từ
StablesangRelease candidatetrongAdmin settings > Version check
Chỉnh sửa di động và cải thiện sao lưu
- Chỉnh sửa không phá hủy trên di động là phần tiếp nối của tính năng chỉnh sửa ảnh đã được thêm trước tiên trên web ở v2.5.0
- Trình chỉnh sửa di động trước đây dùng một hệ thống riêng, tạo asset mới thay vì sửa ảnh tại chỗ
- Trình chỉnh sửa di động trong v3.0.0 cung cấp các tính năng giống bản web, cho phép cắt, xoay và điều chỉnh ảnh mà không chạm vào tệp gốc
- Việc chỉnh sửa theo kiểu không phá hủy nên có thể chỉnh lại hoặc hoàn tác sau này, và bạn có thể chỉnh trên di động rồi tiếp tục tinh chỉnh trên web
- Một số tính năng có trong cách triển khai chỉnh sửa di động trước đây đã bị loại bỏ
- Thay đổi màu ảnh
- Chỉnh sửa Live Photo
- Chỉnh sửa asset cục bộ
- Một số tính năng dự kiến sẽ được đưa trở lại trong các bản phát hành sau
- Sao lưu nền trên Android hoạt động ổn định hơn nhờ bộ lập lịch tác vụ định kỳ
- Trước đây chỉ giới hạn ở ảnh mới chụp
- Giờ đây có thể tải lên toàn bộ thư viện trong nền
- Phù hợp hơn với các giới hạn chạy nền của Android, đồng thời xử lý dọn dẹp tác vụ và cảnh báo về tối ưu pin/cài đặt thông báo
- Tác vụ background refresh trên iOS được thay đổi để chạy đồng bộ và tải lên song song, giúp quá trình upload bắt đầu trong khoảng thời gian ngắn mà iOS cho phép
Xem trước workflow
- Workflows là tính năng xem trước đầu tiên để tự động hóa hành vi của thư viện
- Bạn có thể nối trigger, filter và action bằng trình dựng kéo-thả để tạo automation
- Có thể truy cập tại
Utilities > Workflowstrên web - Bạn có thể tạo workflow trống mới hoặc xem các template dựng sẵn
- Trình chỉnh sửa cung cấp Visual editor và JSON editor
- Visual editor phù hợp để cấu hình workflow
- JSON editor phù hợp để chia sẻ hoặc nhận nội dung workflow với người khác
- Mỗi workflow gồm một
triggervà một chuỗisteps- Trigger là điểm vào của workflow; khi trigger xảy ra, các bước sẽ được đánh giá
- Steps bao gồm Filters cho điều kiện và Actions cho hiệu ứng
- Có hai cách chia sẻ: văn bản và JSON
- Văn bản phù hợp để chia sẻ trên diễn đàn hoặc trình diễn
- JSON phù hợp để sao chép chính xác cấu hình workflow
- Ý tưởng về trigger và action mới đang được lấy phản hồi trong một discussion thread riêng
Duyệt thư viện và kiểm tra tính toàn vẹn
- Trang Recently Added được thêm vào web và di động
- Bạn có thể xem thư viện theo thời điểm asset được thêm vào Immich thay vì thời điểm chụp
- Điều này giúp dễ tìm nội dung mới được nhập vào khi duyệt các đợt import mới
- Trên web có trong tab
Explore, trên di động có trong tabSearch
- Trang bảo trì được bổ sung integrity reports
- Immich quét các thư mục trong file system và so sánh với thông tin lưu trong cơ sở dữ liệu
- Nếu trong thư mục có tệp mà Immich không biết, nó sẽ được đánh dấu là
untracked - Nếu cơ sở dữ liệu có tham chiếu nhưng không có tệp ở vị trí đó, nó sẽ được đánh dấu là
missing - Nếu checksum của tệp trên đĩa khác với checksum Immich đã lưu, nó sẽ được đánh dấu là
checksum mismatch
- Checksum mismatch thường có thể do hỏng tệp, nhưng cũng có thể là kết quả của việc đổi tên sai cách
- Bạn có thể cấu hình thời điểm và thời lượng chạy tác vụ kiểm tra tính toàn vẹn hằng đêm
Video và phát media
- Ứng dụng di động được thêm tính năng Slideshow, cho phép tự động phát ảnh và video trên màn hình như trên web
- HLS và chuyển mã video thời gian thực được thêm như tính năng xem trước
- Có thể chuyển đổi trong lúc video phát mà không cần tạo trước bản chuyển mã ngoại tuyến
- Hỗ trợ chuyển đổi chất lượng thủ công và tự động
- Có thể chuyển mã sang codec tối ưu mà client hỗ trợ
- Nếu tắt chuyển mã ngoại tuyến, có thể giảm gánh nặng lưu trữ
- Một số mục vẫn chưa được triển khai cũng được nêu rõ
- HDR cho các client tương thích
- Remuxing không chuyển mã bản gốc khi băng thông cho phép
- Chuyển mã thời gian thực là thử nghiệm và cách hoạt động có thể thay đổi theo từng phiên bản
- Hiện chỉ mới có trên ứng dụng web, còn ứng dụng di động vẫn đang được triển khai
- Có thể bật trong phần video transcoding settings
- Ngay cả khi bật chuyển mã thời gian thực, chuyển mã ngoại tuyến không bị ảnh hưởng trực tiếp, nên nếu muốn tắt chuyển mã ngoại tuyến thì cũng cần điều chỉnh transcode policy
- Với các asset được import trước v3, cần chạy lại Metadata Extraction trong bảng tác vụ để được xử lý lại
- Máy chủ cần đủ mạnh để xử lý chuyển mã thời gian thực; tăng tốc phần cứng được khuyến nghị nhưng không bắt buộc
- Ứng dụng web có thêm trình phát video tùy chỉnh mới phù hợp với thiết kế của Immich
- Cung cấp cùng một bộ điều khiển và bố cục trên mọi thiết bị
- Có các tính năng cơ bản như thay đổi tốc độ phát
- Cũng có thể giải quyết vấn đề các điều khiển của hệ điều hành bị thanh điều hướng Immich che khuất trên iOS
Android, OCR, chia sẻ và luồng album
- Trên Android, Immich có thể được dùng như ứng dụng gallery/trình xem ảnh
- Bạn có thể chạm vào ảnh hoặc video trong ứng dụng khác rồi chọn Immich để mở trực tiếp trong asset viewer
- Ứng dụng cung cấp tùy chọn chia sẻ tệp hoặc tải lên thư viện
- Cách nhận diện các tệp đã có trong thư viện sẽ còn được cải thiện sau
- Asset viewer trên di động có thêm nút bật/tắt OCR để làm nổi bật văn bản được nhận diện trong ảnh
- Bạn có thể chọn và sao chép văn bản từ hình ảnh
- Trên ứng dụng di động, giờ đây có thể tải ảnh cục bộ trực tiếp vào album
- Cũng có thể thêm thẳng vào album từ asset bottom sheet
- Giảm ma sát trong luồng tải lên trước rồi sắp xếp sau
- Khi chia sẻ trên di động, bạn có thể chọn kích thước ảnh trước khi gửi
- Có thể giữ tệp nhỏ để dùng với ứng dụng nhắn tin
- Hoặc chia sẻ ở chất lượng đầy đủ nếu cần
- Hành vi mặc định có thể thay đổi trong
App Settings > Preferences - Có thể nhấn giữ nút chia sẻ để chọn nhanh tùy chọn tại chỗ
- Hiệu năng duyệt timeline khi có nhiều asset trong cùng một tháng đã được cải thiện, giúp giảm tình trạng tab trình duyệt bị treo
Các nhóm thay đổi chính
- Breaking changes bao gồm migrate từ
class-validatorsang zod, loại bỏ replace asset, loại bỏ endpoint timeline sync cũ, ngừng hỗ trợpgvecto.rs, thay đổi cấu trúc phản hồi lỗi và nhiều nội dung khác - Deprecated changes bao gồm việc deprecate các route PUT theo hướng thay bằng PATCH
- Mục bảo mật bao gồm sửa đổi để ảnh hồ sơ đi qua thumbnail pipeline
- Các tính năng mới bao gồm chỉnh sửa di động, Android periodic work manager task, trình phát video web tùy chỉnh, trang recently added assets, workflows & plugins, chuyển mã thời gian thực HLS, OCR trên di động, tác vụ kiểm tra tính toàn vẹn và nhiều nội dung khác
- Sửa lỗi bao gồm chuẩn hóa email OAuth, dọn tên tệp trước khi thêm vào zip, ngăn asset bị khóa lộ cho partner, sửa việc tạo face trái phép, ngăn hết bộ nhớ khi upload bằng CLI và nhiều nội dung khác
Các giới hạn và câu trả lời được xác nhận trong thảo luận
- Với trường hợp nâng cấp từ v2.0.1 lên v3.0.0, không có hướng dẫn đặc biệt nào riêng; chỉ cần làm theo quy trình cập nhật trong release note
- Trường hợp album không hiển thị sau khi cập nhật di động có vẻ là lỗi migrate phía di động, và có thể được khắc phục bằng cách đăng xuất rồi đăng nhập lại hoặc cập nhật máy chủ lên v3
- Về luồng tải lại ảnh từ máy chủ xuống cục bộ trong ứng dụng di động sau khi khôi phục backup iPhone, ứng dụng hiện vẫn chưa có tùy chọn bulk download và chỉ hỗ trợ tải từng ảnh riêng lẻ
- Với câu hỏi về việc xóa các video đã chuyển mã trước đó sau khi bật chuyển mã thời gian thực, câu trả lời là ứng dụng di động vẫn chưa hỗ trợ chuyển mã thời gian thực nên vẫn cần các video chuyển mã hiện có, và không khuyến nghị xóa thủ công
- Về tính năng chuyển ảnh HEIC sang JPG ngay tức thời, câu trả lời là chưa có kế hoạch; thumbnail hiện được tạo ở định dạng JPEG/WEBP nên tương thích với mọi trình duyệt và client
- Cải thiện sao lưu nền trên Android không phải thay đổi để giải quyết ảnh lớn trên 100MB hay giới hạn Cloudflare, mà là cải thiện để tác vụ nền chạy định kỳ thường xuyên hơn
- Trong chuyển mã thời gian thực, codec được client chọn chứ không phải máy chủ; nếu máy chủ quảng bá biến thể AV1, các client có thể giải mã AV1 sẽ chuyển sang dùng nó
- Có kế hoạch thêm cài đặt để chọn codec và độ phân giải mà máy chủ sẽ quảng bá
- Cải thiện casting đang nằm trong danh sách việc cần làm; theo phản hồi, cần viết lại toàn bộ cast và bổ sung cả chuyển mã thời gian thực
- Người dùng gặp lỗi
No vector extension found. Available extensions: vchord, vectorsau khi nâng cấp sau đó đã xác nhận là đã giải quyết xong - Với kiểm tra checksum mismatch mới, có ý kiến rằng người từng chỉnh sửa ảnh được tải lên ngoài Immich trong quá khứ có thể gặp hàng trăm lỗi checksum mismatch, nên một tính năng tính lại checksum để khắc phục sẽ rất hữu ích
- Liên quan đến migrate VectorChord, có ý kiến rằng người dùng trước v1.102 có thể đã bỏ lỡ thay đổi opt-in
DB_DATA_LOCATION, nên sẽ tốt hơn nếu có cảnh báo
Tài trợ và hàng hóa
- Cùng với bản phát hành v3.0.0, Immich cũng giới thiệu merchandise mới
- Quần áo trẻ em
- Quần áo thêu logo Immich nhiều màu
- Trang merchandise: https://immich.store
- Có thể hỗ trợ dự án bằng cách mua product key hoặc merchandise
- product key: https://buy.immich.app
- merchandise: https://immich.store
1 bình luận
Ý kiến trên Hacker News
Tôi dạy lớp phát triển phần mềm miễn phí cho sinh viên đại học, và thật sự rất phấn khích khi thấy bài làm trong môn học được tìm thấy trong một dự án thực tế
Tôi cũng rất tự hào vì bản sửa lỗi được liệt kê đầu tiên là pull request cuối cùng trong số ba pull request mà sinh viên đó đã gộp vào Immich trong thời gian học
Có nhiều bàn luận về mã hóa trong phần bình luận nên tôi chia sẻ cấu hình của mình. Tôi đã vận hành Immich cho gia đình và bạn bè trên máy chủ đấu giá của Hetzner khoảng một năm rưỡi
Cộng đồng Hetzner có tài liệu chính thức về mã hóa toàn bộ ổ đĩa: https://community.hetzner.com/tutorials/install-debian-with-...
Dùng SSL miễn phí của Letsencrypt, và có thể dễ dàng đặt Immich phía sau proxy Nginx xử lý SSL
Với sao lưu tự động dựa trên cron, lưu toàn bộ dữ liệu Immich vào NAS nội bộ đã mã hóa, bạn sẽ có một cấu hình đáng tin cậy với dữ liệu được mã hóa cả khi truyền lẫn khi lưu trữ. Cho đến nay số lần bảo trì chính xác là 0
Tôi còn an toàn hơn vì chặn lưu lượng ngoài 3 khu vực ở cấp IP, và cũng có thể thêm WAF vào proxy Nginx
Lý do tôi cho rằng còn an toàn hơn cả Google/iCloud là vì vector tấn công từ “nhân viên công ty” nhỏ hơn nhiều. Cũng đã có trường hợp được ghi nhận về việc Google xem ảnh và thậm chí sẵn sàng báo cảnh sát sai sự thật: https://www.eff.org/deeplinks/2022/08/googles-scans-private-...
Tất nhiên, về mặt lý thuyết nhân viên Hetzner có thể truy cập vật lý vào máy chủ, trích xuất khóa mã hóa từ RAM hoặc đánh cắp khóa bằng máy chủ SSH giả, nhưng đó là kiểu tấn công phức tạp hơn nhiều, chưa từng được ghi nhận, và cũng có nguy cơ bị phát hiện
Cấu hình này là mã hóa khi truyền và mã hóa khi lưu trữ. Với các nhà cung cấp cloud lớn, mã hóa khi lưu trữ có thể tương đối kém quan trọng hơn vì họ có khả năng quản lý vòng đời ổ đĩa tốt hơn hầu hết công ty hoặc cá nhân
Khả năng ai đó đột nhập vật lý vào trung tâm dữ liệu, hoặc lấy được ổ đĩa tân trang chưa được xử lý/xóa đúng cách, là thấp
Cũng khó nói là nó nhất thiết an toàn hơn nhà cung cấp dịch vụ quản lý, vì rất có thể bạn không phải kỹ sư bảo mật và cũng có ít nguồn lực hơn nhiều để bảo vệ máy chủ
Nó ngăn Google/iCloud cào dữ liệu, nhưng không có nghĩa Hetzner không thể truy cập dữ liệu. Hetzner kiểm soát hypervisor cấp trên và control plane quản lý server/VM, nên không thể biết đã triển khai những chức năng gì
Phần lớn những gì cơ quan tình báo có thể làm đều chưa bị rò rỉ hoặc được công khai tài liệu hóa
Nếu là mã hóa đầu-cuối thực sự thì mọi dữ liệu trên ổ phải được mã hóa từ client mà gia đình sử dụng, và ngay cả khi lục tung volume ổ đĩa cũng chỉ thấy ciphertext
Đây là phần mềm thực sự xuất sắc và ngang tầm Google Photos. Tôi đã dùng nó vài tháng sau khi bắt đầu homelab, đặt sau Tailscale, và không gặp vấn đề gì
Thực ra chính việc chạm giới hạn 100GB của Google Photos rồi chuyển sang Immich đã trở thành động lực để tôi bắt đầu self-hosting, và quá trình đó rất thú vị
Thật khó tin là một sản phẩm self-hosting hoàn thiện đến mức này lại miễn phí. Vì lý do tương tự, tôi cũng muốn gửi lời tán dương lớn tới HomeAssistant, PiHole, paperless-ngx, Dawarich và vô số dự án khác
Xin chúc mừng và cảm ơn đội ngũ đã giúp tôi sắp xếp những kỷ niệm cá nhân của mình
Có nhiều bình luận nói ở đây không có mã hóa đầu cuối, nhưng thật lòng tôi không hiểu nghiêm túc thì tại sao lại cần đến mức đó
Giả sử có trộm đột nhập và lấy mất homelab. Ôi không, vì không có mã hóa đầu cuối nên hắn có thể xem ảnh bà ngoại đã mất của tôi!
Kịch bản có khả năng xảy ra cao hơn là điện thoại gặp sự cố. Nếu không có mã hóa đầu cuối thì ngay cả khi làm mất khóa, bạn cũng không mất luôn những ký ức cuối cùng về bà, mà chỉ cần chép các file
.jpgsang thiết bị mớiTuy vậy, tôi vẫn băn khoăn về sự đánh đổi về khả năng tiếp cận mà mã hóa đầu cuối mang lại cho người dùng phổ thông. Trong trường hợp này, nếu làm mất hoặc quên khóa hay mật khẩu thì có thể mất toàn bộ những bức ảnh cực kỳ quan trọng, và đó là điều khá nghiêm trọng
Google Photos hay iPhotos tạo cho mọi người cảm giác rằng ảnh của họ được an toàn
Ngoài ra, việc này cũng giúp dễ host một instance Immich trên cloud mà không cần mã hóa filesystem của máy chủ từ xa/VPS. Đặc biệt khi thuê máy chủ từ các nhà cung cấp nhỏ, tôi luôn hơi dè chừng về mức độ có thể tin tưởng vào kiểm soát truy cập của nhân viên
Tôi hiểu rằng nếu có quyền truy cập vật lý thì luôn phải chấp nhận một mức độ tin cậy nào đó, nhưng cách họ xử lý ổ đĩa trong lúc bảo trì cũng rất quan trọng
Khi đó, các tính năng như tìm kiếm ngữ nghĩa, nhận diện khuôn mặt, chuyển mã video, tạo thumbnail sẽ phải chuyển sang phía client
Immich được xây dựng trên giả định rằng bạn tin máy chủ có thể truy cập ảnh của mình. Với self-hosting thì cấu trúc đó lúc nào cũng vậy
Đa số người dùng cũng đang đặt mức tin tưởng tương tự vào Google và Apple, nên tôi thấy điều đó là hợp lý
Nếu có một kiến trúc mã hóa đầu cuối thực sự, có lẽ sẽ dùng cloud storage, managed hosting và backup offsite linh hoạt hơn
Nếu là self-hosting thì không cần ngăn quản trị viên truy cập file
Giờ thì có thể lưu trữ dạng số và sao lưu ra ngoài. Với Immich, thay đổi như thế là đủ rồi
Mã hóa hoàn toàn mọi thứ ngược lại còn dễ mời thêm rắc rối
Khi chuyển từ iOS sang GrapheneOS, tôi quyết định self-host ảnh của mình và cũng đã cân nhắc Immich, nhưng cuối cùng chọn Ente vì vấn đề mã hóa
Ente Photos rất hoàn thiện và chất lượng có thể sánh với Apple Photos
Tôi thích việc, không như nhiều dự án mã hóa đầu cuối khác chỉ mở client, họ cũng công khai cả server và vẫn cho phép self-host
Tôi cũng thích tính năng cho phép chia sẻ để bất kỳ ai cũng có thể đóng góp vào album mà không cần tài khoản, và có thể khóa để khi đưa điện thoại cho người khác chỉ hiện những ảnh đã chọn
Xét ở góc độ self-hosting thì ngay cả upload ảnh cũng không làm ổn định được. Có lần tôi đã không thể upload gì suốt nhiều ngày, lại không có thông tin chẩn đoán nên phải tự build và debug
Tôi đã để app ở foreground, cắm sạc và giữ vậy hàng giờ, đồng thời tắt cả upload video lẫn các tính năng machine learning để chỉ tập trung vào ảnh, vậy mà vẫn thế
Phía server thì ổn, upload qua web không có vấn đề gì, chỉ có app là không chạy. Đến giờ tôi vẫn chưa tìm ra nguyên nhân
Tức là cả hai hình thức đều khả thi
https://github.com/ente/ente
Có thể điều đó phần nào làm suy yếu mục đích của xác thực hai bước, nhưng đôi khi tôi cũng không quá bận tâm
Không cần app, cực kỳ đơn giản và rất rẻ. Sau đó tôi còn dùng luôn cả dịch vụ backup/lưu trữ ảnh của họ
Đây là kiểu dịch vụ đúng như những gì nó thể hiện, nên tôi thành fan luôn
Immich là lựa chọn quá tự nhiên để thay thế Apple Photos hay Google Photos. Dùng cùng VPN như Tailscale thì gần như có thể thay nóng luôn
https://github.com/immich-app/immich/discussions/14365
Chỉ cần cập nhật định kỳ, tuân theo vài quy tắc đơn giản và thiết lập thứ như CrowdSec là được
Tôi biết dùng công cụ như Tailscale thì đơn giản hơn, nhưng dạo này có xu hướng gần như không cân nhắc lựa chọn nào khác ngoài nó
Ảnh của tôi được sắp xếp kiểu
events -> year/month - holiday -> (album_1, ...),home town -> year -> (album_1, ...)Ảnh có thể nằm trong nhiều album, có cả bản chỉnh sửa, đồng thời tôi còn cần theo dõi và lọc trạng thái chọn/loại
Lý do duy nhất tôi vẫn chưa chuyển sang Immich là tôi gặp khó khăn trong việc ánh xạ cách tổ chức ảnh của mình sang cách của Immich sao cho dễ nhìn. Những gì tôi thử đến giờ đều khá khó dùng
Điều khiến tôi khó chịu hơn cả việc thiếu mã hóa đầu cuối là có một điểm khác. Họ đã không làm cho việc nhập từ các dịch vụ khác như Google Photos hay iCloud trở nên dễ dàng, trong khi theo tôi đây mới phải là ưu tiên hàng đầu
Immich phụ thuộc vào dự án immich-go, nhưng nó có nhiều lỗi và trên thực tế gần như bị bỏ mặc
Ứng dụng iOS riêng của họ cũng có thể dùng để đồng bộ thư viện iCloud, nhưng do một lỗi chưa được giải quyết suốt khoảng 2 năm nên việc tải ảnh Live Motion lên bị thất bại
Trong số ảnh đã xuất sang Immich của tôi, khoảng 9000 ảnh bị hỏng hoặc chỉ nhập được một nửa dưới dạng Live Photos, mà tôi không có thời gian để sửa
Tôi không hiểu nổi việc đây lại không phải là ưu tiên. Đây là tính năng đáng lẽ phải được A/B test kỹ lưỡng nhất
Nếu không thể tin rằng những ký ức được nhập vào sẽ không bị phá hỏng, thì tôi không hiểu OCR còn có ý nghĩa gì
Tôi không nghĩ việc xử lý phần xuất dữ liệu nửa vời của Google Photos sẽ là thứ ai đó thấy thú vị, và nỗi đau khi nhập dữ liệu chỉ phải chịu một lần nên sau đó cũng không còn là cái ngứa cần gãi nữa
Tôi đã thiết lập Immich với Ceph làm backend, rồi dùng immich-go để chuyển toàn bộ metadata lẫn album
Tôi chỉ phải chỉnh một chút ở tùy chọn song song hóa, ngoài ra thì rất dễ
Có những thứ mất rất nhiều thời gian để thiết lập, dùng một lần rồi thôi, và cũng có những thứ dễ thiết lập nhưng mỗi ngày đem lại chút lợi ích
Immich là phần mềm khiến tôi mất khá lâu để thiết lập và dùng rất hiếm, nhưng mỗi lần dùng lại, khoảng một năm một lần, tôi đều thấy thật đáng vì đã cài nó
Tôi dùng hằng tuần và nó cứ thế hoạt động tốt, rất tuyệt
Nếu nhớ không nhầm thì có thể liên quan đến một lần chuyển phiên bản lớn. Từ đó tôi mất hứng với stack này
Việc nâng cấp không hề nhẹ nhàng như tôi mong muốn, và giờ có lẽ cũng chưa khác mấy
Tôi chỉ muốn sắp xếp thư mục bên ngoài cái hệ thống thư viện ngớ ngẩn đó thôi, mà hồi ấy Immich cũng không hợp với cách đó
Tôi muốn biết đồng bộ ảnh trên iOS đã khá hơn chưa. Điện thoại tôi có 20 nghìn ảnh, lần gần nhất tôi thử thì bộ nhớ máy bị lấp đầy bởi bản gốc, và dù tôi để điện thoại mở khóa với ứng dụng Immich chạy tiền cảnh trong cùng mạng nội bộ suốt mấy ngày thì vẫn không xong
Tôi biết là nó đang làm việc nhưng không thể theo dõi tiến độ. Tôi muốn biết giờ nó có hoạt động tốt hơn để đáng thử lại hay chưa
“Trên iOS, tác vụ làm mới nền giờ sẽ chạy đồng bộ và tải lên song song, nhờ đó việc tải lên thực sự bắt đầu trong cửa sổ thời gian ngắn mà iOS cho phép”
Tuy vậy tôi không biết điều này có sửa được vấn đề đó không
Tôi không nhớ bản gốc có được tải xuống hay sau đó có bị xóa tự động hay không, nhưng toàn bộ quá trình nhìn chung khá trơn tru
iOS không khiến việc này trở nên dễ dàng với tải nền. Tôi đã phải để ứng dụng mở qua đêm để tải xong mọi thứ
Tôi tự hỏi liệu “tải trực tiếp asset vào album từ ứng dụng di động” có sửa được vấn đề này không: https://github.com/immich-app/immich/discussions/12748
Với tôi đây là vấn đề khá lớn vì tôi muốn gom ảnh mèo từ nhiều thiết bị và nhiều người vào cùng một album
Hiện tại tôi phải cấu hình kiểu này. Dùng Syncthing để đồng bộ ảnh vào
/mnt/Syncthing/a1/cats/,/mnt/Syncthing/a2/cats/,/mnt/Syncthing/b/cats/trên máy chủ homelab đang host ImmichMột tác vụ cron sẽ sao chép hardlink ảnh vào thư mục
/mnt/immich/ext-lib/cats/, được mount làm volume thư viện ngoài chỉ đọcMột tác vụ cron khác chạy script tự tạo album từ cấu trúc thư mục thư viện ngoài https://github.com/Salvoxia/immich-folder-album-creator
Cuối cùng, tôi chạy một tác vụ cron dọn các ảnh quá 1 năm trong thư mục Syncthing để giải phóng dung lượng điện thoại. Tổng cộng khoảng 1TB, nên đúng là có vấn đề
Dù vậy, vẫn chúc mừng bản phát hành 3.0. Chỉ là tôi mới phát hiện ra chương trình này cách đây một tháng, và mới ổn định được cấu hình self-hosted từ tuần trước, nên cũng hơi tiếc một chút thôi