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

# Instalacao com Docker

> Passo a passo oficial para subir o ExclusiveDay completo via pasta deploy.

## O que sobe na stack

A pasta `deploy` sobe os seguintes servicos:

* `traefik` (proxy e TLS com Let's Encrypt)
* `postgres`
* `redis`
* `rabbitmq`
* `minio`
* `backend`
* `channel`
* `frontend`
* `transcricao`

## Pre-requisitos

* Docker + Docker Compose v2.
* DNS tipo A apontando para o host (quando usar dominio publico).
* Portas `80` e `443` liberadas.

## Caminho recomendado (instalador)

Na raiz do projeto `C:\Users\guilh\crm`:

```powershell theme={null}
.\scripts\install-docker.ps1
```

No Linux/macOS/WSL:

```bash theme={null}
chmod +x scripts/install-docker.sh
./scripts/install-docker.sh
```

O instalador gera `deploy/.env` e pode executar `docker compose up -d --build`.

## Caminho manual

```bash theme={null}
cd deploy
cp .env.example .env
docker compose up -d --build
```

## Variaveis obrigatorias mais importantes

No arquivo `deploy/.env`:

* Dominios e TLS: `DOMAIN_FRONTEND`, `DOMAIN_BACKEND`, `DOMAIN_CHANNEL`, `DOMAIN_TRANSCRICAO`, `DOMAIN_STORAGE`, `DOMAIN_MINIO_CONSOLE`, `ACME_EMAIL`.
* Banco: `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_DB`.
* RabbitMQ: `RABBITMQ_USER`, `RABBITMQ_PASS`, `RABBITMQ_URI_INTERNAL`.
* Filas de event bus: `RABBITMQ_QUEUE_NAME_BACKEND`, `RABBITMQ_QUEUE_NAME_CHANNEL`.
* Redis: `REDIS_URI`, `REDIS_URI_MSG_CONNECTION`, `REDIS_URI_ACK` (no Docker use `redis://redis:6379`).
* MinIO/S3: `MINIO_ROOT_USER`, `MINIO_ROOT_PASSWORD`, `S3_BUCKET`, `S3_PUBLIC_BASE_URL`.
* URLs publicas: `BACKEND_URL`, `FRONTEND_URL`, `REACT_APP_BACKEND_URL`, `REACT_APP_CHANNEL_URL`.

## Primeiro acesso

Depois de subir os containers:

1. Execute migrations e seeds (veja a pagina `migrations-e-seeds`).
2. Acesse o frontend (`DOMAIN_FRONTEND`).
3. Faça login com o usuario admin seed.

## Observacoes de producao

* O compose define filas distintas para backend e channel, evitando conflito no event bus.
* Para debug local por porta, use `deploy/docker-compose.ports.yml`.
* No MinIO, crie o bucket definido em `S3_BUCKET` se ainda nao existir.
