home-gallery.org是一个自托管的开源网络库,可浏览带有标签,移动友好型和AI动力图像和面部发现的个人照片和视频。尝试演示画廊或享受食物图像!
注意:该软件是一个私人宠物/业余时间项目,没有任何保修。在gitter.im或Discord上询问问题。
你喜欢家装吗?它可以解决您的媒体问题吗?您想帮助吗?请阅读贡献指南,并通过对我的Patreon.com/xemle的任何经常性财务支持或对我的PayPal.me/xemle帐户进行一次支持。先感谢您。
麻省理工学院许可证
需要执行以下步骤以使用Homegallery
~/Pictures类的媒体源 curl -sL https://dl.home-gallery.org/dist/latest/home-gallery-latest-linux-x64 -o gallery
chmod 755 gallery
./gallery init --source ~/Pictures
./gallery run server
并打开Local主机:浏览器中的3000。运行./gallery -h以进一步帮助CLI。
有关进一步的二进制文件,请参见dl.home-gallery.org/dist。例如。 Linux,Mac或Windows的最新二进制文件。
配置gallery.config.yml可以在当前目录中找到用于微调的目录。有关更多信息,请参见文档中的安装部分。
mkdir -p data
alias gallery="docker run -ti --rm
-v $(pwd)/data:/data
-v $HOME/Pictures:/data/Pictures
-u $(id -u):$(id -g)
-p 3000:3000 xemle/home-gallery"
gallery init --source /data/Pictures
gallery run server
并打开Local主机:浏览器中的3000。运行gallery -h以进一步帮助CLI。
图库配置可在./data/config/gallery.config.yml中找到用于微调。
想使用Docker撰写吗?有关更多信息,请参见文档中的安装部分。
有关一般文档,请参见docs.home-gallery.org。
完整的“数据库”已加载到浏览器中。我的100.000媒体大约是100 MB Plain JSON和12 MB压缩JSON。当前的移动设备上的性能非常好。一个用户报告了一个成功的设置,该设置超过400.000个媒体文件。欢迎进一步的反馈。
Homegallery拥有用于Linux,MacOS和Windows的二进制文件。可以在此处找到进一步的下载选项。
有关使用情况,请参见安装部分。
Homegallery的目的是尽可能少地使用敏感的私人图像数据。它试图使用可以本地部署的服务。但是,设置需要技术知识和技术维护。以下服务称为:
对于Geo反向查找(Addess的地理坐标),Homegallery从OpenStreetMap查询Nominatim服务。仅传输地理坐标。
对于反向图像查找(相似的图像搜索),对象检测和面部重组,Homegallery在api.home-gallery.org上使用其自己的公共API。该公共API支持诸如SOC Raspberry Pi之类的低功率设备,并且默认情况下,所有预览图像都发送给该公共API。没有保留图像或隐私数据。
可以将API配置并在本地或Docker容器中进行配置。有关使用情况,请参见安装部分。
Homegallery在JavaScript运行时Nodejs上运行,该nodejs由Linux(Raspberry PIS),Mac和Windows等各种平台支持。
在大多数情况下,自定义环境应该足够
# Clone or download the repo from GitHub
git clone https://github.com/xemle/home-gallery.git
cd home-gallery
# Install required packages
npm install
# Build required modules
npm run build
在某些情况下,您可能还需要必要的构建工具来编译库绑定。
Homegallery使用具有多软件包的NPM工作区。常见的NPM脚本是clean , build , test 。
要仅运行包装的子集,您可以使用PNPM的过滤器功能,例如构建模块export-static和database :
npx pnpm -r --filter './*/{export-static,database}' build
从特定软件包(通过PNPM)运行单元测试
npx pnpm -r --filter './*/{query,events}' test
运行特定的E2E测试(通过仪表)
git clone https://github.com/xemle/home-gallery-e2e-data.git data
npm run test:e2e -- --tags dev
home-gallery-e2e-data使用GIT LFS包含测试文件。
E2E测试输出数据存储在/tmp/gallery-e2e目录中。最新的测试运行与Homegallery Working目录中的目录latest-e2e-test相结合。在每个测试目录中检查cli.log和e2e.log (NDJSON格式)。
从功能分支创建本地二进制捆绑包
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run
创建本地本地捆绑包,该捆绑包通过NPM,例如Sharp,ffmpeg和ffprobe。它应仅包含应在任何地方运行的JS代码。它需要在PATH环境中的外部二进制vipsthumbnail,ffmpeg和ffprobe才能正常工作。
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run
为了重置当前的发展状态并以任何非常奇怪的错误行为开始新鲜,您可能会运行:
rm -rf package-lock.json node_modules e2e/node_modules packages/*/node_modules
npm install && npm run clean && npm run build