Docker一键部署Immich:自建私有云相册,照片视频备份无忧

Docker一键部署Immich:自建私有云相册,照片视频备份无忧

开源地址:immich-app/immich: High performance self-hosted photo and video management solution.

1.下载部署文件

前往分支Release v2.4.1 · immich-app/immich下载.envdocker-compose.yml文件

2.修改配置文件

将下载的文件上传到服务器,并将example.env重命名成 .env, 然后修改参数

yml 复制代码
# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library  

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Asia/Shanghai  #将时区改成上海
# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=v2

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
3.运行docker容器
bash 复制代码
docker compose up -d


CONTAINER ID   IMAGE                                                            COMMAND                  CREATED        STATUS                  PORTS                                         NAMES
9270c9a4484b   ghcr.io/immich-app/immich-server:v2                              "tini -- /bin/bash -..."   24 hours ago   Up 24 hours (healthy)   0.0.0.0:2283->2283/tcp, [::]:2283->2283/tcp   immich_server
c00b25a11b5c   ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0   "/usr/local/bin/immi..."   24 hours ago   Up 24 hours (healthy)   5432/tcp                                      immich_postgres
1b4d31449404   ghcr.io/immich-app/immich-machine-learning:v2                    "tini -- python -m i..."   24 hours ago   Up 24 hours (healthy)                                                 immich_machine_learning
33d4dded710d   valkey/valkey:9                                                  "docker-entrypoint.s..."   24 hours ago   Up 24 hours (healthy)   6379/tcp                                      immich_redis
4.浏览器打开

在浏览器打开:IP:2283 就可以创建用户进入 Immich 了。

5.数据备份

为防止数据丢失,建议定期备份数据库和存储文件夹(即.env文件中定义的文件存储路径中的librarypostgres 文件夹)

备份脚本参考
sh 复制代码
#!/bin/bash

# ========================
# Immich 备份脚本
# ========================

BACKUP_DIR="/data/immich-backup"
mkdir -p "$BACKUP_DIR"

# 使用精确时间戳命名(避免冲突)
DATE=$(date +%Y%m%d_%H%M%S)

# 1. 停止 Immich 服务
echo "[$(date)] 停止 Immich 服务..."
docker compose -f /immich/docker-compose.yml down

# 2. 备份 library
echo "[$(date)] 备份 library..."
tar -czf "$BACKUP_DIR/.library.tmp.tar.gz" -C /immich library

# 3. 备份 postgres
echo "[$(date)] 备份 postgres..."
tar -czf "$BACKUP_DIR/.postgres.tmp.tar.gz" -C /immich postgres

# 4. 启动 Immich 服务
echo "[$(date)] 启动 Immich 服务..."
docker compose -f /immich/docker-compose.yml up -d

# 5. 删除所有旧备份(只保留最新一份)
echo "[$(date)] 清理旧备份,仅保留最新..."
rm -f "$BACKUP_DIR"/library_*.tar.gz
rm -f "$BACKUP_DIR"/postgres_*.tar.gz

# 6. 重命名临时文件为正式备份
mv "$BACKUP_DIR/.library.tmp.tar.gz" "$BACKUP_DIR/library_$DATE.tar.gz"
mv "$BACKUP_DIR/.postgres.tmp.tar.gz" "$BACKUP_DIR/postgres_$DATE.tar.gz"

echo "[$(date)] 备份完成!"
相关推荐
A小辣椒9 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒12 小时前
TShark:基础知识
linux
AlfredZhao14 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux