1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • 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 .env từ v2 sang v3, rồi chạy docker 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
  • Quy trình cập nhật:
    • Trong file .env, đổi IMMICH_VERSION=v2 thành IMMICH_VERSION=v3
    • Chạy docker compose pull && docker compose up -d

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ừ Stable sang Release candidate trong Admin 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 > Workflows trê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 editorJSON 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 trigger và một chuỗi steps
    • 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 tab Search
  • 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-validator sang 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, vector sau 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

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 được nhắc đến không phải mã hóa đầu-cuối. Mã hóa đầu-cuối là mã hóa giữa các client, nên máy chủ chỉ nên xử lý các bit đã mã hóa
      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
    • Đây không phải mã hóa đầu-cuối. Ngay khi ổ đĩa được mount trên host, nó được giải mã và có thể sử dụng, nên không có cơ chế nào ngăn bạn hoặc Hetzner truy cập dữ liệu gia đình
      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
    • Tôi cho rằng mã hóa đầu-cuối là bắt buộc với thư viện ảnh. Đó là cách để tự bảo vệ trước lỗi cấu hình máy chủ, lỗ hổng trong tương lai, và phần mềm không được vá
    • Tôi tò mò không biết bạn dùng bao nhiêu dung lượng lưu trữ trên Hetzner và trả bao nhiêu tiền
  • Đâ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

    • Nếu bạn thích dự án thì nên mua giấy phép. Nó miễn phí, nhưng bạn có thể dùng một phần rất nhỏ trong số tiền đã tiết kiệm được để mua giấy phép
    • Theo tôi thì giờ nó còn tốt hơn Google Photos. Đội ngũ thật sự rất tuyệt, và thật đáng kinh ngạc khi ứng dụng mà tôi cho là tốt nhất trong số các app ảnh đa dụng lại là mã nguồn mở
  • 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 .jpg sang thiết bị mới

    • Điều đó cho phép host instance dùng cho gia đình hoặc bạn bè
      Tuy 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
    • Tôi nghĩ cốt lõi của mã hóa đầu cuối là ngay cả khi host với nhà cung cấp đám mây thì nhà cung cấp cũng không thể xem dữ liệu. Tương tự như Proton Drive tuyên bố rằng họ không biết bạn đang có những file gì
      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ý
    • Không thể nói rằng mọi bức ảnh đều không nhạy cảm
      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
    • Tôi nghĩ trong Immich, tầng ứng dụng không phải là tầng phù hợp để xử lý mã hóa. Tôi chỉ mã hóa toàn bộ ổ đĩa của máy chủ
      Nếu là self-hosting thì không cần ngăn quản trị viên truy cập file
    • Đồng ý. Ngày xưa người ta cất album ảnh trong tủ; nếu nhà cháy thì cháy theo, nếu lò sưởi hỏng thì bị ngấm nước, thậm chí còn có thể bị trộm mất
      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

    • Tôi khó mà đồng ý với câu “Ente Photos rất hoàn thiện và chất lượng có thể sánh với Apple Photos”
      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
    • Viết thêm cho ai tò mò: “Ente Photos là dịch vụ trả phí nhưng cung cấp 10GB dung lượng miễn phí. Bạn cũng có thể sao chép hệ thống lưu trữ này để self-host”
      Tức là cả hai hình thức đều khả thi
      https://github.com/ente/ente
    • Ente Auth cũng rất tuyệt. Nó hoạt động trên bất kỳ thiết bị nào, kể cả chính thiết bị mà bạn đang muốn truy cập
      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
    • Tôi bắt đầu dùng Ente vì muốn tạo link upload ảnh theo từng sự kiện. Chỉ cần nói với bạn bè “nếu tối nay chụp ảnh hay quay video gì thì upload vào URL này” là cứ thế hoạt động
      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

    • Cần lưu ý rằng chuyển ngược từ Immich về iCloud/Google không phải lĩnh vực mà Immich quan tâm, nên phải cẩn thận. Không có chỗ nào có “tải xuống toàn bộ”, và cách tốt nhất là vào server rồi lấy các file gốc
      https://github.com/immich-app/immich/discussions/14365
    • Tôi muốn biết nếu để Immich public thì có tác dụng phụ gì không. Tôi nghĩ nhiều người đang đánh giá quá cao rủi ro
      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ó
    • Tôi đang dùng photoprism và tự hỏi có nên chuyển sang không
    • Khá tiếc là nếu hỗ trợ album lồng nhau hoặc album trong thư mục thì có lẽ nó cũng dễ thay thế Lightroom Cloud
      Ả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
    • Tôi muốn biết nếu để điện thoại kết nối Tailscale VPN cả ngày thì có tác dụng phụ gì khô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ì

    • Trong mã nguồn mở, các lập trình viên tình nguyện thường tập trung vào những gì vui hoặc giải quyết vấn đề của chính họ
      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
    • Mức độ cảm giác được hưởng quyền thể hiện ở đây thật đáng kinh ngạc
    • Ở tình huống tương tự, tuần trước tôi đã chuyển 12 nghìn ảnh/video từ Google Takeout sang Immich
      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ó phải vì những dịch vụ đó là các hộp đen đóng kín nên ngoài cách đi đường vòng rất gián tiếp ra thì họ không cho truy cập đàng hoàng?
  • 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ó

    • Với tôi thì việc thiết lập không mất quá lâu, và dù tôi có tốn thêm chút thời gian khi nâng cấp vì vài thay đổi đôi lúc làm vỡ hệ thống khiến phải thao tác thủ công, nhưng chuyện đó không xảy ra thường xuyên
      Tôi dùng hằng tuần và nó cứ thế hoạt động tốt, rất tuyệt
    • Giá mà trải nghiệm của tôi cũng như vậy. Tôi dùng qua Proxmox LXC, sau 2 tháng sắp xếp thì xảy ra hỏng dữ liệu, và tôi không còn sức để debug đến cùng
      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

    • Ghi chú phát hành viết thế này
      “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
    • Tháng 2 tôi đã đồng bộ khoảng 9000 ảnh từ điện thoại và nó hoạt động khá ổn. Xong trong khoảng 10 giờ
      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
    • Tải lên các tệp lớn không thể tiếp tục dở dang. Nếu có video với bitrate và độ phân giải vừa phải thì toàn bộ tệp phải được tải lên trong một phiên
      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ứ
    • Có lẽ đây không phải vấn đề của Immich mà là của iOS. Apple không chào đón các ứng dụng giúp người dùng rời iCloud dễ dàng
  • 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 Immich
    Mộ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ỉ đọc
    Mộ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