Apps Self-Hosted

Docker e Docker Compose: a base do self-hosting moderno

Quase todo tutorial de self-hosting hoje começa com "suba o contêiner Docker". Se essa frase te trava, este guia é para você. Docker é a habilidade que torna o self-hosting fácil — e a ideia por trás dele é mais simples do que parece.

O problema que o Docker resolve

Instalar um app "na unha" no servidor é uma dor: ele precisa da versão certa de PHP, de tal biblioteca, de tal configuração — e isso conflita com outro app que quer versões diferentes. Você mexe numa coisa e quebra outra. É o clássico "na minha máquina funciona".

O Docker resolve empacotando cada app com tudo que ele precisa para rodar, isolado dos demais.

Os conceitos, sem jargão

Contêiner

Pense num contêiner como uma caixa isolada que já contém o app e todas as suas dependências, prontinho para rodar. Ele não "suja" o servidor nem briga com outros apps. Cada app vive na sua caixa.

Não é uma máquina virtual: o contêiner é muito mais leve e rápido, porque compartilha o núcleo do sistema em vez de emular um computador inteiro.

Imagem

A imagem é o "molde" do contêiner — o pacote pronto que você baixa (ex.: a imagem oficial do Nextcloud). A partir de uma imagem, você cria um ou vários contêineres.

Volume

Contêiner é descartável: se você apagar, os dados de dentro vão junto. O volume é onde você guarda os dados que precisam sobreviver (arquivos, banco de dados) fora do contêiner. Regra de ouro: dados importantes sempre em volumes.

Porta

O contêiner é isolado, então você mapeia portas para acessá-lo (ex.: a porta 8080 da VPS aponta para a porta interna do app).

Docker Compose: vários contêineres, um arquivo

A maioria dos apps precisa de mais de um contêiner: o Nextcloud quer um banco de dados e um Redis; o n8n quer um PostgreSQL. Subir cada um na mão é chato.

O Docker Compose resolve com um único arquivo, o docker-compose.yml, onde você descreve todos os serviços, volumes e portas. Um comando sobe tudo junto:

services:
  app:
    image: nome-da-imagem:latest
    ports:
      - "8080:80"
    volumes:
      - dados:/caminho/no/container
    environment:
      - VARIAVEL=valor
    restart: unless-stopped

volumes:
  dados:

E para colocar tudo no ar:

docker compose up -d

O -d roda em segundo plano. Pronto: o app está no ar. É por isso que quase todo tutorial de self-hosting entrega um docker-compose.yml — você só cola, ajusta e sobe.

Os comandos que você vai usar 90% do tempo

docker compose up -d        # sobe os serviços (segundo plano)
docker compose down         # derruba os serviços
docker compose ps           # lista o que está rodando
docker compose logs -f app  # acompanha os logs de um serviço
docker compose pull         # baixa versões novas das imagens
docker compose up -d        # aplica a atualização

Atualizar um app self-hosted normalmente é isto: pull + up -d. Simples assim.

Uma interface gráfica ajuda (Portainer)

Não curte terminal? O Portainer é um painel web para gerenciar contêineres, imagens e volumes pelo navegador — ótimo para visualizar o que está rodando e dar manutenção sem decorar comandos.

Por que isso pede uma VPS (e não hospedagem compartilhada)

Docker precisa de acesso root e controle do sistema — coisas que a hospedagem compartilhada não dá. É exatamente para isso que serve uma VPS: seu ambiente, seu root, seus contêineres. Instalar o Docker é um comando; a partir daí, o mundo do self-hosting se abre.

A fundação está pronta

Com Docker e Docker Compose você instala praticamente qualquer app self-hosted em minutos. Tudo que você precisa é uma VPS com root:

👉 Ver planos de VPS

Agora escolha o primeiro app: Nextcloud, Vaultwarden, n8n ou veja o guia de self-hosting.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS