Immich: Alternativa Open Source ao Google Photos

10 min de leitura Cloud Storage Self-Hosted
Immich: Alternativa Open Source ao Google Photos

Imigrar de uma plataforma proprietária como o Google Fotos para um ambiente self-hosted é uma das decisões mais impactantes que um administrador de sistemas ou entusiasta de dados pode tomar. A preocupação com a privacidade, a escalabilidade e o controle total sobre as próprias memórias digitais impulsionam a busca por soluções robustas. Neste tutorial, abordaremos como implementar o Immich, uma poderosa alternativa ao Google Fotos, projetada para rodar em sua própria infraestrutura de nuvem privada.

O Immich se destaca não apenas pela interface familiar e intuitiva, mas também pelo desempenho excepcional na indexação de imagens e vídeos. Diferente de soluções tradicionais como Nextcloud ou OwnCloud, que são excelentes repositórios de arquivos gerais, o Immich é otimizado especificamente para galerias fotográficas, oferecendo recursos avançados de reconhecimento facial, mapeamento geográfico e visualização rápida, mesmo em ambientes com milhares de gigabytes de mídia.

1. Requisitos de Infraestrutura

Antes de iniciar a instalação, é crucial entender os requisitos técnicos para garantir uma experiência fluida. O Immich é uma aplicação moderna baseada em container, o que facilita a implantação, mas exige recursos adequados, especialmente durante a fase de processamento inicial das imagens.

  • Servidor: Uma VPS Linux (Ubuntu 22.04 LTS ou Debian 12 recomendados) com acesso root ou privilégios de sudo.
  • Processador: Um CPU moderno com suporte a instruções AVX é recomendado, especialmente se você planeja usar o reconhecimento facial via machine learning.
  • Memória RAM: Mínimo de 4GB para o sistema operacional e containers. Recomendamos 8GB ou mais para lidar com o banco de dados PostgreSQL e o serviço de processamento de imagem simultaneamente.
  • Armazenamento: Espaço em disco suficiente para armazenar suas fotos. O SSD é altamente recomendado para reduzir a latência na leitura das metadados e thumbnailing.
  • Rede: Acesso externo estável com portas 80 (HTTP) ou 443 (HTTPS) abertas, caso você queira acessar a galeria fora da sua rede local.

Se você já possui uma infraestrutura com Nextcloud, Seafile ou outros serviços, o Immich pode coexistir harmoniosamente. A vantagem do self-hosting é a capacidade de isolar aplicações específicas para fins específicos, mantendo a modularidade e a segurança.

2. Preparação do Ambiente Linux

A instalação começa com a atualização do sistema operacional e a instalação das dependências necessárias para rodar o Docker e o Docker Compose, que são os pilares da arquitetura do Immich.

Primeiro, atualize o índice dos pacotes e instale as ferramentas básicas de gerenciamento:

sudo apt update
sudo apt upgrade -y
sudo apt install curl git ca-certificates gnupg lsb-release -y

Agora, proceda com a instalação do Docker Engine. A maneira mais segura e recomendada é usar o repositório oficial da Docker:

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Após adicionar o repositório, instale o Docker e seus componentes complementares:

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

Verifique se o Docker está rodando corretamente:

sudo systemctl status docker

Se a saída indicar que o serviço está ativo e em execução, você pode prosseguir. Para evitar precisar digitar sudo antes de cada comando do Docker no futuro, adicione seu usuário ao grupo docker:

sudo usermod -aG docker $USER

Lembre-se de sair e entrar novamente na sessão ou reiniciar o servidor para que as alterações de grupo tenham efeito.

3. Configurando o Immich com Docker Compose

O Immich recomenda fortemente a instalação via Docker Compose, pois gerencia as dependências complexas entre o serviço web, o backend API, o worker de processamento e o banco de dados PostgreSQL.

Crie um diretório dedicado para sua instalação:

mkdir -p ~/immich && cd ~/immich

Baixe o arquivo docker-compose.yml oficial. Este arquivo orquestra a criação de todos os containers necessários:

wget https://raw.githubusercontent.com/immich-app/immich/master/docker/docker-compose.yml

Abrir este arquivo em um editor de texto como o nano ou vim é essencial para personalizar as variáveis de ambiente, especialmente o banco de dados:

nano docker-compose.yml

Dentro do arquivo, localize a seção services: postgres-db: e altere as variáveis POSTGRES_PASSWORD, POSTGRES_USER e POSTGRES_DB. Defina senhas fortes e únicas. Por exemplo:

environment:
  POSTGRES_DB: immich
  POSTGRES_USER: immich_admin
  POSTGRES_PASSWORD: SuaSenhaMuitoForte123!

Além disso, defina o DB_HOSTNAME, DB_DATABASE_NAME, DB_USERNAME e DB_PASSWORD dentro da seção services: server: e services: web: para corresponderem às credenciais definidas acima.

Salve o arquivo e saia do editor. Agora, você está pronto para baixar as imagens dos containers e iniciar a aplicação:

docker compose up -d

O comando -d roda os containers em modo detached (background). Você pode monitorar o início da instalação com:

docker compose logs -f

4. Configuração de Segurança e Reverse Proxy

Embora o Immich esteja rodando, expor a porta 2283 diretamente na internet não é uma prática recomendada. A melhor abordagem para um ambiente production é utilizar um Reverse Proxy, como o Nginx ou o Traefik, que gerencia o HTTPS e redireciona as requisições para o container do Immich.

Se você ainda não possui um proxy configurado, o uso de um certificado Let's Encrypt via Certbot é padrão na indústria. Supondo que você tenha um domínio apontando para o IP da sua VPS, instale o Nginx e o Certbot:

sudo apt install nginx certbot python3-certbot-nginx -y

Crie um bloco de servidor no Nginx. Crie o arquivo /etc/nginx/sites-available/immich.conf:

server {
    listen 80;
    server_name fotos.seudominio.com.br;

    location / {
        proxy_pass http://localhost:2283;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket support for real-time updates
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Habilite a configuração e teste o Nginx:

sudo ln -s /etc/nginx/sites-available/immich.conf /etc/nginx/sites-enabled/
sudo nginx -t

Se o teste for bem-sucedido, recarregue o serviço:

sudo systemctl reload nginx

Agora, obtenha o certificado SSL:

sudo certbot --nginx -d fotos.seudominio.com.br

O Certbot irá solicitar seu e-mail de contato e aceitar os termos de serviço. Ao finalizar, ele configurará automaticamente o Nginx para redirecionar HTTP para HTTPS e recarregará a configuração.

5. Primeiro Acesso e Upload de Mídia

Acesse https://fotos.seudominio.com.br em seu navegador. Você será recebido pela tela de login do Immich. A primeira vez que você acessar, o sistema solicitará a criação de uma conta de administrador.

Após fazer login, você será direcionado para a galeria principal. Se estiver vazio, clique no botão de upload ou arraste arquivos da sua máquina local para a janela do navegador.

O Immich possui um uploader web robusto que suporta uploads em lote e continua o upload mesmo se a conexão for perdida momentaneamente. Para dispositivos móveis, baixe os aplicativos oficiais (iOS e Android) e faça login com as mesmas credenciais.

6. Comparativo: Immich vs. Concorrentes

Para entender por que o Immich é uma escolha superior para muitos usuários em comparação a outras soluções de cloud storage privado, considere os seguintes pontos:

  • vs. Google Fotos: O Immich oferece privacidade total. Seus dados não são escaneados para treinamento de IA ou compartilhamento com terceiros. A interface é visualmente idêntica, facilitando a migração.
  • vs. Nextcloud/OwnCloud: Embora o Nextcloud tenha plugins de fotos (como Photos), ele é um sistema de arquivos genérico. O Immich utiliza uma estrutura de banco de dados otimizada para geolocalização e reconhecimento facial, resultando em tempos de carregamento significativamente mais rápidos para galerias grandes.
  • vs. Seafile: O Seafile foca na sincronização eficiente de arquivos corporativos e versionamento. Ele não possui recursos nativos de galeria fotográfica com mapa ou álbum inteligente como o Immich.

A escolha entre essas ferramentas depende do seu caso de uso. Se você precisa compartilhar documentos e gerenciar projetos, Nextcloud é imbatível. Se o foco principal é a preservação e organização de fotos pessoais, o Immich oferece uma experiência muito mais polida.

7. Manutenção e Backup

A responsabilidade pelo self-hosting inclui a manutenção proativa do sistema. O Immich facilita isso através de atualizações simples via Docker Compose.

Para atualizar para a versão mais recente, execute os seguintes comandos no diretório da instalação:

cd ~/immich
docker compose pull
docker compose up -d

O docker compose pull baixa as novas imagens e o up -d reinicia os containers com a nova versão, garantindo zero downtime durante a troca de imagens.

Backup é crítico. Você deve realizar backups regulares do banco de dados PostgreSQL e do diretório onde suas fotos originais estão armazenadas. O Immich armazena as fotos em um diretório especificado no arquivo docker-compose.yml, geralmente mapeado para um volume host como /usr/src/app/upload.

Um script de backup simples pode usar rsync ou tar para enviar cópias desses dados para outro local seguro, como um armazenamento S3 compatível ou outro servidor.

# Exemplo de comando para fazer backup do banco de dados
docker exec -t immich-postgres pg_dump -U immich_admin immich > backup.sql

Conclusão

Migrar para o Immich representa um passo firme em direção à soberania digital. Ao eliminar a dependência de gigantes da tecnologia e assumir o controle da sua galeria pessoal, você ganha velocidade, privacidade e flexibilidade. Com uma configuração inicial bem feita em sua VPS Linux, o Immich se estabelece como a solução definitiva para quem deseja uma verdadeira google photos alternativa, escalável e pronta para crescer junto com sua coleção de memórias.

A comunidade do Immich é ativa e em constante desenvolvimento, adicionando novos recursos de IA e melhorias de performance regularmente. Investir tempo na configuração inicial do seu ambiente self-hosted paga dividendos duradouros em tranquilidade e controle sobre seus dados mais valiosos.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000