O Home Gallery.org é uma galeria de web de código aberto auto-hospedado para navegar por fotos e vídeos pessoais com marcação, amigável para dispositivos móveis e descoberta de imagem e face a IA. Experimente a galeria de demonstração ou aproveite as imagens de comida!
NOTA: Este software é um projeto de tempo de PET/PET privado sem garantia. Faça perguntas sobre gitter.im ou discórdia.
Você gosta de HomeGallery? Ele resolve seu problema de mídia? Você gostaria de ajudar? Leia as diretrizes contribuintes e apoie este projeto por meio de qualquer suporte financeiro recorrente à minha Patreon.com/xemle ou suporte único à minha conta paypal.me/xemle. Agradeço antecipadamente.
MIT Licença
As etapas seguintes precisam ser executadas para usar o 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
e Localhost aberto: 3000 no seu navegador. Run ./gallery -h para obter mais ajuda da CLI.
Veja dl.home-gallery.org/dist para outros binários. Por exemplo. Últimos binários para Linux, Mac ou Windows.
O Configuration gallery.config.yml pode ser encontrado no diretório atual para ajuste fino. Consulte a seção Instalação na documentação para obter mais informações.
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
e Localhost aberto: 3000 no seu navegador. Run gallery -h para obter mais ajuda da CLI.
A configuração da galeria pode ser encontrada em ./data/config/gallery.config.yml para ajuste fino.
Quer usar o Docker Compose? Consulte a seção Instalação na documentação para obter mais informações.
Consulte docs.home-gallery.org para documentação geral.
O "banco de dados" completo é carregado no navegador. Meus 100.000 mídias são cerca de 100 MB JSON e JSON compactados de 12 MB. O desempenho é muito bom no dispositivo móvel atual. Um usuário relatou uma configuração bem -sucedida com mais de 400.000 arquivos de mídia. Feedback adicional é bem -vindo.
A HomeGallery possui binários pré -construídos para Linux, MacOS e Windows. Outras opções de download podem ser encontradas aqui.
Consulte a seção de instalação para uso.
O objetivo da HomeGallery é usar o mais serivca pública possível, devido a dados sensíveis de imagem privada. Ele tenta usar o serviço que pode ser implantado local. No entanto, a configuração requer conhecimento técnico e manutenção técnica. Os serviços a seguir são chamados:
Para pesquisas reversas geográficas (coordenadas geográficas do addess), o HomeGallery consulta o serviço Nominatim do OpenStreetMap. Somente as coordenadas GEO são transmitidas.
Para pesquisas de imagem reversa (pesquisa de imagem semelhante), detecção de objetos e reconhecimento de face, o HomeGallery usa a sua própria API pública em api.home-gallery.org . Esta API pública suporta dispositivos de baixa potência, como o SoC Raspberry Pi e todas as imagens de visualização, são enviadas para esta API pública por padrão. Nenhuma imagens ou dados de privacidade são mantidos.
A API pode ser configurada e executada também localmente ou como contêiner do docker. Consulte a seção de instalação para uso.
O HomeGallery é executado no JavaScript Runtime NodeJS, suportado por várias plataformas como Linux (também Raspberry PIs), Mac e Windows.
Para a maioria dos casos, um ambiente personalizado deve ser suficiente com
# 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
Em alguns casos de milor, você também pode precisar de ferramentas essenciais de construção para compilar ligações da biblioteca.
A HomeGallery usa espaços de trabalho NPM com pacotes multi. Os scripts npm comuns são clean , build , test .
Para executar apenas um subconjunto de pacotes, você pode usar o recurso de filtro do PNPM, por exemplo, construir apenas o módulo export-static e database :
npx pnpm -r --filter './*/{export-static,database}' build
Execute testes de unidade de pacotes específicos (via PNPM)
npx pnpm -r --filter './*/{query,events}' test
Execute testes E2E específicos (via medidor)
git clone https://github.com/xemle/home-gallery-e2e-data.git data
npm run test:e2e -- --tags dev
home-gallery-e2e-data contém arquivos de teste usando o Git LFS.
Os dados de saída do teste E2E são armazenados no diretório /tmp/gallery-e2e . A última execução de teste é simplificada no diretório latest-e2e-test no diretório de trabalho da HomeGallery. Verifique o cli.log e e2e.log (formato ndjson) em cada diretório de teste.
Crie um pacote binário local a partir de uma filial de recursos
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-x64 --no-before --no-run
Crie um pacote nativo local que exclui binários via NPM como Sharp, FFMPEG e FFProBe. Ele deve conter apenas o código JS que deve ser executado em todos os lugares. Requer binários externos VIPSTHUMBNOLAIL, FFMPEG e FFPROBE no ambiente PATH para funcionar corretamente.
node scripts/bundle.js --version=1.3 --snapshot=-feature-test --filter=linux-native --no-before --no-run
Para redefinir o estado de desenvolvimento atual e começar a fresco em qualquer comportamento de erro muito estranho, você pode executar:
rm -rf package-lock.json node_modules e2e/node_modules packages/*/node_modules
npm install && npm run clean && npm run build