PhotoPrism ou Immich: qual servidor de fotos escolher?
Compare PhotoPrism e Immich em VPS: consumo mínimo de RAM, backup pelo celular, mapas e os comandos Docker exatos para proteger sua biblioteca.
PhotoPrism vs Immich: a resposta curta
PhotoPrism vs Immich é uma escolha entre duas funções diferentes, não entre duas versões do mesmo produto. O Immich substitui o Google Photos: uma aplicação no telemóvel faz automaticamente uma cópia de segurança das fotografias, e a linha cronológica resultante é familiar para quem deixa de usar uma galeria do telemóvel. O PhotoPrism organiza uma biblioteca de fotografias que já existe: indexa pastas de ficheiros no disco, lê os respetivos metadados, coloca as fotografias num mapa e mantém os ficheiros exatamente onde estavam.
Escolha o Immich se o problema for "o meu telemóvel está cheio e quero deixar de usar o Google Photos". Escolha o PhotoPrism se o problema for "tenho 400 GB de fotografias num disco e não consigo encontrar nada". Ambos são open source, ambos funcionam como contentores Docker num VPS normal e ambos indexam e pesquisam a sua biblioteca sem enviar dados para terceiros.
A divisão filosófica e por que ela decide tudo
O Immich é responsável pelos ficheiros. Indica-lhe uma localização de carregamento, a aplicação do telemóvel ou o carregador web envia os originais e o Immich armazena-os no seu próprio caminho, com a sua própria nomenclatura. A base de dados contém a informação de referência sobre álbuns, rostos e pesquisa. É essa arquitetura que proporciona uma boa experiência no telemóvel, porque o servidor conhece sempre o estado completo de cada recurso.
O PhotoPrism lê os ficheiros. Monta uma pasta originals que já controla e o PhotoPrism cria um índice sobre ela. A árvore de diretórios continua a ser sua. Se remover o PhotoPrism amanhã, as fotografias permanecem nas mesmas pastas, com os mesmos nomes, e o PhotoPrism terá escrito ficheiros YAML auxiliares junto delas, descrevendo o que identificou.
Essa única diferença explica a maior parte do resto. O Immich tem um suporte móvel forte porque controla a ingestão. O PhotoPrism é melhor para organizar uma biblioteca porque não entra em conflito com a estrutura existente. O Immich é a melhor opção para uma família cujas fotografias estão nos telemóveis. O PhotoPrism é a melhor opção para um arquivo armazenado num disco.
A exigência de hardware do Immich é maior
Os requisitos mínimos de memória documentados são muito diferentes, e num VPS pequeno este costuma ser o fator decisivo.
The data behind this chart
[
{
"label": "Immich",
"min_ram_gb": 6,
"recommended_ram_gb": 8
},
{
"label": "PhotoPrism",
"min_ram_gb": 3,
"recommended_ram_gb": 4
}
]O Immich documenta 6 GB de RAM como mínimo e 8 GB como recomendado. A documentação observa que uma máquina com 4 GB só consegue executá-lo com o machine learning desativado. O PhotoPrism documenta 3 GB de memória física e dois núcleos de CPU. Também indica que a quantidade de RAM deve acompanhar o número de núcleos.
A diferença é real e resulta do contentor de machine learning. O Immich executa os seus modelos num serviço immich-machine-learning separado, que carrega para a memória os modelos CLIP (contrastive language image pretraining) e de deteção facial. Numa máquina com 2 GB, o kernel termina esse contentor. No Docker, o processo aparece com o código de saída 137, que indica uma terminação por falta de memória. Os modelos TensorFlow do PhotoPrism são menores, e a aplicação degrada-se em vez de terminar: em máquinas com 1 GB ou menos, desativa a conversão RAW e o TensorFlow em vez de falhar.
Ambos os projetos recomendam swap. A documentação do PhotoPrism indica explicitamente que o servidor deve ter pelo menos 4 GB de swap. Adicione-o antes de instalar qualquer uma das aplicações.
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -hfree -h deve agora mostrar uma linha Swap: com 4.0Gi. Se mostrar 0B, então swapon falhou, normalmente porque o sistema de ficheiros não suporta fallocate, e sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 é utilizado como alternativa. Os limites de memória dos contentores também são importantes neste caso. Definir limites de memória no Docker Compose é a forma de impedir que um serviço com elevado consumo de memória derrube todo o servidor.
Há mais um requisito que costuma causar problemas. A base de dados Postgres do Immich deve estar num sistema de ficheiros Unix normal, com propriedade e permissões reais, em armazenamento local, nunca numa partilha de rede. O PhotoPrism indica o mesmo requisito para os seus ficheiros de base de dados. Nenhuma das aplicações deve executar com a base de dados num armazenamento de objetos montado.
Como instalar cada um
As duas instalações consistem num ficheiro Compose fornecido pelo fabricante e num comando. Configure primeiro o Docker Engine e o plugin Compose, conforme descrito no nosso guia sobre Docker Compose numa VPS.
O Immich publica o seu ficheiro Compose e um ficheiro de ambiente de exemplo em cada release.
sudo mkdir -p /opt/immich && cd /opt/immich
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.envEdite .env antes de iniciar qualquer componente. UPLOAD_LOCATION é o local onde ficarão os seus originais, e DB_PASSWORD deve ser alterado em relação ao valor predefinido usando apenas os caracteres A-Za-z0-9, porque os caracteres especiais quebram a string de ligação. Em seguida, inicie o serviço.
docker compose up -d
docker compose psA interface web responde na porta 2283. A primeira conta registada nessa página torna-se a conta de administrador. Aceda à página e faça o registo imediatamente, em vez de deixar uma instância aberta na Internet.
O PhotoPrism inclui um ficheiro Compose que já contém o MariaDB.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlAbra compose.yaml e altere PHOTOPRISM_ADMIN_PASSWORD antes do primeiro arranque. A documentação é clara sobre este ponto: a aplicação arranca com a palavra-passe inicial definida nesse ficheiro, o comprimento mínimo é de 8 caracteres e o valor predefinido nunca deve ser usado num servidor público. Defina também o volume originals para a pasta que contém as suas fotografias.
docker compose up -d
docker compose logs -f photoprismO PhotoPrism responde na porta 2342 com o utilizador admin. Nenhuma das aplicações deve ser exposta diretamente. Coloque um reverse proxy com TLS (segurança da camada de transporte) à frente, seguindo o mesmo modelo usado no Nextcloud autoalojado com Docker, TLS e cópias de segurança.
Qual deles tem o melhor aplicativo para celular
Esta é a área em que os dois projetos mais divergem e é o motivo pelo qual a maioria das pessoas acaba por escolher o Immich.
O Immich disponibiliza aplicativos oficiais para Android e iOS. Eles fazem backup em segundo plano do rolo da câmara, o que significa que as fotografias novas saem do celular sem ser necessário abrir nenhum aplicativo. O aplicativo requer um endpoint HTTPS, portanto o reverse proxy é obrigatório se pretender utilizá-lo fora de casa.
O PhotoPrism não tem um aplicativo nativo oficial. Disponibiliza uma progressive web app, que pode ser adicionada ao ecrã inicial pelo navegador, e documenta o WebDAV (web distributed authoring and versioning) como método de sincronização a partir de um celular. O projeto recomenda um aplicativo de terceiros chamado PhotoSync para essa finalidade, apontado para o diretório /import/ ou /originals/ através de WebDAV. Funciona, mas é um aplicativo pago de terceiros a executar uma tarefa que o Immich realiza dentro do próprio cliente.
Se o requisito for o backup automático do celular para vários membros da família, a decisão está tomada. Immich.
O que o machine learning oferece efetivamente
O Immich faz pesquisa semântica na sua biblioteca usando CLIP. Assim, uma consulta como "bicicleta vermelha na neve" encontra fotografias que nunca foram identificadas por etiquetas. Também deteta e agrupa rostos, além de detetar duplicados. A indexação de uma importação grande apenas com CPU é executada durante horas em segundo plano. Isto é normal e não requer uma GPU (unidade de processamento gráfico).
O PhotoPrism classifica imagens com TensorFlow usando etiquetas, deteta rostos e agrupa-os por pessoa. Também lê metadados de localização para criar um mapa de locais. O mapa é a funcionalidade que leva muitos utilizadores a continuar a usar o produto: uma biblioteca indexada pelo local onde as fotografias foram tiradas oferece uma forma genuinamente diferente de explorar vinte anos de fotografias. O reconhecimento facial está incluído na edição Community gratuita. As subscrições pagas Essentials e Plus adicionam funcionalidades como camadas de mapa mais completas, mais funções de utilizador e uma interface de gestão de utilizadores. Em julho de 2026, os preços começam em alguns euros por mês.
O Immich é totalmente gratuito e não tem um plano pago. O núcleo do PhotoPrism é gratuito, com funcionalidades pagas opcionais.
Os backups determinam se os dados serão preservados
Um servidor de fotografias sem backup pode perder tudo o que uma família tem com uma única falha de disco. Ambas as aplicações precisam de dois backups: o banco de dados e os ficheiros.
No Immich, faça o dump do banco de dados a partir do contentor Postgres e copie o local dos uploads.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzDepois, faça backup de UPLOAD_LOCATION. As pastas que contêm dados insubstituíveis são upload, library e profile. As pastas thumbs e encoded-video podem ser regeneradas, ao custo de horas de tempo de CPU. Um dump do banco de dados, por si só, não restaura nada, porque contém apenas metadados.
No PhotoPrism, o índice tem o seu próprio comando.
docker compose exec photoprism photoprism backup -i -fEsse comando grava um dump SQL em storage/backup/. Depois, copie a pasta originals e a pasta storage. Como o PhotoPrism também grava ficheiros YAML auxiliares que descrevem cada fotografia, é possível reconstruir um índice perdido apenas a partir dos ficheiros. Isto é uma vantagem real para um arquivo que pretende conservar durante décadas.
Independentemente da aplicação escolhida, envie esses backups para fora do servidor segundo um agendamento, usando backups restic encriptados e deduplicados para armazenamento remoto. Um backup que esteja no mesmo disco que a biblioteca não é um backup.
Qual deles você deve usar
Use o Immich se suas fotos estiverem em telefones, se mais de uma pessoa precisar fazer backup do rolo da câmera e se você puder fornecer ao servidor 6 GB de RAM ou mais. É a alternativa mais próxima do Google Photos que você pode hospedar por conta própria, e a experiência no celular é o seu principal diferencial. Nosso guia passo a passo de instalação do Immich explica detalhadamente os encerramentos por falta de memória e as armadilhas durante as atualizações.
Use o PhotoPrism se você já tiver um arquivo de fotos no disco, se der importância a mapas e metadados e quiser manter sua própria estrutura de diretórios, ou se o seu VPS tiver 4 GB de RAM e você preferir uma biblioteca funcional a uma biblioteca que usa swap. Ele é a melhor ferramenta de curadoria e exige menos de hardware modesto.
Usar os dois também é uma opção válida. O Immich cuida da importação diária das fotos do celular. Uma vez por ano, você organiza as fotos que deseja manter no seu arquivo e deixa o PhotoPrism indexá-las. Eles não entram em conflito, porque o PhotoPrism lê diretórios, enquanto o Immich mantém os seus próprios.
FAQ
O PhotoPrism e o Immich podem partilhar a mesma pasta de fotografias?
Não de forma segura nos dois sentidos. O PhotoPrism lê uma pasta originals e grava ficheiros YAML sidecar junto às imagens, enquanto o Immich espera gerir o conteúdo da sua localização de uploads. Pode apontar o PhotoPrism para uma cópia só de leitura da pasta library do Immich para a consultar, mas não permita que as duas aplicações gerem os mesmos ficheiros, porque o modelo de armazenamento do Immich pode mover ou mudar o nome dos recursos enquanto o PhotoPrism os indexa.
O Immich é suficientemente estável para guardar a única cópia das minhas fotografias?
Nenhuma aplicação autoalojada deve guardar a única cópia de qualquer ficheiro. O Immich lança frequentemente alterações incompatíveis, e um docker compose pull descuidado pode impedir o arranque da base de dados. Fixe a versão e leia as notas da versão antes de atualizar. Mantenha os ficheiros originais numa cópia de segurança fora do servidor para manter o risco reduzido.
Porque é que o contentor de machine learning do Immich reinicia continuamente?
Está a ser terminado por utilizar memória em excesso. Execute docker compose ps e procure o serviço de machine learning a terminar com o código 137. Esse código indica a ação do out-of-memory killer do kernel. Adicione swap, defina um limite de memória para o contentor para que seja limitado em vez de terminado, ou desative completamente o machine learning numa máquina com 4 GB. A pesquisa deixa de funcionar sem essa funcionalidade, mas o restante Immich continua a funcionar corretamente.
O PhotoPrism precisa de MariaDB ou SQLite é suficiente?
SQLite funciona e é adequado para uma biblioteca pessoal, mas o PhotoPrism limita-se a quatro workers quando o utiliza. A documentação recomenda mudar para MariaDB, porque esta gere melhor uma elevada concorrência. O ficheiro compose disponibilizado pelo projeto já inclui MariaDB, pelo que o caminho recomendado também é o predefinido.
Quanto espaço em disco devo reservar além do tamanho da minha biblioteca?
Adicione 10 a 20 por cento ao tamanho dos originais, independentemente da aplicação. Isto cobre as miniaturas geradas e as pré-visualizações de vídeo transcodificadas. Uma coleção de 200 GB precisa de aproximadamente um volume de 300 GB, depois de reservar espaço para a base de dados, a cópia de segurança local e o crescimento futuro.