Priviy
self-hostedINFO

Immich com Docker Compose: a instalação são dois ficheiros, e o que decide o destino das suas fotos vem depois

A instalação oficial do Immich são dois downloads e um comando. O que importa é o que configura antes de o lançar: os dois locais que contêm as suas fotos e a sua base de dados, um dos quais não pode viver numa partilha de rede, e o aviso de cópias de segurança que o projeto coloca na sua própria página inicial.

Por Eric Gerard · Editor · Priviy6 min de leituraFoto via Pexels

O Immich é a resposta auto-alojada ao Google Fotos: o seu servidor, os seus discos, uma aplicação móvel que faz cópia do seu rolo de câmara. A instalação lê-se como se demorasse cinco minutos, e mecanicamente é assim mesmo. As decisões que determinarão se daqui a três anos ainda tem as suas fotos tomam-se todas no ficheiro que edita antes de a lançar.

O que é realmente a instalação oficial

Dois downloads e um comando. A documentação dá-os tal como estão:

wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Repare na assimetria dessa segunda linha: o ficheiro é publicado com o nome example.env e é guardado por si como .env. Depois, uma vez preenchidas as variáveis, toda a instalação se resume a docker compose up -d.

Se esse último comando falhar, a documentação nomeia a causa habitual antes de ter de a procurar. Avisa que, se obtiver um erro do tipo unknown shorthand flag: 'd' in -d, provavelmente não tem a versão certa do Docker, e que a forma correta é docker compose com um espaço em vez do antigo binário docker-compose. Assinala à parte uma segunda armadilha de versão: um erro que indica can't set healthcheck.start_interval as feature require Docker Engine v25 or later, que sugere contornar comentando essa linha.

São dois desencontros de versão, não erros no seu ficheiro. Nenhum deles merece uma noite.

Os dois locais que decidem a sua capacidade de recuperar

O ficheiro compose é curto, mas duas das suas variáveis não são definições intermutáveis. São a resposta a « o que devo salvaguardar » e « o que se vai corromper sozinho ».

UPLOAD_LOCATION é descrita na documentação como o local onde os seus ficheiros carregados são armazenados, com a indicação de aí colocar o local da sua preferência para conservar esses dados. É a pasta que conterá cada foto que carregar. Escolhê-la de ânimo leve é a forma mais comum de acabar com uma fototeca colocada fora de todas as cópias de segurança que já tem a correr.

DB_DATA_LOCATION é a base de dados, e a documentação associa-lhe uma restrição firme: as partilhas de rede não são suportadas para a base de dados. Não é uma recomendação de desempenho. Os motores de base de dados apoiam-se em garantias de bloqueio e de ordem de escrita que os sistemas de ficheiros em rede dão de forma desigual, e o modo de falha costuma ser uma corrupção silenciosa descoberta semanas depois, não uma recusa em arrancar.

Na prática: a sua fototeca pode viver em armazenamento de rede se aceitar que fique mais lenta. A pasta da base de dados fica num disco local. E seja qual for a sua escolha para a primeira, anote-a, porque é o caminho que as suas cópias têm de incluir.

Uma prateleira de sala de servidores com um monte de transceptores SFP e conectores USB, e à frente uma etiqueta impressa onde se lê STORAGE ENGINEER.
Uma prateleira de sala de servidores com um monte de transceptores SFP e conectores USB, e à frente uma etiqueta impressa onde se lê STORAGE ENGINEER.

O aviso que o projeto coloca na sua própria página inicial

A maioria dos guias de auto-alojamento passa-o ao lado, por isso vale a pena citar o projeto em vez de o parafrasear. O repositório do Immich traz, logo no topo, esta linha: « Always follow 3-2-1 backup plan for your precious photos and videos! »

Esse aviso faz algo de preciso. Não diz que o software seja pouco fiável. Diz que alojar o seu próprio servidor de fotos não é em si uma cópia de segurança, e quem o escreveu sabe que os auto-alojadores acreditam habitualmente no contrário. Uma instância única numa máquina única detém exatamente uma cópia da sua fototeca. Um disco que cede, uma atualização atabalhoada, uma eliminação acidental ou um caminho mal escrito fá-la desaparecer, e não há nenhum fornecedor a quem a pedir.

O projeto tem licença AGPL-3.0, o que explica em parte que o possa auditar e executar. Isso não muda a aritmética de ter uma só cópia.

O que o auto-alojamento desloca, e o que não

O auto-alojamento é muitas vezes apresentado como a opção privada, e ponto. É mais exato, e mais útil, dizer que desloca a confiança em vez de a eliminar.

O que muda a sério: nenhuma empresa detém a sua fototeca, nenhum fornecedor pode ser obrigado legalmente a entregá-la, nenhuma condição de utilização muda nas suas costas e não há conta nenhuma para perder. Para muita gente é esse todo o sentido da coisa, e o ganho é real.

O que não muda por si só: a cifragem em repouso nos seus próprios discos, a segurança física da máquina, mantê-la atualizada e ter mais do que uma cópia. Tudo isso passa a ser o seu trabalho no momento em que o tira a um fornecedor. É essa a troca, e é razoável aceitá-la de forma consciente. É bem menos razoável aceitá-la por distração, por se ter suposto que auto-alojado queria dizer protegido.

Choix éditorial
4.5 / 5

Quer a fototeca privada sem administrar o servidor? pCloud vitalício + Crypto

Jurisdição suíça · Zero-knowledge com a opção Crypto · Pagamento único, sem atualizações a seguir nem base de dados a salvaguardar

Société suisse depuis 2013Satisfait ou remboursé 10jFree 10 GB
Voir l'offre

Escolher honestamente entre as duas

Auto-aloje o Immich se quiser as suas fotos em hardware que controla, se aceitar assumir as cópias de segurança e as atualizações, e se a manutenção lhe interessar em vez de lhe pesar daqui a oito meses.

Use um serviço gerido zero-knowledge se o que queria realmente era que nenhuma empresa pudesse ler as suas fotos, sem passar a ser a pessoa de piquete no dia em que o disco falhar. Esse resultado obtém-se sem servidor, e escolhê-lo não é uma cedência em matéria de privacidade: é uma repartição diferente do mesmo trabalho.

A única resposta que não sobrevive ao contacto com a realidade é uma instância auto-alojada única sem segunda cópia. É exatamente por isso que o projeto o diz ele próprio antes de instalar seja o que for.

Os comandos de instalação, a precisão de que o ficheiro de ambiente é publicado com o nome example.env, as descrições de UPLOAD_LOCATION e DB_DATA_LOCATION, a afirmação de que as partilhas de rede não são suportadas para a base de dados, e os dois erros de versão do Docker provêm da documentação oficial de instalação do Immich com Docker Compose. A linha sobre a cópia 3-2-1 e a licença AGPL-3.0 provêm da página inicial do repositório do projeto. As citações ficam na língua original. Ambas as fontes foram consultadas no momento da redação; verifique na versão que está a instalar, já que o ficheiro compose é distribuído com cada release. As ligações comerciais levam o atributo rel="sponsored nofollow"; pode aplicar-se uma comissão de afiliação, sem custo adicional para si.

Guias relacionados

Perguntas frequentes

O que é preciso descarregar realmente para instalar o Immich?
Dois ficheiros, publicados com cada versão. A documentação dá os comandos tal como estão: wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml e wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env. Repare que o segundo é publicado com o nome example.env e que o guarda como .env. Depois de preenchidas as variáveis, toda a instalação cabe num comando: docker compose up -d.
Porque falha o meu comando docker compose com um erro de opção desconhecida?
Está quase de certeza a usar o antigo binário autónomo em vez do plugin. A documentação trata este caso de forma explícita: se obtiver um erro do tipo unknown shorthand flag 'd' in -d, provavelmente não tem a versão certa do Docker, e o comando correto é docker compose, com um espaço, e não docker-compose com hífen. Menciona à parte uma segunda armadilha de versão: um erro a indicar que healthcheck.start_interval exige o Docker Engine v25 ou posterior, que sugere contornar comentando essa linha.
Onde acabam realmente as minhas fotos no disco?
Onde apontar UPLOAD_LOCATION, que a documentação descreve como o local onde os seus ficheiros carregados são armazenados, pedindo-lhe que indique aí o local da sua preferência para conservar esses dados. É a linha de maior consequência do ficheiro, porque decide qual a pasta que terá de incluir nas cópias de segurança. Defina-a deliberadamente para um caminho que já protege, em vez de aceitar um valor por omissão e descobrir mais tarde que a sua fototeca vive num sítio para onde as suas cópias nunca olham.
Posso pôr a base de dados no meu NAS?
A base de dados não. A documentação di-lo sem rodeios para DB_DATA_LOCATION: as partilhas de rede não são suportadas para a base de dados. As bases de dados precisam de bloqueio de ficheiros de baixo nível que os sistemas de ficheiros em rede não garantem de forma fiável, e ignorá-lo costuma produzir corrupção em vez de um erro limpo. A sua fototeca pode viver em armazenamento de rede se aceitar o custo em desempenho; a pasta da base de dados fica num disco local.
Basta auto-alojar o Immich para pôr as fotos a salvo?
O próprio projeto diz que não, e di-lo na sua própria página inicial: siga sempre um plano de cópias 3-2-1 para as suas fotos e vídeos preciosos. Executar o servidor você mesmo muda quem detém a sua fototeca, não cria uma segunda cópia dela. Uma instância auto-alojada numa só máquina está a uma falha de disco, a uma atualização mal feita ou a uma eliminação acidental da perda total, que é exatamente o que a regra 3-2-1 existe para evitar.
Choix éditorial
4.5 / 5

Obter pCloud

Garantia de devolução de dinheiro em 10 dias

Société suisse depuis 2013Satisfait ou remboursé 10jFree 10 GB
Voir l'offre