nextcloud不适合图片同步
本期视频搭建一个手机图片视频的应用Immich。
在使用这个图片备份服务之前我一直使用nextcloud备份我的多媒体文件和各种文档,众所周知,虽然nextcloud功能强大,但是速度实在不敢恭维
上传还好,预览真的是一塌糊涂,即使开启了memcached,仍旧是慢
为什么Immich
有人给我推荐了一个,图片同步服务 Immich,我暂时没有把这个应用映射到公网,也不打算映射到公网,毕竟都是手机里的私人照片。
同步快,有多快呢,我的感觉是跟局域网里往nas读写速度是一样的,比nextcloud快了不是一点半点
预览快,之前nextcloud中,打开图片目录那就是一种折磨,很久都无法刷新出来
但是immich,瞬间出图,体验真的是好的不得了
至于稳定性与数据安全性,应为immich仅仅是把图片同步到了指定的目录中,并进行索引,以及生成缩略图,即使immich服务删除掉,目录中的内容也是不受影响的,所以只要存放图片的目录做了数据冗余,那么这些图片视频就是安全的
app也非常简洁,功能不多,贵在同步功能好用
许多朋友之所以离不开群晖,很大一部分原因是群晖的moments功能可以对图片进行自动分类
immich也有此功能,但是根据项目描述,内置的深度学习算法需要cpu具备avx与avx与AVX2
如果是比较老的cpu,比如我这台nas是j1900,是无法使用图片智能分类功能的
用以下命令可以查看是否有avx与avx2
more /proc/cpuinfo | grep flags
安装
immich需要大量的组件,官方只提供了docker-compose安装方案,也就是必须命令行安装
前置条件:确保docker-compose可用,而且大于1.26.2,如果不是的话升级它
# 查看版本
docker-compose --version
# 如果版本太低就要升级
# 找到并修改原命令
whereis docker-compose
mv /usr/bin/docker-compose /usr/bin/docker-compose.bak
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 确认
docker-compose --version
# 如果报错,重新登陆ssh
如果是普通linux操作系统安装,使用以下命令
执行后会安装docker,进而下载默认的docker-compose以及env文件进行默认配置的安装,安装完毕后会启动一个2283的服务,直接可以用了,图片视频会保存在./immich-app/immich-data,也就是当前目录下创建了一个immich-app目录。
curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash
不过我还是建议大家自行下载yml文件修改进行安装
首先确保docker已经在运行中,创建一个作业目录,这是一个临时目录
mkdir immichdocker
cd immichdocker
下载docker-compose.yml
wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml
打开这个文件是这样的,唯一可能被修改的是2283端口可以修改为你需要的端口,但是理论上这个端口是不会被占用的,因为据我所知没有应用会默认使用这个端口,除非自行修改过,总之,这个文件几乎不用修改
version: "3.8"
services:
immich-server:
image: altran1502/immich-server:release
entrypoint: ["/bin/sh", "./start-server.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- redis
- database
restart: always
immich-microservices:
image: altran1502/immich-server:release
entrypoint: ["/bin/sh", "./start-microservices.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- redis
- database
restart: always
immich-machine-learning:
image: altran1502/immich-machine-learning:release
entrypoint: ["/bin/sh", "./entrypoint.sh"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- database
restart: always
immich-web:
image: altran1502/immich-web:release
entrypoint: ["/bin/sh", "./entrypoint.sh"]
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: redis:6.2
restart: always
database:
container_name: immich_postgres
image: postgres:14
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
PG_DATA: /var/lib/postgresql/data
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
immich-proxy:
container_name: immich_proxy
image: altran1502/immich-proxy:release
ports:
- 2283:80
logging:
driver: none
depends_on:
- immich-server
restart: always
volumes:
pgdata:
下载.env
wget -O .env https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example
打开后内容如下
其中必须修改的
1、UPLOAD_LOCATION 这个参数指定存放照片的真实绝对路径,我指定的是
/srv/dev-disk-by-label-data/storages/immich
这是omv的典型路径,我共享出来的storages下面创建了一个目录用于存放immich的内容
如果是普通linux的话,大概率是/data/immich之类,酌情修改
2、JWT_SECRET 这个项指定一个类似加密私钥的东西,必须修改,且不能泄露
###################################################################################
# Database
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE_NAME=immich
# Optional Database settings:
# DB_PORT=5432
###################################################################################
# Redis
###################################################################################
REDIS_HOSTNAME=immich_redis
# Optional Redis settings:
# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_PASSWORD=
# REDIS_SOCKET=
###################################################################################
# Upload File Config
###################################################################################
UPLOAD_LOCATION=/srv/dev-disk-by-label-data/storages/immich
###################################################################################
# JWT SECRET
###################################################################################
JWT_SECRET=zheshiyigejwtsecretbixuxiugaierqiebunengxielou
###################################################################################
# MAPBOX
####################################################################################
# ENABLE_MAPBOX is either true of false -> if true, you have to provide MAPBOX_KEY
ENABLE_MAPBOX=false
MAPBOX_KEY=
####################################################################################
# WEB - Optional
####################################################################################
# Custom message on the login page, should be written in HTML form.
# For example VITE_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>[email protected]</i><br>Password: <i>demo</i>"
启动安装
docker-compose up -d
这个命令需要的时间会比较长,这取决于你的网络
安装完成后,打开浏览器,输入ip:2283
注册账号,搞定。
手机app可以去谷歌市场/F-Droid/ios市场搜索immich下载即可
请尽情使用吧。
登陆出错:
Error code 500
Internal Error
Verbose
{“message”:”Internal Error”}
Get help
不知道哪里问题?
服务没跑起来