home-gallery.org เป็นแกลเลอรี่เว็บโอเพ่นซอร์สโฮสต์ที่โฮสต์ตนเองเพื่อเรียกดูรูปภาพและวิดีโอส่วนตัวที่มีการติดแท็ก, เป็นมิตรกับมือถือและภาพและการค้นพบใบหน้า AI ลองแกลเลอรี่สาธิตหรือเพลิดเพลินกับภาพอาหาร!
หมายเหตุ: ซอฟต์แวร์นี้เป็นโครงการสัตว์เลี้ยง/เวลาว่างส่วนตัวโดยไม่มีการรับประกันใด ๆ ถามคำถามเกี่ยวกับ Gitter.im หรือ Discord
คุณชอบ homegallery ไหม? มันแก้ปัญหาสื่อของคุณหรือไม่? คุณต้องการช่วยไหม โปรดอ่านแนวทางการสนับสนุนและสนับสนุนโครงการนี้ผ่านการสนับสนุนทางการเงินที่เกิดขึ้นซ้ำ ๆ ไปยัง patreon.com/xemle ของฉันหรือสนับสนุนบัญชี paypal.me/xemle ของฉันครั้งเดียว ขอบคุณล่วงหน้า
ใบอนุญาต MIT
ขั้นตอนต่อไปนี้จะต้องดำเนินการเพื่อใช้ 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
และเปิด LocalHost: 3000 ในเบราว์เซอร์ของคุณ Run ./gallery -h สำหรับความช่วยเหลือเพิ่มเติมของ CLI
ดู dl.home-gallery.org/dist สำหรับไบนารีเพิ่มเติม เช่น ไบนารีล่าสุดสำหรับ Linux, Mac หรือ Windows
gallery.config.yml การกำหนดค่า 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
และเปิด LocalHost: 3000 ในเบราว์เซอร์ของคุณ เรียกใช้ gallery -h เพื่อขอความช่วยเหลือเพิ่มเติมจาก CLI
การกำหนดค่าแกลเลอรี่สามารถพบได้ใน ./data/config/gallery.config.yml สำหรับการปรับแต่ง
ต้องการใช้ Docker Compose หรือไม่? ดูส่วนการติดตั้งในเอกสารสำหรับข้อมูลเพิ่มเติม
ดู docs.home-gallery.org สำหรับเอกสารทั่วไป
"ฐานข้อมูล" ที่สมบูรณ์จะถูกโหลดลงในเบราว์เซอร์ สื่อ 100.000 ของฉันมี JSON ธรรมดาประมาณ 100 MB และ JSON ที่บีบอัด 12 MB ประสิทธิภาพค่อนข้างดีบนอุปกรณ์มือถือปัจจุบัน ผู้ใช้รายงานการตั้งค่าที่ประสบความสำเร็จด้วยไฟล์สื่อกว่า 400,000 ไฟล์ ยินดีต้อนรับข้อเสนอแนะเพิ่มเติม
HomeGallery มีไบนารีที่สร้างไว้ล่วงหน้าสำหรับ Linux, MacOS และ Windows ตัวเลือกการดาวน์โหลดเพิ่มเติมสามารถพบได้ที่นี่
ดูส่วนการติดตั้งสำหรับการใช้งาน
เป้าหมายของ Homegallery คือการใช้ข้อมูลสาธารณะที่น้อยที่สุดเท่าที่จะเป็นไปได้เนื่องจากข้อมูลภาพส่วนตัวที่ละเอียดอ่อน มันพยายามใช้บริการที่สามารถปรับใช้ในพื้นที่ได้ อย่างไรก็ตามการตั้งค่าต้องการความรู้ทางเทคนิคและการบำรุงรักษาทางเทคนิค บริการต่อไปนี้เรียกว่า:
สำหรับ Geo Reverse Lookups (พิกัดทางภูมิศาสตร์เพื่อเพิ่ม), การสอบถาม HomeGallery บริการ NOMONATIM จาก OpenStreetMap มีการส่งพิกัดทางภูมิศาสตร์เท่านั้น
สำหรับการค้นหาภาพย้อนกลับ (การค้นหาภาพที่คล้ายกัน), การตรวจจับวัตถุและการ recogintion ใบหน้า, homegallery ใช้ API สาธารณะของตัวเองที่ api.home-gallery.org API สาธารณะนี้รองรับอุปกรณ์ที่ใช้พลังงานต่ำเช่น SoC Raspberry Pi และภาพตัวอย่างทั้งหมดจะถูกส่งไปยัง API สาธารณะนี้โดยค่าเริ่มต้น ไม่มีการเก็บข้อมูลภาพหรือความเป็นส่วนตัว
API สามารถกำหนดค่าและวิ่งได้ในพื้นที่หรือเป็นคอนเทนเนอร์ Docker ดูส่วนการติดตั้งสำหรับการใช้งาน
HomeGallery ทำงานบน JavaScript Runtime 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
ในบางกรณี cornor คุณอาจต้องการเครื่องมือสร้างที่จำเป็นในการรวบรวมการผูกไลบรารี
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 การทดสอบครั้งล่าสุดจะถูกรวมเข้ากับไดเรกทอรี latest-e2e-test ภายในไดเรกทอรีการทำงานของ HomeGallery ตรวจสอบ 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 เท่านั้นที่ควรทำงานทุกที่ มันต้องการไบนารีภายนอก Vipsthumbnail, FFMPEG และ FFPROBE ในสภาพแวดล้อม PATH เพื่อทำงานอย่างถูกต้อง
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