Solução da comunidade

Adicionar uma biblioteca de fotografias externa ao Immich no ZimaOS

A ZimaOS user wanted Immich to recognize photos already stored on another drive. The confirmed community solution was to mount that host folder into immich-server and then add the container-side path as an Immich External Library.

Se já tiver fotografias noutro HDD ou SSD e quiser que o Immich no ZimaOS as indexe sem as mover para a biblioteca normal de carregamentos do Immich, utilize uma Biblioteca Externa. O tópico da comunidade de outubro de 2024 confirmou este fluxo de trabalho: primeiro, disponibilize a pasta do anfitrião ZimaOS ao contentor immich-server e, em seguida, adicione o caminho correspondente do lado do contentor na Administração do Immich.

Isto é diferente de alterar o armazenamento principal de carregamentos do Immich. Uma resposta posterior no mesmo tópico perguntou se o disco externo poderia tornar-se a única localização para todos os carregamentos futuros do Immich, mas essa questão não foi resolvida no tópico de origem. A documentação atual do Immich trata estes casos como dois fluxos de trabalho separados: Bibliotecas Externas para ficheiros existentes e UPLOAD_LOCATION/caminhos de armazenamento personalizados para carregamentos geridos pelo Immich.

O que o tópico original resolveu efetivamente

O autor original queria que o Immich reconhecesse fotografias armazenadas fora da localização predefinida. Mais tarde, comunicou que teve sucesso com esta sequência:

  1. Abra as definições do Immich no ZimaOS.
  2. Abra o serviço immich-server.
  3. Adicione a pasta do anfitrião ZimaOS como volume do Docker.
  4. Utilize um caminho do lado do contentor, como /home/user/photos1.
  5. Abra a Administração do Immich.
  6. Crie uma Biblioteca Externa e adicione o mesmo caminho do lado do contentor.

Um utilizador posterior confirmou explicitamente que esta solução funcionou.

O caminho do anfitrião e o caminho do Immich são diferentes

O conceito de mapeamento do Docker é:

Pasta do anfitrião ZimaOS → pasta do contentor Immich

Por exemplo:

/media/Photos:/home/user/photos1:ro

O Immich não analisa diretamente o caminho do anfitrião ZimaOS. Só pode analisar o caminho visível dentro do respetivo contentor:

/home/user/photos1

Utilizar o modo só de leitura para arquivos de fotografias existentes

A solução original da comunidade utilizava :ro. A documentação atual do Immich continua a recomendar montagens só de leitura quando o Immich deve apenas indexar os ficheiros:

/media/Photos:/home/user/photos1:ro

O modo só de leitura impede o Immich de eliminar ficheiros ou de escrever metadados sidecar na pasta de origem.

Documentação atual das Bibliotecas Externas do Immich

Criar a Biblioteca Externa no Immich

Depois de a montagem existir, abra o Immich com uma conta de administrador e aceda à secção Bibliotecas Externas. Crie uma biblioteca, selecione o respetivo proprietário e adicione o caminho do contentor:

/home/user/photos1

Depois, execute uma análise. O Immich deverá começar a indexar as fotografias e a criar miniaturas e tarefas de metadados.

Verificar se o caminho existe dentro do contentor

Se o Immich rejeitar o caminho da biblioteca, confirme que a montagem está visível para immich-server. O problema central do tópico de origem não era simplesmente escolher uma pasta na interface do Immich; primeiro, o Docker tinha de disponibilizar essa pasta dentro do contentor.

A documentação atual do Immich explicita o mesmo requisito: o caminho montado tem de existir dentro do contentor antes de poder ser adicionado como Biblioteca Externa.

Não copie cegamente o passo histórico do separador Base de Dados

A publicação de origem de 2024 também indicava adicionar o mesmo caminho no separador Base de Dados do Immich. Atualmente, essa instrução deve ser seguida com cautela.

A versão atual do Immich separa:

  • armazenamento de fotografias/vídeos através de UPLOAD_LOCATION ou de montagens bind de bibliotecas externas;
  • Armazenamento da base de dados PostgreSQL através de DB_DATA_LOCATION.

O local da base de dados não é o mesmo que o local da biblioteca de fotografias. Não mapeie uma pasta de fotografias arbitrária para o PostgreSQL apenas porque o pacote antigo do ZimaOS apresentava um separador de serviço da base de dados.

Biblioteca externa vs. armazenamento principal do Immich

Objetivo Utilize
Indexar fotografias já armazenadas noutro local Biblioteca externa
Fazer com que os futuros carregamentos do Immich fiquem noutra unidade Alterar o local de carregamento/armazenamento do Immich

O tópico de origem confirmou o primeiro caso, não o segundo.

Se quiser que a unidade externa seja o armazenamento principal do Immich

O Docker Compose atual do Immich utiliza:

UPLOAD_LOCATION=./library

e monta esse caminho do anfitrião em /data dentro de immich-server. A documentação atual sobre locais personalizados explica como mover os dados geridos pelo Immich para outro local de armazenamento do anfitrião, preservando os caminhos esperados dentro do contentor.

Locais de armazenamento personalizados do Immich

Se já existirem fotografias importantes no Immich, faça uma cópia de segurança tanto da base de dados como do sistema de ficheiros antes de alterar o local de armazenamento principal.

Mantenha separados os requisitos da base de dados

A base de dados PostgreSQL tem requisitos de armazenamento diferentes dos ficheiros de fotografias. A documentação atual do Immich indica que as partilhas de rede não são suportadas para o caminho da base de dados e que a base de dados deve utilizar um sistema de ficheiros local adequado.

Não mova o PostgreSQL simplesmente por estar a adicionar uma biblioteca de fotografias externa.

As bibliotecas externas continuam a precisar de cópias de segurança independentes

O Immich não copia os recursos originais da biblioteca externa para o seu armazenamento normal gerido. Os originais permanecem no disco externo. Se esses ficheiros forem removidos do disco, o Immich pode marcá-los como em falta ou removê-los da biblioteca ativa após uma nova análise.

Faça uma cópia de segurança independente da unidade de origem. Os metadados da base de dados do Immich não substituem uma cópia de segurança do sistema de ficheiros.

Lista de verificação da Biblioteca externa do Immich no ZimaOS

  1. Identifique a pasta existente do anfitrião no ZimaOS que contém as fotografias.
  2. Abra as definições atuais da aplicação/contentor do Immich.
  3. Monte a pasta do anfitrião em immich-server.
  4. Prefira :ro para um arquivo que o Immich não deve modificar.
  5. Use um caminho claro do contentor, como /home/user/photos1 ou /mnt/media/photos.
  6. Abra Administração do Immich → Bibliotecas externas.
  7. Adicione o caminho exato do lado do contentor.
  8. Execute uma análise da biblioteca.
  9. Não confunda isto com mover o armazenamento principal do Immich UPLOAD_LOCATION.
  10. Faça uma cópia de segurança da unidade externa separadamente.

Perguntas frequentes sobre o armazenamento externo do Immich

A solução original funcionou?

Sim. O autor original relatou sucesso e, mais tarde, outro utilizador confirmou que o mesmo procedimento funcionou consigo.

A Biblioteca externa torna a unidade externa o local principal de carregamento do Immich?

Não. As Bibliotecas externas indexam ficheiros que já existem fora do armazenamento de carregamentos gerido pelo Immich.

Que caminho devo introduzir no Immich?

Use o caminho do lado do contentor definido no volume do Docker, não o caminho do anfitrião no ZimaOS.

Sim, quando a pasta externa é um arquivo que o Immich deve apenas ler. Remova o modo só de leitura apenas se quiser intencionalmente que o Immich modifique ou elimine ficheiros aí.