> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assessiq.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy em VPS com Coolify

> Self-host o AssessIQ em um VPS usando Coolify como plataforma de deploy.

## Por que VPS + Coolify?

* **Custo fixo** — sem surpresas por volume de execuções
* **Múltiplos projetos** no mesmo servidor
* **Coolify** oferece interface de deploy similar ao Vercel, mas auto-hospedada
* Recomendado para quem já tem ou planeja contratar um VPS

***

## Requisitos de Servidor

Recomendado para rodar AssessIQ bem:

| Recurso | Mínimo        | Recomendado      |
| ------- | ------------- | ---------------- |
| CPU     | 2 vCPU        | 4 vCPU           |
| RAM     | 4 GB          | 8–16 GB          |
| Disco   | 20 GB SSD     | 40 GB SSD        |
| OS      | Ubuntu 22.04+ | Ubuntu 24.04 LTS |

***

## Instalar o Coolify

```bash theme={null}
# Via script oficial
curl -fsSL https://get.coolify.io | bash
```

Após a instalação, acesse o painel em `http://SEU-IP:8000`.

***

## Configurar o Projeto no Coolify

<Steps>
  <Step title="Adicionar Source">
    No painel do Coolify, vá em **Sources → Add** e conecte sua conta GitHub.
  </Step>

  <Step title="Criar novo serviço">
    Clique em **New Resource → Application** e selecione o repositório `plataforma-testes`.
  </Step>

  <Step title="Configurar build">
    * **Build Pack**: Nixpacks ou Docker (Coolify detecta Next.js automaticamente)
    * **Build Command**: `pnpm install && pnpm build`
    * **Start Command**: `pnpm start`
    * **Porta**: `3000`
  </Step>

  <Step title="Adicionar variáveis de ambiente">
    Na aba **Environment Variables**, adicione todas as variáveis do [guia](/docs/variaveis-de-ambiente).

    ```
    DATABASE_URL=postgresql://...
    AUTH_SECRET=...
    NEXTAUTH_URL=https://seudominio.com
    ...
    ```
  </Step>

  <Step title="Configurar domínio e SSL">
    Na aba **Domains**, adicione seu domínio. O Coolify provisiona o SSL via Let's Encrypt automaticamente usando Traefik como proxy reverso.
  </Step>

  <Step title="Deploy">
    Clique em **Deploy**. O Coolify clona o repositório, instala dependências, builda e inicia o container.
  </Step>
</Steps>

***

## Deploy Automático (Webhooks)

Configure o webhook do Coolify no seu repositório GitHub:

1. No Coolify, copie o **Webhook URL** do projeto
2. No GitHub → Settings → Webhooks → Add webhook
3. Cole o URL e selecione o evento `push`

A partir daí, todo push para a branch configurada disparará um novo deploy automaticamente.

***

## Executar Migrations no VPS

No terminal do servidor ou via SSH:

```bash theme={null}
# Dentro do container ou no servidor
cd /path/do/projeto
DATABASE_URL="postgresql://..." pnpm prisma migrate deploy
```

Ou configure um **Job** no Coolify para rodar o comando de migration antes do deploy.

***

## Dockerfile (Opcional)

Se preferir usar Docker diretamente sem o Coolify:

```dockerfile theme={null}
FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
RUN npm install -g pnpm && pnpm install && pnpm build

FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["pnpm", "start"]
```

```bash theme={null}
docker build -t assessiq .
docker run -p 3000:3000 --env-file .env.local assessiq
```
