Tropic Host

Immich em um VPS: configure sua própria nuvem para fotos e vídeos

7 min de leitura
Tropic
Immich em um VPS: configure sua própria nuvem para fotos e vídeos

Language: pt

Immich: configure sua própria nuvem para fotos e vídeos em um VPS

Immich é um serviço auto-hospedado para armazenar e enviar fotos e vídeos automaticamente. Ele oferece aplicativos móveis, uma interface web, álbuns, busca inteligente e reconhecimento facial, mantendo a biblioteca no servidor que você escolher.

A seguir, veremos os requisitos do Immich, a instalação no Ubuntu com Docker Compose, a configuração de HTTPS, a conexão do celular e os backups externos.

Immich em seis passos

  1. Crie um VPS Linux com RAM e espaço em disco suficientes.
  2. Aponte um subdomínio, como photos.example.com, para o endereço IP do servidor.
  3. Instale o Docker e baixe a configuração oficial do Immich.
  4. Especifique os caminhos da biblioteca de mídia e do banco de dados e inicie os contêineres.
  5. Feche a porta interna e ative o HTTPS.
  6. Instale o aplicativo móvel e configure um backup externo.

O que é o Immich?

Immich é um aplicativo de código aberto para gerenciar sua própria biblioteca de fotos e vídeos. As fotos aparecem em uma linha do tempo, podem ser agrupadas em álbuns, encontradas pela busca e enviadas automaticamente do celular para o servidor.

A principal diferença em relação a um serviço convencional de fotos na nuvem é o controle sobre o lado do servidor. Os arquivos ficam no seu VPS ou servidor doméstico, mas o proprietário é responsável pelo espaço livre, atualizações, segurança e backups.

ParâmetroServiço de fotos na nuvemImmich
Onde os arquivos ficamNa infraestrutura do provedorNo seu servidor
ManutençãoFeita pelo provedorFeita pelo proprietário
CustosPlano baseado em armazenamentoVPS, espaço em disco e backups

O Immich não é um backup por si só. Se as fotos existirem apenas em um VPS, uma falha no disco ou uma exclusão acidental ainda poderá destruir o arquivo.

Principais recursos do Immich

  • Envios automáticos. Os aplicativos para Android e iOS enviam fotos e vídeos dos álbuns selecionados. O Wi-Fi é usado por padrão, e os arquivos que já existem são ignorados com base no checksum.
  • Busca inteligente. O serviço pode pesquisar por pessoas, localização, data, câmera, texto em uma imagem e descrição do conteúdo. Os rostos são agrupados e depois podem receber nomes.
  • Álbuns e compartilhamento. O Immich oferece suporte a vários usuários, álbuns compartilhados, compartilhamento com parceiro e links públicos com senha e data de expiração.
  • Mapa e metadados. O Immich lê dados EXIF, mostra onde uma foto foi tirada, cria memórias e oferece favoritos, arquivo e bibliotecas externas.

O machine learning gera a maior carga de CPU e RAM durante a importação inicial. Depois que as miniaturas e os índices são gerados, o uso diário de recursos normalmente é menor.

Requisitos do servidor Immich

Os requisitos oficiais para as versões atuais são:

  • um sistema Linux ou semelhante ao Unix de 64 bits;
  • pelo menos 2 núcleos de CPU, com 4 recomendados;
  • pelo menos 6 GB de RAM, com 8 GB recomendados;
  • Docker Engine com o plugin docker compose;
  • um SSD local para o banco de dados PostgreSQL;
  • espaço para arquivos originais, miniaturas e vídeos transcodificados.

O Immich pode rodar em um servidor com 4 GB de RAM se os recursos de machine learning estiverem desativados. Para reconhecimento facial e busca inteligente, é melhor escolher 8 GB desde o início.

Miniaturas e arquivos transcodificados acrescentam em média 10–20% ao tamanho da biblioteca de mídia. Para um arquivo de 200 GB, reserve pelo menos 240–260 GB. O diretório do banco de dados DB_DATA_LOCATION deve ficar em um SSD local, não em uma unidade de rede.

Uma configuração inicial prática é 4 vCPUs, 8 GB de RAM, Ubuntu 24.04 LTS e um SSD com capacidade 20–30% maior que a biblioteca original. Uma placa de vídeo dedicada não é obrigatória, embora possa acelerar o processamento de um arquivo grande.

Como instalar o Immich em um VPS

Este exemplo usa o Ubuntu 24.04 e o subdomínio photos.example.com.

1. Configure o DNS e prepare o Ubuntu

Crie um registro DNS A apontando para o endereço IPv4 do VPS. Depois, conecte-se por SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Não feche a sessão SSH atual até verificar que uma nova conexão funciona.

2. Instale o Docker e o Docker Compose

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

Use especificamente o comando docker compose: o comando antigo docker-compose não é mais compatível com o projeto.

3. Baixe e configure o Immich

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

Abra o arquivo:

nano /opt/immich/.env

Altere os principais parâmetros:

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORD

Informe seu fuso horário. A senha do PostgreSQL deve conter letras latinas e números; o comando openssl rand -hex 24 gera um valor aleatório. Deixe as outras linhas como estão no arquivo example.env atual.

4. Feche a porta interna e inicie os contêineres

Em docker-compose.yml, encontre a porta do serviço immich-server:

ports:
  - '2283:2283'

Substitua por:

ports:
  - '127.0.0.1:2283:2283'

Agora a porta só pode ser acessada pelo próprio VPS. Inicie o serviço:

cd /opt/immich
docker compose up -d
docker compose ps

Para diagnóstico, use docker compose logs --tail=200.

5. Ative o HTTPS com o Caddy

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

O Caddy solicitará um certificado automaticamente se o DNS apontar para o VPS e as portas 80 e 443 estiverem acessíveis. O Immich precisa rodar na raiz de um domínio ou subdomínio; um endereço como example.com/immich não é compatível.

6. Crie um administrador e conecte o celular

Abra https://photos.example.com. O primeiro usuário cadastrado se torna administrador e pode criar contas adicionais.

Instale o Immich pela App Store ou pelo Google Play. Na tela de login, informe o endereço sem /api:

https://photos.example.com

Selecione os álbuns e ative o backup. A primeira importação pode demorar: o servidor gera miniaturas, reconhece rostos, indexa os dados da busca e processa os vídeos.

Atualizando o Immich

Antes de atualizar, leia as notas da versão, especialmente ao passar para uma nova versão principal:

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

Atualize primeiro os aplicativos móveis e depois o servidor. Reverter o banco de dados para uma versão mais antiga pode não ser compatível, a menos que existam instruções específicas.

Fazendo backup do Immich

O Immich cria dumps do PostgreSQL automaticamente, mas eles contêm apenas o banco de dados e os metadados, não as fotos e os vídeos. Para uma recuperação completa, salve:

  • todo o diretório /srv/immich-data;
  • /opt/immich/.env e docker-compose.yml;
  • a configuração do Caddy.

Uma cópia no mesmo VPS não protege contra falha do disco ou exclusão do servidor. Envie os dados para outro servidor, NAS ou armazenamento de objetos e siga a estratégia de backup 3-2-1. Teste periodicamente uma restauração em vez de verificar apenas se os arquivos de backup existem.

Qual VPS escolher para o Immich?

Para usar plenamente o reconhecimento facial e a busca inteligente, é razoável escolher um VPS com pelo menos 4 vCPUs e 8 GB de RAM. Calcule o tamanho do disco com base na biblioteca de mídia, deixando espaço adicional para miniaturas, vídeos e o crescimento do arquivo.

Um VPS Linux da tropic.host com endereço IP estático e armazenamento SSD é adequado para esta tarefa. Você pode começar com uma configuração de 8 GB de RAM e aumentar os recursos conforme a biblioteca cresce. Mantenha o banco de dados PostgreSQL em um disco local rápido e o backup fora deste VPS.

Um VPS é conveniente para acesso ininterrupto de qualquer rede. Para um arquivo de vários terabytes, um servidor doméstico pode ser mais barato, mas você precisará fornecer energia, acesso externo e redundância por conta própria.

Limitações do Immich

O auto-hospedagem não garante confiabilidade. Uma senha fraca, a porta 2283 exposta, contêineres desatualizados ou a falta de um backup externo criam risco de perda de dados.

O Immich também não é uma cópia exata do Google Photos ou do iCloud: os recursos de edição e sincronização em segundo plano são diferentes, e a velocidade da análise depende do hardware. Antes de mover seu único arquivo, teste o serviço com uma biblioteca pequena.

Conclusão

O Immich permite criar sua própria galeria de fotos com envios pelo celular, álbuns, reconhecimento facial, busca e compartilhamento. Para a versão atual, é melhor preparar um VPS Linux com 4 núcleos, 8 GB de RAM e um SSD com pelo menos 20–30% de capacidade livre.

Depois da instalação, configure HTTPS, atualizações e um backup externo do diretório de mídia junto com o banco de dados. É o backup — e não o auto-hospedagem por si só — que protege as fotos contra a perda.

FAQ

O Immich é gratuito?

O servidor Immich é de código aberto e pode funcionar sem uma assinatura obrigatória. Ainda assim, você paga pelo VPS, domínio, espaço em disco e backups.

De quanta RAM o Immich precisa?

O mínimo oficial é 6 GB de RAM, enquanto 8 GB são recomendados. Com 4 GB, será necessário desativar o machine learning.

Posso instalar o Immich sem um domínio?

Tecnicamente, sim, mas para acesso permanente pelo celular é melhor usar um domínio e HTTPS. Isso protege a autenticação e as transferências de arquivos.

O Immich substitui um backup de fotos?

Não. Copie a biblioteca de mídia e o banco de dados separadamente para outro dispositivo ou local.

Posso migrar um arquivo de fotos existente?

Sim. Os arquivos podem ser enviados pela interface web ou pela CLI, ou um diretório pode ser conectado como uma biblioteca externa. Faça uma cópia dos dados de origem antes de uma importação em grande escala.