Home-Gallery.org es una galería web de código abierto autohospedada para explorar fotos y videos personales con etiquetado, imagen y descubrimiento de imágenes con AI con AI. ¡Prueba la galería de demostración o disfruta de las imágenes de comida!
Nota: Este software es un proyecto privado de mascota/tiempo libre sin ninguna garantía. Haga preguntas sobre gitter.im o discord.
¿Te gusta HomeGallery? ¿Resuelve su problema de medios? ¿Te gustaría ayudar? Lea las guías contribuyentes y apoye este proyecto a través de cualquier apoyo financiero recurrente a mi patreon.com/xemle o un solo apoyo a mi cuenta paypal.me/xemle. Gracias de antemano.
Licencia de MIT
Se deben realizar los siguientes pasos para usar 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
y Abra Localhost: 3000 en su navegador. Ejecutar ./gallery -h para obtener más ayuda de la CLI.
Ver dl.home-gallery.org/dist para otros binarios. P.ej. Últimos binarios para Linux, Mac o Windows.
La gallery.config.yml de configuración.config.yml se puede encontrar en el directorio actual para el ajuste fino. Consulte la sección Instalar en la documentación para obtener más información.
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
y Abra Localhost: 3000 en su navegador. Run gallery -h para obtener más ayuda de la CLI.
La configuración de la galería se puede encontrar en ./data/config/gallery.config.yml para un ajuste fino.
¿Quieres usar Docker Compose? Consulte la sección Instalar en la documentación para obtener más información.
Ver doc.home-gallery.org para la documentación general.
La "base de datos" completa se carga en el navegador. Mis 100.000 medios son de aproximadamente 100 MB Plain JSON y 12 MB comprimido JSON. El rendimiento es bastante bueno en el dispositivo móvil actual. Un usuario informó una configuración exitosa con más de 400,000 archivos multimedia. Más comentarios son bienvenidos.
HomeGallery tiene binarios previos a la construcción de Linux, macOS y Windows. Se pueden encontrar más opciones de descarga aquí.
Consulte la sección de instalación para su uso.
El objetivo de HomeGallery es utilizar las serividades menos públicas como sea posible debido a los datos confidenciales de la imagen privada. Intenta usar el servicio que se puede implementar local. Sin embargo, la configuración requiere conocimiento técnico y mantenimiento técnico. Se llaman los siguientes servicios:
Para las búsquedas inversas GEO (coordenadas GEO a Adess), HomeGallery consulta el servicio nominatim de OpenStreetMap. Solo se transmiten las coordenadas GEO.
Para las búsquedas de imágenes inversas (búsqueda de imágenes similares), detección de objetos y recoginación de la cara, HomeGallery utiliza su propia API pública en api.home-gallery.org . Esta API pública admite dispositivos de baja potencia, como el SOC Raspberry Pi y todas las imágenes de vista previa se envían a esta API pública de forma predeterminada. No se guardan imágenes ni datos de privacidad.
La API se puede configurar y ejecutar también localmente o como contenedor Docker. Consulte la sección de instalación para su uso.
HomeGallery se ejecuta en JavaScript Runtime NodeJs que es compatible con varias plataformas como Linux (también Raspberry PIS), Mac y Windows.
Para la mayoría de los casos, un entorno personalizado debe ser suficiente con
# 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
En algunos casos de Cornor también puede necesitar herramientas de compilación esenciales para compilar los enlaces de la biblioteca.
HomeGallery utiliza espacios de trabajo NPM con paquetes múltiples. Los scripts de NPM comunes son clean , build , test .
Para ejecutar solo un subconjunto de paquetes, puede usar la función de filtro de PNPM, por ejemplo, compilación solo módulo export-static y database :
npx pnpm -r --filter './*/{export-static,database}' build
Ejecutar pruebas unitarias desde paquetes específicos (a través de PNPM)
npx pnpm -r --filter './*/{query,events}' test
Ejecute pruebas E2E específicas (a través de medidor)
git clone https://github.com/xemle/home-gallery-e2e-data.git data
npm run test:e2e -- --tags dev
home-gallery-e2e-data contiene archivos de prueba utilizando GIT LFS.
Los datos de salida de prueba E2E se almacenan en el directorio /tmp/gallery-e2e . La última prueba de ejecución está en línea en el directorio latest-e2e-test dentro del directorio de trabajo HomeGallery. Consulte el cli.log y e2e.log (formato NDJSON) en cada directorio de prueba.
Crear paquete binario local desde una rama de funciones
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run
Cree un paquete nativo local que excluya binarios a través de NPM como Sharp, FFMPEG y FFProbe. Debe contener solo código JS que debería ejecutarse en todas partes. Requiere binarios externos VIPSThumbnail, FFMPEG y FFProbe en el entorno PATH para funcionar correctamente.
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run
Para restablecer el estado de desarrollo actual y comenzar de nuevo en cualquier comportamiento de error muy extraño, puede ejecutar:
rm -rf package-lock.json node_modules e2e/node_modules packages/*/node_modules
npm install && npm run clean && npm run build