在 CentOS 上安装 Immich 自托管相册
一直在研究怎么把上万张照片找一个合适的地方放置,目前还没有定论,但比较倾向于 Immich。记录一下在 CentOS 上的安装过程。
安装 Docker CE
1. 启用阿里云 Docker CE 源
1 2
| yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
2. 安装 Docker CE
1
| yum install -y docker-ce docker-ce-cli --nobest --skip-broken
|
3. 启动 Docker
1 2 3
| systemctl enable docker systemctl start docker systemctl status docker
|
通过 Docker Compose 安装 Immich
1. 创建目录
如果挂载了多个磁盘,建议选择一个合适的目录,Immich 启动后会挂载全部目录。
1 2
| mkdir ./immich-app cd ./immich-app
|
2. 下载 docker-compose.yml 和 .env
1 2
| 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
|
下载后,docker-compose.yml 需要把镜像地址换成国内源:ghcr.io → ghcr.nju.edu.cn,Docker Hub → docker.nju.edu.cn,国内访问速度比较快。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| version: "3.8"
services: immich-server: container_name: immich_server image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env depends_on: - redis - database - typesense restart: always
immich-microservices: container_name: immich_microservices image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "microservices" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload env_file: - .env depends_on: - redis - database - typesense restart: always
immich-machine-learning: container_name: immich_machine_learning image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} volumes: - model-cache:/cache env_file: - .env restart: always
immich-web: container_name: immich_web image: ghcr.nju.edu.cn/immich-app/immich-web:${IMMICH_VERSION:-release} env_file: - .env restart: always
typesense: container_name: immich_typesense image: docker.nju.edu.cn/typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data - GLOG_minloglevel=1 volumes: - tsdata:/data restart: always
redis: container_name: immich_redis image: docker.nju.edu.cn/redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: always
database: container_name: immich_postgres image: docker.nju.edu.cn/postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441 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
immich-proxy: container_name: immich_proxy image: ghcr.nju.edu.cn/immich-app/immich-proxy:${IMMICH_VERSION:-release} environment: - IMMICH_SERVER_URL - IMMICH_WEB_URL ports: - 5003:8080 depends_on: - immich-server - immich-web restart: always
volumes: pgdata: model-cache: tsdata:
|
.env 不需要改,默认内容如下:
1 2 3 4 5 6 7 8
| UPLOAD_LOCATION=./library IMMICH_VERSION=release TYPESENSE_API_KEY=some-random-text DB_PASSWORD=postgres DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis
|
3. 启动
确认 docker-compose.yml 里 immich-proxy 的 ports 端口没问题,然后启动:
4. 访问
浏览器打开 http://{ip}:{port} 即可。