PassNAT LogoPassNAT

自建私人照片云!LibrePhotos 开源智能相册系统,AI 人脸识别地理标记时间线浏览,帕斯内网穿透远程访问!

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

LibrePhotos 是一个开源的自托管照片管理系统,专为个人和家庭用户设计。它提供了强大的照片和视频管理功能,包括智能分类、人脸识别、地理位置标记、时间线浏览等特性。LibrePhotos 支持所有类型的照片格式(包括 RAW 格式)和视频文件,能够自动扫描文件系统中的媒体文件并进行智能分析。

该项目最大的亮点是其强大的 AI 功能:自动人脸识别和分类、场景检测、语义图像搜索、基于事件的智能相册生成(如'周四在柏林')。同时支持多用户使用,每个用户都有独立的照片库和隐私设置。界面简洁美观,提供了类似 Google Photos 的使用体验,但完全私有化部署,数据完全掌控在自己手中。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

1# DO NOT EDIT
2# The .env file has everything you need to edit.
3# Run options:
4# 1. Use prebuilt images (preferred method):
5# run cmd: docker compose up -d
6# 2. Build images on your own machine:
7# build cmd: docker compose build
8# run cmd: docker compose up -d
9
10services:
11 proxy:
12 image: reallibrephotos/librephotos-proxy:${tag}
13 container_name: proxy
14 restart: unless-stopped
15 volumes:
16 - ${scanDirectory}:/data
17 - ${data}/protected_media:/protected_media
18 ports:
19 - ${httpPort:-3000}:80
20 depends_on:
21 - backend
22 - frontend
23
24 db:
25 image: pgautoupgrade/pgautoupgrade:latest
26 container_name: db
27 restart: unless-stopped
28 environment:
29 - POSTGRES_USER=${dbUser}
30 - POSTGRES_PASSWORD=${dbPass}
31 - POSTGRES_DB=${dbName}
32 volumes:
33 - ${data}/db:/var/lib/postgresql/data
34 healthcheck:
35 test: psql -U ${dbUser} -d ${dbName} -c 'SELECT 1;'
36 interval: 5s
37 timeout: 5s
38 retries: 5
39
40 frontend:
41 image: reallibrephotos/librephotos-frontend:${tag}
42 container_name: frontend
43 restart: unless-stopped
44
45 backend:
46 image: reallibrephotos/librephotos:${tag}
47 container_name: backend
48 restart: unless-stopped
49 volumes:
50 - ${scanDirectory}:/data
51 - ${data}/protected_media:/protected_media
52 - ${data}/logs:/logs
53 - ${data}/cache:/root/.cache
54 environment:
55 - SECRET_KEY=${shhhhKey:-}
56 - BACKEND_HOST=backend
57 - ADMIN_EMAIL=${adminEmail:-}
58 - ADMIN_USERNAME=${userName:-}
59 - ADMIN_PASSWORD=${userPass:-}
60 - DB_BACKEND=postgresql
61 - DB_NAME=${dbName}
62 - DB_USER=${dbUser}
63 - DB_PASS=${dbPass}
64 - DB_HOST=${dbHost}
65 - DB_PORT=5432
66 - MAPBOX_API_KEY=${mapApiKey:-}
67 - WEB_CONCURRENCY=${gunniWorkers:-1}
68 - SKIP_PATTERNS=${skipPatterns:-}
69 - ALLOW_UPLOAD=${allowUpload:-false}
70 - CSRF_TRUSTED_ORIGINS=${csrfTrustedOrigins:-}
71 - DEBUG=0
72 depends_on:
73 db:
74 condition: service_healthy

同时还需要创建环境变量文件 .env

1# Location of your photos.
2scanDirectory=./librephotos/pictures
3
4# Internal data of LibrePhotos
5data=./librephotos/data
6
7# What port should Libre Photos be accessed at (Default 3000)
8httpPort=3000
9
10# What branch should we install the latest weekly build or the development branch (dev)
11tag=latest
12
13# Number of workers, which take care of the request to the api.
14gunniWorkers=2
15
16# Database settings
17dbName=librephotos
18dbUser=docker
19dbPass=AaAa1234
20dbHost=db
21
22# Admin user settings (optional)
23adminEmail=
24userName=
25userPass=
26
27# Other optional settings
28mapApiKey=
29csrfTrustedOrigins=

打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目

在环境变量文件中,你需要修改以下重要设置:

- scanDirectory: 设置为你的照片存储目录路径

- data: 设置为 LibrePhotos 数据存储目录

- httpPort: 如果端口被占用可以修改,但需要保持格式正确

- dbPass: 建议修改数据库密码

- userNameuserPass: 设置管理员账号和密码

其他配置保持默认即可。

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 3000 端口,这里本地端口就填 3000

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

可以看到已经正常穿透成功了

本篇教程结束