20 pontos por davespark 2026-02-01 | Ainda não há comentários. | Compartilhar no WhatsApp

Construí um sistema de gerenciamento de fotos extremamente robusto usando o Immich para salvar alterações como álbuns, descrições, localização, data e favoritos no próprio EXIF dos arquivos de foto, permitindo backup automático com Synology NAS + Dropbox mesmo sem banco de dados.

Filosofia principal (3 prioridades)

  1. Preserve (preservar): precisa poder ser mantido sem problemas por décadas no futuro
  2. Unify (unificar): reunir as fotos de vários celulares do casal em uma única biblioteca
  3. Experience (experiência): fotos e vídeos devem permitir reviver as memórias com vividez

Contexto e abordagem anterior

  • Vem evoluindo seu fluxo de gerenciamento de fotos há mais de 20 anos
  • Armazena todos os metadados (álbuns, descrições, favoritos etc.) apenas no EXIF → sem dependência de DB externo → ideal para preservação de longo prazo
  • Armazenamento principal: Synology NAS
  • Ferramenta de organização: Elodie, ferramenta CLI open source desenvolvida por ele ao longo de mais de 10 anos (https://github.com/jmathai/elodie)
  • No passado, usava o Google Photos como visualizador somente leitura → tinha bons recursos de descoberta, busca e relembrar memórias, mas abandonou após a mudança de política em 2019 + questões de privacidade
  • Synology Photos era limitado demais em recursos, então precisava de um substituto

Adoção do Immich (fim de 2025 ~ 2026)

  • O recurso de biblioteca externa (external library) do Immich, que permite montar pastas somente leitura, foi decisivo
  • Começou como um visualizador somente leitura e depois fez a transição completa para uma ferramenta de organização
  • Problema: o comportamento padrão do Immich salva metadados no banco Postgres ou em sidecars XMP → o autor rejeitou ambos
    → desenvolveu uma abordagem personalizada para embutir todas as alterações diretamente no EXIF dos arquivos de foto

Principais detalhes da implementação

  • Usa a API do Immich → ao adicionar álbuns, escrever descrições ou marcar favoritos na UI → isso é gravado no EXIF
  • Integração com o Elodie: o Elodie move arquivos para pastas de álbuns + atualiza o EXIF → o Immich interpreta isso como exclusão + criação de arquivo → ocorre inconsistência temporária
    → solução: adotou uma abordagem de eventually consistent (consistência eventual) → aceita propagação com atraso
  • Não usa sidecars XMP (considera frágeis)
  • Resultado: o Immich oferece experiência de descoberta, busca e relembrar memórias no nível do Google Photos + preservação de todas as informações apenas com EXIF

Ferramentas usadas & backup

  • Immich (uso de biblioteca externa + API)
  • Elodie (mapeamento do sistema de arquivos e mecanismo central de organização)
  • Synology NAS → armazenamento principal
  • Dropbox → backup automático (mudanças no EXIF → mudança no próprio arquivo → sincronização automática)
  • Plugin personalizado: https://github.com/jmathai/immich-exif (versão simples)
  • Acompanhamento do progresso: https://github.com/jmathai/elodie/issues/496

Vantagens

  • Preservação completa apenas com EXIF, sem banco de dados → sem problemas daqui a 10 ou 20 anos
  • Recupera uma UI rica e uma experiência de descoberta como a do Google Photos
  • Resolve questões de privacidade e dependência
  • Backup duplo com NAS + Dropbox maximiza a confiabilidade

Desvantagens & realidade

  • Nível de dificuldade de configuração muito alto (o autor levou 2 semanas; mesmo com ajuda de IA não foi fácil)
  • Há muitos pontos de conflito com o design padrão do Immich, então customização é essencial
  • Como usa um modelo de atualização com atraso, e não em tempo real, não oferece atualização perfeita em tempo real

Tom da conclusão

O autor avalia que conseguiu, sem abrir mão nem um pouco da filosofia de longa data de “confiar apenas no EXIF”, fazer o upgrade do Immich de visualizador somente leitura para uma plataforma completa de organização + descoberta.
Como a implementação técnica detalhada será publicada separadamente, vale acompanhar a issue no GitHub ou o blog dele se você tiver interesse.

Ainda não há comentários.

Ainda não há comentários.