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