> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.streethosting.com.br/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# VPS para Devs: a stack ideal

# VPS para desenvolvedores: stack ideal para projetos web modernos

Se você é desenvolvedor e quer controle total sobre sua infraestrutura sem a complexidade (e custo) de serviços gerenciados, um VPS bem configurado é a melhor escolha. Este guia mostra a stack que funciona para a maioria dos projetos web modernos.

## A stack recomendada

```
Git repo → CI/CD → Docker build → VPS
                                   ├── Reverse Proxy (Nginx/Caddy) + TLS
                                   ├── App containers
                                   ├── Database container
                                   ├── Monitoramento (Netdata)
                                   └── Backup automatizado
```

### Por que essa stack funciona
* **Docker** padroniza ambientes — o que roda em dev roda em produção.
* **Proxy reverso** centraliza SSL, roteamento e compressão.
* **CI/CD** automatiza deploy — push no Git = aplicação atualizada.
* **Monitoramento** previne problemas antes que virem downtime.
* **Backup** garante que você sempre pode voltar atrás.

## Componente 1: Docker + Compose

Base de toda a stack. Permite rodar múltiplas aplicações no mesmo VPS com isolamento.

Guia de instalação: [Docker no VPS](/pt/article/instalar-docker-no-vps-com-docker-compose).

### Exemplo de estrutura multi-projeto

```
/opt/
├── projeto-a/
│   ├── docker-compose.yml
│   ├── .env
│   └── app/
├── projeto-b/
│   ├── docker-compose.yml
│   ├── .env
│   └── app/
└── infra/
    ├── docker-compose.yml  (Nginx, monitoramento)
    └── nginx/
```

## Componente 2: proxy reverso com TLS automático

### Opção A: Nginx + Let's Encrypt (mais controle)

Configuração manual, mas com controle total de performance e caching. Tutorial completo no artigo de [Deploy Node.js](/pt/article/deploy-nodejs-em-vps).

### Opção B: Caddy (mais simples)

HTTPS automático sem configuração extra:

```yaml
# docker-compose.yml
services:
  caddy:
    image: caddy:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
    restart: unless-stopped

volumes:
  caddy_data:
```

```
# Caddyfile
app-a.seudominio.com.br {
    reverse_proxy app-a:3000
}

app-b.seudominio.com.br {
    reverse_proxy app-b:8080
}
```

Caddy obtém e renova certificados SSL automaticamente.

## Componente 3: CI/CD automatizado

### GitHub Actions (mais popular)

Crie `.github/workflows/deploy.yml`:

```yaml
name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.VPS_IP }}
          username: ${{ secrets.VPS_USER }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /opt/projeto-a
            git pull origin main
            docker compose pull
            docker compose up -d --build
```

Resultado: toda vez que você faz push na branch `main`, o deploy acontece automaticamente.

## Componente 4: monitoramento

[Netdata](/pt/article/monitoramento-vps-com-netdata) cobre CPU, RAM, disco, rede e containers Docker — tudo sem configuração complexa.

Para monitoramento de uptime externo (verificar se o site está no ar de fora), considere Uptime Kuma (self-hosted) ou serviços como UptimeRobot.

## Componente 5: backup

Siga a estratégia 3-2-1: [Backup automático de VPS](/pt/article/backup-automatico-vps).

Para stacks Docker, faça backup dos volumes:

```bash
docker run --rm -v projeto_pgdata:/data -v /backup:/backup alpine tar czf /backup/pgdata-$(date +%Y%m%d).tar.gz /data
```

## Boas práticas para devs em VPS

### Ambiente igual em dev e produção
Use o mesmo `docker-compose.yml` (com overrides para dev) para garantir paridade.

### Versionamento de infraestrutura
Tudo que é configurável deve estar no Git: Compose, Nginx configs, scripts de backup, CI/CD.

### Segredos fora do Git
Use `.env` e adicione ao `.gitignore`. Para CI/CD, use secrets do GitHub/GitLab.

### Um serviço por container
Evite colocar aplicação e banco no mesmo container. Separar facilita monitoramento, backup e escala.

## Perguntas frequentes (FAQ)

### VPS ou PaaS (Heroku, Railway, Render)?
PaaS é mais simples para começar, mas mais caro e menos flexível conforme o projeto cresce. VPS oferece controle total e custo previsível — ideal para quem quer aprender e ter liberdade.

### Quanto custa essa stack inteira?
O custo é basicamente o do VPS. Docker, Nginx, Caddy, Netdata e CI/CD são gratuitos. Na StreetHosting, um VPS Ryzen com 4-8 GB de RAM é suficiente para rodar múltiplos projetos.

### Preciso saber DevOps para usar VPS?
Não precisa ser especialista, mas aprender o básico de Linux, Docker e SSH é um investimento que paga dividendos para toda a carreira. Nossos guias na central de ajuda cobrem cada passo.

## Próximos passos

* Instale Docker: [Docker no VPS](/pt/article/instalar-docker-no-vps-com-docker-compose)
* Faça deploy real: [Deploy Node.js](/pt/article/deploy-nodejs-em-vps)
* Publique APIs: [Hospedar API com Docker](/pt/article/hospedar-api-com-docker-no-vps)
