Home-gallery.org هو معرض ويب مفتوح المصدر مستضيف ذاتيًا لتصفح الصور ومقاطع الفيديو الشخصية التي تضم العلامات ، وصورة ملائمة للهاتف المحمول ، واكتشاف الذكاء الاصطناعي واكتشاف الوجه. جرب المعرض التجريبي أو استمتع بصور الطعام!
ملاحظة: هذا البرنامج هو مشروع خاص للحيوانات الأليفة/وقت الفراغ دون أي ضمان. اطرح أسئلة على gitter.im أو Discord.
هل تحب HomeGallery؟ هل تحل مشكلة الوسائط الخاصة بك؟ هل ترغب في المساعدة؟ يرجى قراءة الإرشادات المساهمة ودعم هذا المشروع من خلال أي دعم مالي متكرر لموقع 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
وفتح المضيف المحلي: 3000 في متصفحك. تشغيل ./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
وفتح المضيف المحلي: 3000 في متصفحك. Run gallery -h للحصول على مزيد من المساعدة من CLI.
يمكن العثور على تكوين المعرض في ./data/config/gallery.config.yml للضبط الدقيق.
هل تريد استخدام Docker Compose؟ انظر قسم التثبيت في الوثائق لمزيد من المعلومات.
انظر docs.home-gallery.org للحصول على الوثائق العامة.
يتم تحميل "قاعدة البيانات" الكاملة في المتصفح. وسائل الإعلام الخاصة بي 100.000 حوالي 100 ميغابايت عادي JSON و 12 ميجابايت JSON مضغوطة. الأداء جيد جدا على الجهاز المحمول الحالي. أبلغ أحد المستخدمين عن إعداد ناجح مع أكثر من 400.000 ملف وسائط. مزيد من التعليقات موضع ترحيب.
يحتوي HomeGallery على ثنائيات مصنوعة مسبقًا لـ Linux و MacOs و Windows. يمكن العثور على مزيد من خيارات التنزيل هنا.
انظر قسم التثبيت للاستخدام.
الهدف من HomeGallery هو استخدام Serivces أقل قدر الإمكان بسبب بيانات الصورة الخاصة الحساسة. يحاول استخدام الخدمة التي يمكن نشرها محليًا. ومع ذلك ، يتطلب الإعداد المعرفة الفنية والصيانة التقنية. تسمى الخدمات التالية:
للحصول على بحث عكسي GEO (الإحداثيات الجغرافية إلى Addess) ، يستفسر HomeGallery خدمة nominatim من OpenStreetMap. يتم إرسال إحداثيات GEO فقط.
للحصول على بحث عكسي (بحث مماثل للتصوير) ، واكتشاف الكائنات وإعادة التوطين في الوجه ، تستخدم HomeGallery واجهة برمجة التطبيقات العامة الخاصة بها في api.home-gallery.org . تدعم API العامة هذه الأجهزة المنخفضة التي تعمل بالطاقة مثل SOC Raspberry PI وجميع صور المعاينة يتم إرسالها إلى واجهة برمجة التطبيقات العامة هذه افتراضيًا. لا يتم الاحتفاظ بأي صور أو بيانات الخصوصية.
يمكن تكوين API وتشغيله أيضًا محليًا أو كحاوية Docker. انظر قسم التثبيت للاستخدام.
تعمل HomeGallery على Nodejs JavaScript Runtime التي تدعمها منصات مختلفة مثل 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 . يتم تحديد آخر اختبار للاختبار في 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