SSD Nodes Learn 8GB de RAM — $66/ano
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-02

PhotoPrism ou Immich: qual servidor de fotos escolher?

Compare PhotoPrism e Immich com números reais de RAM, apps móveis, mapas e comandos de backup Docker para escolher o melhor servidor no seu VPS.

PhotoPrism vs Immich: a resposta curta

PhotoPrism vs Immich é uma escolha entre duas tarefas diferentes, não entre duas versões do mesmo produto. Immich substitui o Google Photos: um aplicativo de celular faz backup automático do rolo da câmera, e a linha do tempo obtida é familiar para quem está deixando uma galeria de celular. PhotoPrism organiza uma biblioteca de fotos que você já tem: ele indexa pastas de arquivos no disco, lê os metadados, coloca as fotos em um mapa e mantém os arquivos exatamente onde estavam.

Escolha o Immich se o problema for "meu celular está cheio e quero deixar de usar o Google Photos". Escolha o PhotoPrism se o problema for "tenho 400 GB de fotos em uma unidade e não consigo encontrar nada nelas". Ambos são de código aberto, ambos são executados como contêineres Docker em um VPS comum e ambos indexam e pesquisam sua biblioteca sem enviar nada a terceiros.

A divisão de filosofia e por que ela decide tudo

O Immich é responsável pelos arquivos. Você aponta o aplicativo para um local de upload, o aplicativo do celular ou o carregador web envia os originais, e o Immich os armazena em seu próprio caminho, usando sua própria nomenclatura. O banco de dados contém as informações oficiais sobre álbuns, rostos e pesquisas. Esse design proporciona uma boa experiência no celular, porque o servidor sempre conhece o estado completo de cada recurso.

O PhotoPrism lê os arquivos. Você monta uma pasta originals que já controla, e o PhotoPrism cria um índice sobre ela. A estrutura dos seus diretórios continua sendo sua. Se você remover o PhotoPrism amanhã, as fotos continuarão nas mesmas pastas, com os mesmos nomes, e o PhotoPrism terá gravado arquivos YAML auxiliares ao lado delas, descrevendo o que aprendeu.

Essa única diferença explica grande parte do restante. O Immich oferece suporte móvel forte porque controla a ingestão. O PhotoPrism oferece uma curadoria forte da biblioteca porque nunca entra em conflito com a estrutura existente. O Immich é a melhor opção para uma família cujas fotos ficam nos celulares. O PhotoPrism é a melhor opção para um arquivo que fica em um disco.

Requisitos de hardware: o Immich exige mais

Os requisitos mínimos de memória documentados são muito diferentes, e em um VPS pequeno esse 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 2 núcleos de CPU. Ele também informa que a quantidade de RAM deve corresponder à quantidade de núcleos.

A diferença é real e vem do container de machine learning. O Immich executa os modelos em um serviço immich-machine-learning separado, que carrega o CLIP (contrastive language image pretraining) e os modelos de detecção facial na memória. Em uma máquina com 2 GB, o kernel encerra esse container. Ele sai com o código 137, que é a forma como um encerramento por falta de memória aparece no Docker. Os modelos TensorFlow do PhotoPrism são menores, e o aplicativo reduz os recursos em vez de ser encerrado. Em máquinas com 1 GB ou menos, ele desativa a conversão RAW e o TensorFlow em vez de falhar.

Os dois projetos exigem swap. A documentação do PhotoPrism informa explicitamente 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 agora deve exibir uma linha Swap: mostrando 4.0Gi. Se exibir 0B, então swapon falhou, geralmente porque o sistema de arquivos não oferece suporte a fallocate, e sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 é usado como alternativa. Os limites de memória dos containers também são importantes aqui. definir limites de memória no Docker Compose é a forma de impedir que um serviço que consome muita memória derrube toda a máquina.

Há mais um requisito que costuma causar problemas. O banco de dados Postgres do Immich deve ficar em um sistema de arquivos Unix normal, com propriedade e permissões reais, em armazenamento local, nunca em um compartilhamento de rede. O PhotoPrism informa o mesmo requisito para seus arquivos de banco de dados. Nenhum dos dois aplicativos deve ser executado com o banco de dados em um armazenamento de objetos montado.

Como instalar cada um

As duas instalações usam um arquivo Compose fornecido pelo fabricante e um comando. Configure primeiro o Docker Engine e o plugin Compose, conforme explicado em nosso guia do Docker Compose em um VPS.

O Immich publica seu arquivo Compose e um arquivo de ambiente de exemplo a 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 coisa. UPLOAD_LOCATION é o local onde os arquivos originais ficarão, e DB_PASSWORD deve ser alterado em relação ao valor padrão usando somente os caracteres A-Za-z0-9, porque caracteres especiais interrompem a string de conexão. Em seguida, inicie o serviço.

docker compose up -d
docker compose ps

A interface web responde na porta 2283. A primeira conta registrada nessa página se torna a administradora. Portanto, acesse a página e faça o registro imediatamente, em vez de deixar uma instância aberta na internet.

O PhotoPrism fornece um arquivo 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 da primeira inicialização. A documentação é clara: o aplicativo inicia com a senha inicial definida nesse arquivo, o comprimento mínimo é de 8 caracteres, e o valor padrão nunca deve ser usado em um servidor público. Configure também o volume originals para a pasta que contém suas fotos.

docker compose up -d
docker compose logs -f photoprism

O PhotoPrism responde na porta 2342 com o usuário admin. Nenhum dos dois aplicativos deve ser exposto diretamente. Coloque um proxy reverso com TLS (segurança da camada de transporte) na frente, seguindo o mesmo modelo usado para um Nextcloud auto-hospedado com Docker, TLS e backups.

Qual deles tem o melhor aplicativo para celular

É aqui que os dois projetos mais se diferenciam, e esse é o motivo pelo qual a maioria das pessoas acaba escolhendo o Immich.

O Immich oferece aplicativos oficiais para Android e iOS. Eles fazem backup em segundo plano do rolo da câmera, o que significa que as novas fotos saem do celular sem que ninguém precise abrir o aplicativo. O aplicativo exige um endpoint HTTPS, portanto o proxy reverso é obrigatório se você pretende usá-lo fora de casa.

O PhotoPrism não tem um aplicativo nativo oficial. Ele oferece um aplicativo Web progressivo, que você adiciona à tela inicial pelo navegador, e documenta o WebDAV (autoria e versionamento distribuídos pela Web) como forma de sincronizar a partir de um celular. O projeto recomenda um aplicativo de terceiros chamado PhotoSync para isso, apontado para o diretório /import/ ou /originals/ via WebDAV. Funciona, mas é um aplicativo pago de terceiros fazendo uma tarefa que o Immich executa dentro do próprio cliente.

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

O que o machine learning realmente oferece

O Immich faz pesquisa semântica na sua biblioteca usando CLIP. Assim, uma consulta como "bicicleta vermelha na neve" encontra fotos que nunca receberam tags. Ele também detecta e agrupa rostos, além de detectar duplicatas. A indexação de uma grande importação usando apenas a CPU é executada em segundo plano durante horas. Isso é normal e não requer uma GPU (unidade de processamento gráfico).

O PhotoPrism classifica imagens com TensorFlow em rótulos, detecta rostos e os agrupa em pessoas. Ele também lê metadados de localização para criar um mapa de lugares. O mapa é o recurso que faz as pessoas continuarem usando o produto: uma biblioteca indexada pelo local onde os eventos ocorreram oferece uma forma realmente diferente de navegar por vinte anos de fotos. O reconhecimento facial está incluído na edição Community gratuita. As assinaturas pagas Essentials e Plus adicionam recursos como camadas de mapa mais completas, mais funções de usuário e uma interface de gerenciamento de usuários. Em julho de 2026, os preços começam em alguns euros por mês.

O Immich é totalmente gratuito e não tem plano pago. O núcleo do PhotoPrism é gratuito, com recursos pagos opcionais.

Os backups determinam se você poderá manter tudo

Um servidor de fotos sem backup está a uma falha de disco de perder tudo o que uma família possui. Ambos os aplicativos precisam de dois backups: o banco de dados e os arquivos.

No Immich, faça o dump do banco de dados a partir do contêiner Postgres e copie o local de 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, sozinho, não restaura nada, pois contém apenas metadados.

No PhotoPrism, o índice tem seu próprio comando.

docker compose exec photoprism photoprism backup -i -f

Isso grava um dump SQL em storage/backup/. Depois, copie a pasta originals e a pasta storage. Como o PhotoPrism também grava arquivos YAML sidecar que descrevem cada foto, um índice perdido pode ser reconstruído apenas a partir dos arquivos. Isso é uma vantagem real para um arquivo que você planeja manter por décadas.

Independentemente da sua escolha, envie esses backups para fora do servidor regularmente usando backups restic criptografados, com deduplicação, em armazenamento remoto. Um backup armazenado no mesmo disco que a biblioteca não é um backup.

Qual você deve executar

Execute 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. Ele é a opção mais próxima do Google Photos que você pode hospedar por conta própria, e a experiência móvel é o principal objetivo. 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 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 pastas, ou se seu VPS tiver 4 GB de RAM e você preferir uma biblioteca funcional a uma biblioteca que use swap. Ele é a melhor ferramenta para organizar a coleção e exige menos de um hardware limitado.

Executar os dois também é uma opção razoável. O Immich cuida da importação diária das fotos do telefone. Uma vez por ano, você organiza as fotos que deseja manter no arquivo e deixa o PhotoPrism indexá-lo. Eles não entram em conflito, porque o PhotoPrism lê pastas, enquanto o Immich gerencia as próprias pastas.

FAQ

PhotoPrism e Immich podem compartilhar a mesma pasta de fotos?

Não com segurança nos dois sentidos. O PhotoPrism lê uma pasta originals e grava arquivos YAML auxiliares ao lado das imagens, enquanto o Immich espera ser o responsável pelo conteúdo do local de upload. Você pode apontar o PhotoPrism para uma cópia somente leitura da pasta library do Immich para navegá-la, mas não permita que os dois aplicativos gerenciem os mesmos arquivos, porque o modelo de armazenamento do Immich pode mover ou renomear ativos enquanto o PhotoPrism os indexa.

O Immich é estável o suficiente para ser a única cópia das minhas fotos?

Nenhum aplicativo auto-hospedado deve manter a única cópia de qualquer coisa. O Immich lança alterações incompatíveis com frequência, e um docker compose pull descuidado pode deixar o banco de dados impossibilitado de iniciar. Portanto, fixe sua versão e leia as notas de versão antes de atualizar. Mantenha os arquivos originais em backup fora do servidor para manter o risco baixo.

Por que o container de machine learning do Immich continua reiniciando?

Ele está sendo encerrado por usar memória demais. Execute docker compose ps e procure o serviço de machine learning encerrando com o código 137, que indica a ação do kernel out of memory killer. Adicione swap ou defina um limite de memória para o container, fazendo com que ele seja limitado em vez de encerrado. Em uma máquina com 4 GB, você também pode desativar completamente o machine learning. A pesquisa deixará de funcionar sem ele, mas o restante do Immich continuará funcionando normalmente.

O PhotoPrism precisa do MariaDB ou o SQLite é suficiente?

O SQLite funciona e é adequado para uma biblioteca pessoal, mas o PhotoPrism limita-se a quatro workers ao usá-lo. A documentação recomenda mudar para o MariaDB porque ele lida melhor com alta simultaneidade. O arquivo compose fornecido pelo projeto já inclui o MariaDB, portanto o caminho recomendado também é o padrão.

Quanto espaço em disco devo reservar além do tamanho da minha biblioteca?

Adicione de 10 a 20 por cento ao tamanho dos arquivos originais, para qualquer um dos aplicativos. Isso cobre miniaturas geradas e visualizações de vídeo transcodificadas. Uma coleção de 200 GB requer aproximadamente um volume de 300 GB quando você reserva espaço para o banco de dados, a cópia de backup local e o crescimento.