SSD Nodes Learn 🎉 VPS desde $4.99/mês
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-07

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.

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

free -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.env

Edite .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 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 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.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 (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.gz

Depois, 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 -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. 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.