SSD Nodes Learn Hosting plans →
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-27

PhotoPrism ou Immich: qual servidor de fotos escolher?

Compare PhotoPrism e Immich por RAM, apps móveis, mapas e backups. Veja os limites reais e os comandos Docker para executar cada servidor num VPS.

PhotoPrism vs Immich: 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 do rolo da câmara, e a linha cronológica apresentada é familiar para quem deixa de usar uma galeria de 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 numa unidade 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 porque 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. É esse modelo 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 permite uma curadoria forte da 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 que está num disco.

Apetite de hardware: o Immich exige mais

Os valores mínimos de memória documentados são muito diferentes, e num VPS pequeno este é normalmente o fator decisivo.

ChartDocumented memory requirement, as of July 2026
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. Também indica 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. Indica ainda que a quantidade de RAM deve corresponder ao 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 o CLIP (contrastive language image pretraining) e os modelos de deteção facial. Numa máquina com 2 GB, o kernel termina esse contentor. No Docker, este encerramento aparece como código 137, que indica uma terminação por falta de memória. Os modelos TensorFlow do PhotoPrism são menores e o programa degrada o funcionamento 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 especifica que o servidor deve ter pelo menos 4 GB de swap. Adicione-o antes de instalar qualquer um dos dois.

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 -h

free -h deve agora apresentar uma linha Swap: que mostre 4.0Gi. Se apresentar 0B, então swapon falhou, normalmente porque o sistema de ficheiros não suporta fallocate. Nesse caso, sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 é a alternativa. Os limites de memória dos contentores também são importantes. Definir limites de memória no Docker Compose permite impedir que um serviço com um consumo elevado derrube a máquina inteira.

Há outro requisito que causa problemas. A base de dados Postgres do Immich tem de ficar num sistema de ficheiros Unix normal, com propriedade e permissões reais, em armazenamento local. Nunca a coloque 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 do 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.env

Edite .env antes de iniciar qualquer serviço. UPLOAD_LOCATION é o local onde ficarão os seus originais, e DB_PASSWORD tem de 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. Depois, inicie o serviço.

docker compose up -d
docker compose ps

A interface web responde na porta 2283. A primeira conta registada nessa página torna-se a conta de administrador. Aceda à página e registe-a imediatamente, em vez de deixar uma instância aberta na Internet.

O PhotoPrism fornece um único ficheiro Compose que já inclui o MariaDB.

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

Abra 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 photoprism

O PhotoPrism responde na porta 2342 com o utilizador admin. Nenhuma das aplicações deve ser exposta diretamente. Coloque um reverse proxy com TLS (transport layer security) à frente, seguindo o mesmo modelo de configuração usado para um Nextcloud autoalojado com Docker, TLS e cópias de segurança. Se esse VPS acabar por alojar mais do que fotografias, aplique a mesma contenção a todos os serviços que adicionar, porque um relay RustDesk autoalojado precisa apenas das suas duas próprias portas acessíveis e de mais nada.

Qual deles tem o melhor aplicativo para celular

É neste ponto que os dois projetos mais divergem, e é por isso que 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 qualquer aplicativo. O aplicativo requer um endpoint HTTPS, portanto o reverse proxy não é opcional se pretende utilizá-lo fora de casa.

O PhotoPrism não tem um aplicativo nativo oficial. Disponibiliza uma progressive web app, que pode adicionar ao ecrã inicial a partir do navegador, e documenta o WebDAV (web distributed authoring and versioning) como forma de sincronizar a partir de um celular. O projeto recomenda para isso um aplicativo de terceiros chamado PhotoSync, 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 seu próprio cliente.

Se o requisito for fazer backup automático do celular de vários membros da família, a decisão está tomada. Immich.

O que o machine learning oferece na prática

O Immich faz pesquisa semântica na sua biblioteca com o CLIP. Assim, uma consulta como "bicicleta vermelha na neve" encontra fotografias que nunca foram etiquetadas por ninguém. Também deteta e agrupa rostos, além de identificar duplicados. A indexação de uma importação grande com o CPU pode demorar horas em segundo plano. Isto é normal e não requer uma GPU (graphics processing unit).

O PhotoPrism classifica imagens com o TensorFlow em etiquetas, deteta rostos e agrupa-os por pessoa. Também lê os metadados de localização para criar um mapa de locais. O mapa é a funcionalidade que leva as pessoas a continuar a usar o produto: uma biblioteca indexada pelo local onde as fotografias foram tiradas oferece uma forma realmente diferente de navegar por vinte anos de fotografias. A mesma ideia funciona com outras coleções multimédia, e a interface de videoclube dos anos 90 do Halcyon para o Jellyfin é a versão cinematográfica dessa abordagem, com navegação por prateleira em vez de lista. O reconhecimento facial está incluído na edição Community gratuita. As subscrições pagas Essentials e Plus acrescentam extras como camadas de mapa mais completas, mais funções de utilizador e uma interface de gestão de utilizadores, a partir de alguns euros por mês em julho de 2026.

O Immich é totalmente gratuito e não tem um nível pago. O núcleo do PhotoPrism é gratuito, com extras pagos opcionais.

Backups determine whether you keep your data

Um servidor de fotografias sem cópias de segurança fica a uma falha de disco de perder tudo o que uma família tem. Ambas as aplicações precisam de duas cópias de segurança: a base de dados e os ficheiros.

No Immich, faça um dump da base de dados a partir do contentor Postgres e copie a localização dos uploads.

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

Depois, faça uma cópia de segurança 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, mas isso pode consumir horas de CPU. Um dump da base 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 -f

Esse 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. Esta é uma vantagem importante para um arquivo que pretende conservar durante décadas.

Independentemente da opção escolhida, envie essas cópias de segurança para fora do servidor segundo um agendamento, utilizando cópias de segurança restic encriptadas e com deduplicação para armazenamento remoto. Uma cópia de segurança no mesmo disco que a biblioteca não é uma cópia de segurança. Configure o job para emitir um alerta quando falhar, porque uma cópia de segurança que deixou silenciosamente de ser executada em março parece exatamente igual a uma que foi executada na noite passada, até ao dia em que precisar dela; um servidor ntfy autoalojado enviará essa falha para o seu telemóvel ainda nessa noite.

Qual deles deve executar

Execute o Immich se as suas fotografias estiverem nos telemóveis, se mais de uma pessoa precisar de fazer uma cópia de segurança do rolo da câmara e se puder disponibilizar 6 GB de RAM ou mais ao servidor. É o mais próximo do Google Photos que pode alojar por conta própria, e a experiência móvel é o seu principal objetivo. O nosso guia passo a passo para instalar o Immich explica detalhadamente os encerramentos por falta de memória e as armadilhas das atualizações.

Execute o PhotoPrism se já tiver um arquivo de fotografias no disco, se valorizar mapas e metadados e quiser manter a sua própria estrutura de pastas, ou se o seu VPS tiver 4 GB de RAM e preferir uma biblioteca funcional a uma biblioteca que use swap. É a melhor ferramenta para organizar e selecionar fotografias e é mais adequada para hardware com poucos recursos.

Também é razoável executar ambos. O Immich trata da importação diária das fotografias dos telemóveis. Uma vez por ano, organiza as fotografias que pretende manter no arquivo e deixa o PhotoPrism indexá-lo. Não entram em conflito, porque o PhotoPrism lê pastas, enquanto o Immich gere o seu próprio armazenamento.

FAQ

O PhotoPrism e o Immich podem partilhar a mesma pasta de fotografias?

Não com segurança nos dois sentidos. O PhotoPrism lê uma pasta originals e grava ficheiros YAML auxiliares junto das imagens, enquanto o Immich espera controlar o conteúdo da localização dos 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 renomear recursos no PhotoPrism durante a indexação.

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 deixar a base de dados sem conseguir arrancar; por isso, 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 reduzir o risco.

Por que razão o contentor de machine learning do Immich está sempre a reiniciar?

Está a ser terminado por usar memória em excesso. Execute docker compose ps e procure o serviço de machine learning a terminar com o código 137, que 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 ele, mas o restante Immich continua a funcionar normalmente.

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 este suporta melhor uma elevada concorrência. O ficheiro compose fornecido 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?

Reserve mais 10 a 20 por cento acima do tamanho dos originais, independentemente da aplicação. Esse espaço 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.