Mình sẽ cài 1 server chạy Immich, mục đích là để backup, đồng bộ các ảnh, video trên điện thoại, dễ hình dung thì Immich tính năng rất tương tự Google Photo
Trên VPS thường dung lượng 25-50 GB, hơi thiếu cho ảnh và video, mình dùng máy bàn làm server để có nhiều dung lượng hơn =))
Cài đặt server
- Tương tự bài Localhost Public VMware, mình set hẳn 500 GB ổ cứng cho máu :]]
Immich mình đọc thấy dùng RAM cũng khá nhiều, đâu đó cũng khoảng 2-4GB, bạn có thể set thêm 1 chút RAM trên server tại nhà, trong trường hợp lưu trữ ít < 200GB, dùng VPS miễn phí 24GB RAM của Oracle cũng ổn
Cài đặt docker và docker-compose
- Nếu bạn đã cài thì bỏ qua bước này
# update OS sudo apt update && sudo apt upgrade -y # set locale locale-gen en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 # Tắt Firewall sudo apt remove iptables-persistent -y sudo ufw disable sudo iptables -F # Chỉnh về múi giờ Việt Nam timedatectl set-timezone Asia/Ho_Chi_Minh # Enable TCP BBR congestion control cat <<EOF > /etc/sysctl.conf net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr EOF # Cài đặt docker và docker-compose curl -sSL https://get.docker.com | sh sudo usermod -aG docker $(whoami) sudo systemctl start docker sudo systemctl enable docker apt install docker-compose -y
Cài đặt Immich
- Tạo thư mục lưu trữ và tạo file cấu hình
mkdir ./immich-app cd ./immich-app wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Bên trong file .env
, có thể đổi lại password khác đi cho an toàn 1 chút cũng được
- Khởi chạy
docker compose up -d
Tạo link quản trị
Đơn giản nhất thì dùng Cloudflare Tunnels làm reverse proxy thay thế cho dãy localhost:2283
- Cloudflare Zero Trust ->Access -> Tunnel -> Create a tunnel -> đặt 1 tên cho dễ nhớ (Server Images Localhost) -> Install and run a connector
- Sau đó tạo Public hostnames photo.bibica.net tới localhost:2283
Lúc này bạn có thể truy cập tới https://photo.bibica.net/
để tạo tài khoản quản trị
Nhìn giao diện khá giật mình, vì y chang Google Photo luôn 😀
Mobile App
Immich hỗ trợ iOS và Android theo mình là đủ, để chắc cú tác giả hỗ trợ cả file apk
- Login vào theo đường dẫn
https://photo.bibica.net/api
(thêm api so với login trên web), còn lại việc login như nhau
Việc set quyền truy cập ảnh, cấu hình chạy ngầm … thì cũng rất giống Google Photo
Do mình dùng trên iOS, vướng các vấn đề liên quan tới chạy ngầm, nên để đồng bộ được, bắt buộc phải để Immich chạy trực tiếp, bạn nào dùng Android chắc khoản đồng bộ tự động ngon hơn
Hiệu năng
Immich bào phần cứng khiếp thật, con CPU máy bàn mình đang dùng là 10900k, cũng dạng khá khỏe, mà khi đồng bộ, thấy nó ăn ~CPU 50% luôn, RAM khi hoạt động dùng ~3GB
Thử nghiệm trên Oracle A1 Flex 4 CPU 24 GB RAM, lúc đồng bộ CPU gần như 100% load 😀 đây là cấu hình phần cứng cực mạnh để chạy WordPress, mà đụng tới vấn đề video, encode này nọ thì không xi nhê
CPU 100% load cả ngày thế này dễ Oracle xóa tài khoản của mình mất 😀
Trong lúc upload từ điện thoại, vào giao diện web nhìn thì đúng là socks, chỉ 1 cái ứng dụng người dùng cuối viết, mà tác giả dùng các công nghệ tương tự Google, detect ra mặt người các kiểu như thật 😀 hỏi sao lúc chạy nó ăn phần cứng khiếp thế 😛 kiểm nghiệm sơ bộ thì vài tình huống mình thấy detect ra chính xác, 1 vài tình huống thì nhầm người A sang B (nếu quá giống nhau, vụ này thì thực tế Google Photo cũng nhầm, nên không có gì bàn nhiều)
Khá hài là Immich detect ra mẹ, em gái, chị gái của mẹ mình là …. 1 người =)) không lẽ sau này có thể dùng Immich để check họ hàng 😀
Sau khi upload được khoảng 90% số ảnh và video đang có lên Immich, so sánh thử với Google Photo, detect theo gương mặt của Immich khá ngon, ở điều kiện các ảnh hiện ra mặt đầy đủ, bắt chính xác 😀 còn chỉ bắt 1/2, 1/3 gương mặt thì kém Google Drive khá xa
Khoản này thì cũng rất dễ hiểu, vì phần cứng Google đang dùng, chắc mạnh hơn tỷ lần so với cấu hình mình đang dùng 😀
Tác giả cũng bổ xung cấu hình dùng phần cứng để xử lý, mà mình thấy lằng nhằng quá, nên ở bước cài đặt bỏ qua, chắc cũng chẳng ai đọc bài này quan tâm đâu 😛
- Ảnh đồng bộ được đầy đủ thông tin, map miếc đầy đủ
Vấn đề dung lượng, Immich dùng cũng khá nhiều, vì khi tạo thumbnail …. nó cũng phải lưu xuống dĩa, sau cache đủ kiểu lên RAM
-> Immich sử dụng CPU, RAM, HDD cực kì nhiều
Nói chung sau khi cài đặt, thứ mình có thể phàn nàn, nó lại là vấn đề liên quan tới iOS, còn lại mình không dám chê cái gì luôn, ứng dụng do cộng đồng viết mà tính năng ngang ngửa Google Photo thì khét thật
Tùy chỉnh cá nhân
Tùy chỉnh lại docker-compose.yml
một chút để lưu các dữ liệu vào bên trong thư mục gốc /root/immich-app
, sau này có chuyển VPS sang nơi khác thì chuyển thư mục này đi là được, cũng tiện cho việc backup docker hàng ngày lên OneDriver hoặc Google Drive hơn
Quan trọng: set chỉ sử dụng 2 core (core 0 và core 1) trong 4 core của Oracle A1 Flex 4 CPU 24 GB RAM
version: "3.8" # # WARNING: Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. # name: immich services: immich-server: container_name: immich_server cpus: "1" cpuset: "0-1" image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] volumes: - ./${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:3001 depends_on: - redis - database restart: always immich-microservices: container_name: immich_microservices cpus: "1" cpuset: "0-1" image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.yml # service: hwaccel command: [ "start.sh", "microservices" ] volumes: - ./${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning cpus: "1" cpuset: "0-1" image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - ./model-cache:/cache env_file: - .env restart: always redis: container_name: immich_redis image: redis:6.2-alpine@sha256:b6124ab2e45cc332e16398022a411d7e37181f21ff7874835e0180f56a09e82a restart: always database: container_name: immich_postgres image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee env_file: - .env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - ./pgdata:/var/lib/postgresql/data restart: always volumes: pgdata: model-cache:
Khi chạy chỉ fullload 2 core 0 và 1, các core khác chạy vừa phải để hạn chế quá tải
Cấu hình này khá tốt, do luôn còn CPU, nên tốc độ upload file không bị nghẽn như cấu hình mặc định 🙁
- Trên iPhone, các ảnh mình chụp, hay ở chế độ LIVE, dễ hiểu thì Immich sẽ coi các ảnh này như là 1 đoạn video khoảng 1-2s 😀
“Hậu quả” cho việc này, mỗi tấm ảnh mình chụp, thường phải xử lý như là 1 video 😀 thay vì chỉ phải tạo thumbnail, detect gương mặt 1 lần, mỗi tấm ảnh của mình phải làm thành 24 cho tới 48 lần, nó tàn phá hệ thống Immich điên cuồng luôn 😛
Ăn vài quả video 4k cỡ 10-20GB, chắc Immich ngồi xử lý cả tuần luôn mất 😀
Kết luận
Sau khi cài đặt, trải nghiệm Immich khoảng nửa ngày thì mình khá phân vân, một sản phẩm lưu trữ ảnh, video mà có tới 20k sao Github thì chứng tỏ mọi người quan tâm và đánh giá cao, quan trọng nhất là vấn đề chất lượng vote, vì thường ai dùng Github, họ cũng có 1 số kiến thức nhất định về ứng dụng, không phải vote ảo như các cuộc thi vote cho thần tượng
Vấn đề sự hiệu quả self-hosted trên backup photo và video rất kém, gần như vắt kiệt công xuất server, cấu hình phần cứng tối thiểu để tạm gọi là chạy được Immich cần khoảng 4 core CPU, 8 GB RAM và thật nhiều dung lượng, trung bình VPS cấu hình này + 100GB dung lượng, giá khoảng $5-$10 /1 tháng
Nếu dùng Google Photo, chi phí khoảng $1.5/ 1 tháng, mà có tới 2 TB dung lượng lưu trữ, đấy là chưa kể nếu dùng Immich, bạn phải tự cài đặt, quản lý, cấu hình cả 1 hệ thống nữa
Chi phí và hiệu quả mang lại của Immich thật sự không đáng để bạn phải tìm hiểu
Nói chung trừ vụ bạn đặc biệt nhạy cảm với các hình ảnh, video, không muốn bất cứ ai dòm ngó, hay bạn sống tại Trung Quốc, các dịch vụ như Google bị cấm, còn lại mình không nghĩ ra lý do gì một người bình thường phải đi dùng các app dạng này
Tất nhiên, nếu bạn có VPS Oracle miễn phí, dùng Andoird và nhu cầu chỉ lưu trữ < 200GB, Immich rất đáng để dùng thử, vì combo này miễn phí và phù hợp
Trường hợp của mình chạy qua iOS thì không hiệu quả lắm, phải nhớ mà bật app lên để nó tự đồng bộ, khá là mất công
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!