Ghi chú review
Nên chạy bằng Docker Compose chính thức, chuẩn bị dung lượng lưu trữ và chiến lược backup trước khi import ảnh lớn.
Hướng dẫn deploy
Triển khai bằng Docker Compose chính thức, ưu tiên máy có SSD và backup ổn định.
- Tạo thư mục app, tải file compose và `.env` từ tài liệu Immich.
- Cấu hình `UPLOAD_LOCATION`, `DB_PASSWORD` và domain public nếu dùng reverse proxy.
- Chạy `docker compose up -d`, mở web UI, tạo tài khoản admin đầu tiên.
- Đặt Caddy/Nginx phía trước với HTTPS nếu public ra internet.
- Import ảnh theo từng đợt nhỏ và theo dõi dung lượng storage.
Backup:Backup thư mục upload và database PostgreSQL. Không chỉ backup container image.
Copy để chạy trên server
Dùng từng block riêng: lưu compose trước, hoặc copy script bash để tạo file và chạy container.
docker-compose.ymlyaml
name: immich
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich_server
volumes:
- ./library:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
DB_HOSTNAME: database
DB_USERNAME: postgres
DB_PASSWORD: immich_password
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: redis
ports:
- "2283:2283"
depends_on:
- redis
- database
restart: unless-stopped
redis:
image: docker.io/redis:7-alpine
container_name: immich_redis
restart: unless-stopped
database:
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
container_name: immich_postgres
environment:
POSTGRES_PASSWORD: immich_password
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- ./postgres:/var/lib/postgresql/data
restart: unless-stoppedsetup.shbash
#!/usr/bin/env bash
set -euo pipefail
sudo mkdir -p /opt/immich
sudo chown "$USER":"$USER" /opt/immich
cd /opt/immich
cat > docker-compose.yml <<'COMPOSE'
name: immich
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich_server
volumes:
- ./library:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
DB_HOSTNAME: database
DB_USERNAME: postgres
DB_PASSWORD: immich_password
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: redis
ports:
- "2283:2283"
depends_on:
- redis
- database
restart: unless-stopped
redis:
image: docker.io/redis:7-alpine
container_name: immich_redis
restart: unless-stopped
database:
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
container_name: immich_postgres
environment:
POSTGRES_PASSWORD: immich_password
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- ./postgres:/var/lib/postgresql/data
restart: unless-stopped
COMPOSE
docker compose up -d
echo "Immich is running on http://SERVER_IP:2283"Stack
TypeScriptPostgreSQLRedisDocker