Tropic Host

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

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

Immich: como instalar sua própria nuvem de fotos e vídeos em um VPS

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

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 o backup externo.

Immich em seis etapas

  1. Criar um VPS Linux com RAM e espaço em disco suficientes.
  2. Apontar um subdomínio, como photos.example.com, para o IP do servidor.
  3. Instalar o Docker e baixar a configuração oficial do Immich.
  4. Informar os caminhos da biblioteca de mídia e do banco de dados e iniciar os contêineres.
  5. Fechar a porta interna para acesso externo e configurar HTTPS.
  6. Instalar o aplicativo móvel e configurar um backup externo.

O que é o Immich

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

A principal diferença em relação a um serviço comum 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, pelas atualizações, pela segurança e pelos backups.

ParâmetroServiço de fotos na nuvemImmich
Onde os arquivos ficam armazenadosNa infraestrutura do provedorNo seu servidor
ManutençãoFeita pelo provedorFeita pelo proprietário
CustosPlano conforme o volumeVPS, disco e backups

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

Principais recursos do Immich

  • Envio automático. Os aplicativos para Android e iOS enviam fotos e vídeos dos álbuns selecionados. Por padrão, é usado o Wi-Fi, e os arquivos já existentes são ignorados com base na soma de verificação.
  • Busca inteligente. O serviço permite pesquisar por pessoas, local, data, câmera, texto presente na imagem e descrição do conteúdo. Os rostos são agrupados e depois podem receber nomes.
  • Álbuns e compartilhamento. Há 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 o local da captura, cria recordações e oferece suporte a favoritos, arquivo e bibliotecas externas.

O aprendizado de máquina exige especialmente CPU e RAM durante a primeira importação. Depois que as miniaturas e os índices são gerados, a carga cotidiana costuma diminuir.

Requisitos de servidor do Immich

Os requisitos oficiais das versões atuais são:

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

É possível executar o Immich em um servidor com 4 GB de RAM se os recursos de aprendizado de máquina forem desativados. Para reconhecimento facial e busca inteligente, é melhor escolher 8 GB desde o início.

As miniaturas e os arquivos transcodificados acrescentam, em média, 10–20% ao tamanho da biblioteca de mídia. Para um acervo 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, e não em uma unidade de rede.

Uma configuração inicial prática é composta por 4 vCPUs, 8 GB de RAM, Ubuntu 24.04 LTS e um SSD com 20–30% de capacidade além do tamanho da biblioteca original. Uma placa de vídeo dedicada não é obrigatória, mas pode acelerar o processamento de um acervo grande.

Como instalar o Immich em um VPS

O exemplo usa 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. Em seguida, 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 corretamente.

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

É necessário usar exatamente o comando docker compose: o 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 o seu fuso horário. A senha do PostgreSQL deve ser formada por letras latinas e números; o comando openssl rand -hex 24 gera um valor aleatório. Mantenha as demais linhas como aparecem no arquivo example.env atual.

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

No arquivo docker-compose.yml, localize 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. Configure 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á o certificado automaticamente se o DNS apontar para o VPS e as portas 80 e 443 estiverem acessíveis. O Immich deve funcionar na raiz de um domínio ou subdomínio; um endereço como example.com/immich não é compatível.

6. Crie o administrador e conecte o celular

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

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 levar algum tempo: o servidor cria miniaturas, reconhece rostos, indexa a busca e processa os vídeos.

Atualização do Immich

Antes de atualizar, leia as notas da versão, especialmente ao migrar 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 anterior pode não ser possível sem instruções específicas.

Backup do Immich

O Immich cria dumps do PostgreSQL automaticamente, mas eles contêm apenas o banco de dados e os metadados, e 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 de disco nem contra a exclusão do servidor. Envie os dados para outro servidor, um NAS ou um armazenamento de objetos e siga a estratégia de backup 3-2-1. Teste periodicamente a restauração, em vez de apenas verificar 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 e inclua uma margem para miniaturas, vídeos e crescimento do acervo.

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

Um VPS facilita o acesso 24 horas por dia a partir de qualquer rede. Para um acervo de vários terabytes, um servidor doméstico pode ser mais barato, mas será necessário cuidar por conta própria da energia, do acesso externo e da redundância.

Limitações do Immich

A hospedagem própria não garante confiabilidade. Uma senha fraca, a porta 2283 exposta, contêineres desatualizados ou a falta de 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 transferir sua única cópia do acervo, teste o serviço com uma biblioteca pequena.

Resumo

O Immich permite criar sua própria galeria de fotos com envio 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 adicional.

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 apenas o fato de o serviço ser auto-hospedado, que protege as fotos contra perdas.

FAQ

O Immich é gratuito?

O servidor Immich é distribuído como código aberto e pode funcionar sem assinatura obrigatória. Ainda assim, há custos com VPS, domínio, espaço em disco e backups.

Quanta RAM o Immich precisa?

O mínimo oficial é 6 GB de RAM, e o volume recomendado é 8 GB. Com 4 GB, será necessário desativar o aprendizado de máquina.

É possível instalar o Immich sem domínio?

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

O Immich substitui o backup das fotos?

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

É possível migrar um acervo de fotos existente?

Sim. Os arquivos podem ser enviados pela interface web ou pela CLI, ou um diretório pode ser conectado como biblioteca externa. Antes de uma importação em massa, faça uma cópia dos dados originais.