Home-Gallery.org est une galerie Web open-source auto-hébergée pour parcourir des photos et des vidéos personnelles avec un étiquetage, des images et une découverte de visage alimentées par les mobiles. Essayez la Demo Gallery ou profitez des images de nourriture!
Remarque: Ce logiciel est un projet privé pour animaux de compagnie / temps de rechange sans aucune garantie. Posez des questions sur Gitter.im ou Discord.
Aimez-vous HomeGallery? Cela résout-il votre problème médiatique? Souhaitez-vous aider? Veuillez lire les guidages contributifs et soutenir ce projet grâce à tout support financier récurrent à mon compte Patreon.com/Xemle ou une seule fois sur mon compte paypal.me/xemle. Merci d'avance.
Licence MIT
Les étapes suivantes doivent être effectuées pour utiliser la 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
et ouvrir localhost: 3000 dans votre navigateur. Courir ./gallery -h pour plus de l'aide de la CLI.
Voir dl.home-gallery.org/dist pour d'autres binaires. Par exemple, par exemple Derniers binaires pour Linux, Mac ou Windows.
La configuration gallery.config.yml se trouve dans le répertoire actuel pour un réglage fin. Voir la section Installer dans la documentation pour plus d'informations.
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
et ouvrir localhost: 3000 dans votre navigateur. Run gallery -h pour aider la CLI.
La configuration de la galerie se trouve dans ./data/config/gallery.config.yml pour un réglage fin.
Vous voulez utiliser Docker Compose? Voir la section Installer dans la documentation pour plus d'informations.
Voir docs.home-formy.org pour la documentation générale.
La "base de données" complète est chargée dans le navigateur. Mes 100 000 médias sont d'environ 100 MB JSON simples et JSON compressé de 12 Mo. Les performances sont assez bonnes sur l'appareil mobile actuel. Un utilisateur a signalé une configuration réussie avec plus de 400 000 fichiers multimédias. Les commentaires supplémentaires sont les bienvenus.
HomeGallery a des binaires préfabillés pour Linux, MacOS et Windows. D'autres options de téléchargement peuvent être trouvées ici.
Voir la section d'installation pour l'utilisation.
L'objectif de HomeGallery est d'utiliser des sérivées plus publiques que possible de données d'image privées sensibles. Il essaie d'utiliser un service qui peut être déployé local. Cependant, la configuration nécessite une connaissance technique et une maintenance technique. Les services suivants sont appelés:
Pour les recherches inverses GEO (coordonnées GEO à Addsse), HomeGallery interroge le service nominatim d'OpenStreetMap. Seules les coordonnées géo sont transmises.
Pour les recherches d'images inverses (recherche d'images similaires), détection d'objets et recogintion du visage, HomeGallery utilise son propre API publique sur api.home-gallery.org . Cette API publique prend en charge les appareils à faible puissance tels que le SOC Raspberry Pi et toutes les images d'aperçu sont envoyées par défaut à cette API publique. Aucune image ou données de confidentialité n'est conservée.
L'API peut être configurée et exécutée également localement ou sous forme de conteneur Docker. Voir la section d'installation pour l'utilisation.
HomeGallery s'exécute sur les Nodejs JavaScript Runtime qui est pris en charge par diverses plates-formes telles que Linux (également Raspberry PIS), Mac et Windows.
Dans la plupart des cas, un environnement personnalisé devrait être suffisant avec
# 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
Dans certains cas de cornor, vous pourriez également avoir besoin d'outils de construction essentiels pour compiler les liaisons de la bibliothèque.
HomeGallery utilise des espaces de travail NPM avec des packages multi-zestes. Les scripts NPM courants sont clean , build , test .
Pour exécuter uniquement un sous-ensemble de packages, vous pouvez utiliser la fonction de filtrage de PNPM, par exemple, construire uniquement le module export-static et database :
npx pnpm -r --filter './*/{export-static,database}' build
Exécutez des tests unitaires à partir de packages spécifiques (via PNPM)
npx pnpm -r --filter './*/{query,events}' test
Exécutez des tests E2E spécifiques (via la jauge)
git clone https://github.com/xemle/home-gallery-e2e-data.git data
npm run test:e2e -- --tags dev
home-gallery-e2e-data contient des fichiers de test à l'aide de Git LFS.
Les données de sortie de test E2E sont stockées dans le répertoire /tmp/gallery-e2e . Le dernier essai est symbolique dans le latest-e2e-test dans le répertoire de travail HomeGallery. Vérifiez le cli.log et e2e.log (format NDJSON) dans chaque répertoire de test.
Créer un pack binaire local à partir d'une branche de fonctionnalité
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run
Créez un faisceau natif local qui exclut les binaires via le NPM comme Sharp, FFMPEG et FFPROBE. Il ne doit contenir que du code JS qui devrait s'exécuter partout. Il nécessite des binaires externes VIPShumbnail, FFMPEG et FFPROBE dans l'environnement PATH pour fonctionner correctement.
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run
Pour réinitialiser l'état de développement actuel et recommencer à nouveau sur tout comportement d'erreur très étrange, vous pourriez exécuter:
rm -rf package-lock.json node_modules e2e/node_modules packages/*/node_modules
npm install && npm run clean && npm run build