Immich 是一个功能强大且易于使用的自托管照片和视频备份解决方案,非常适合需要安全、有效地管理珍贵记忆的用户。
主要功能
- 自动备份:打开 Immich 应用程序时,照片和视频会自动备份,无需手动操作。
- 多平台支持:支持 Ubuntu、Debian、macOS 等多种操作系统,确保用户在不同平台上都能享受到同样的服务。
- 多用户支持:支持多用户同时使用,方便家庭成员共享和管理照片。
- 共享相册:用户可以创建共享相册,邀请亲朋好友一起欣赏和分享照片和视频。
- 元数据视图:提供 EXIF、地图等元数据视图,让用户更深入地了解每张照片的详细信息。
技术栈
- 后端框架:NestJs,提供稳定、高效的服务端支持。
- Web前端框架:SvelteKit,以其轻量级和高效性提供流畅的用户体验。
- 数据库:使用 PostgreSQL 作为主数据库,确保数据安全。
- 缓存和消息处理:Redis 用于 docker 实例和后台任务消息队列之间的共享 websocket 实例。
- 负载均衡和文件上传:Nginx 担任此角色,确保应用程序的稳定性和性能。
- 图像处理能力:TensorFlow 用于对象检测和图像分类。
系统要求
- 操作系统:首选 Ubuntu、Debian、macOS 等。
- 内存:至少 2GB,推荐 4GB。
- 处理器:至少 2 个核心,推荐 4 个核心。
特点和优势
- 安全性:作为自托管解决方案,用户完全掌控自己的数据,无需担心第三方访问或数据泄露。
- 灵活性:用户可以根据需求进行定制和扩展,满足不同的存储和管理需求。
- 易用性:界面设计简洁直观,易于上手和使用。
其他功能
- 管理功能:包括用户管理、后台备份等,方便用户进行系统的维护和管理。
- 搜索功能:支持按元数据、对象和图像标签进行搜索,方便用户快速找到所需的照片和视频。
如需了解更多信息,可以访问其官方网站或查阅相关的技术文档。
搭建教程
本文通过 Docker 的方式来部署,以 Ubuntu 为例,操作步骤如下:
第一步:安装 Docker
sudo apt update
sudo apt install -y docker.io docker-compose
第二步:创建 docker-compose.yml
在 Home 目录创建 docker-compose.yml,编写以下配置并保存:
version: '3'
services:
immich:
image: ghcr.io/imagegenius/immich:latest
container_name: immich
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- DB_HOSTNAME=192.168.1.x
- DB_USERNAME=postgres
- DB_PASSWORD=postgres
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=192.168.1.x
- DB_PORT=5432 # optional
- REDIS_PORT=6379 # optional
- REDIS_PASSWORD= # optional
- MACHINE_LEARNING_GPU_ACCELERATION= # optional
- MACHINE_LEARNING_HOST=0.0.0.0 # optional
- MACHINE_LEARNING_PORT=3003 # optional
- MACHINE_LEARNING_WORKERS=1 # optional
- MACHINE_LEARNING_WORKER_TIMEOUT=120 # optional
volumes:
- /home/appdata:/config
- /home/photos:/photos
- /home/imports:/import:ro # optional
ports:
- 8080:8080
restart: unless-stopped
redis:
image: redis
ports:
- 6379:6379
container_name: redis
postgres14:
image: tensorchord/pgvecto-rs:pg14-v0.2.0
ports:
- 5432:5432
container_name: postgres14
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: immich
volumes:
- /home/postgres:/var/lib/postgresql/data
第三步:启动容器运行镜像
sudo docker-compose up -d
执行上述指令后,在浏览器访问 IP:8080
即可。