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

# Instalação Local

> Configure o strattum.ai localmente com Docker Compose em menos de 15 minutos.

<Note>
  A instalação local é destinada a avaliação, desenvolvimento e testes. Para ambientes de produção, consulte os guias de instalação em [AWS](/getting-started/installation-aws), [GCP](/getting-started/installation-gcp) ou [Azure](/getting-started/installation-azure).
</Note>

## Pré-requisitos

Antes de começar, verifique se sua máquina atende aos requisitos:

| Requisito      | Mínimo       | Recomendado           |
| -------------- | ------------ | --------------------- |
| CPU            | 4 vCPU       | 8 vCPU                |
| RAM            | 16 GB        | 32 GB                 |
| Disco          | 50 GB livres | 100 GB livres         |
| Docker         | 24.x+        | Última versão estável |
| Docker Compose | v2.x+        | Última versão estável |

<Warning>
  Em Mac com chip Apple Silicon (M1/M2/M3), o Docker Desktop precisa estar com **Rosetta** habilitado para algumas imagens. Acesse Docker Desktop → Settings → General → "Use Rosetta for x86/amd64 emulation".
</Warning>

***

## Instalação

<Steps>
  <Step title="Clone o repositório de deploy">
    ```bash theme={null}
    git clone https://github.com/strattum-ai/strattum-deploy.git
    cd strattum-deploy/starter
    ```
  </Step>

  <Step title="Configure as variáveis de ambiente">
    Copie o arquivo de exemplo e preencha as variáveis obrigatórias:

    ```bash theme={null}
    cp .env.example .env
    ```

    Abra o `.env` e preencha no mínimo:

    ```bash theme={null}
    # Senha do PostgreSQL — use um valor forte
    POSTGRES_PASSWORD=minha-senha-segura

    # DSN completo (use a mesma senha acima)
    POSTGRES_DSN=postgresql://strattum:minha-senha-segura@strattum-postgres:5432/strattum

    # URL do Prefect (mesma senha)
    PREFECT_API_DATABASE_CONNECTION_URL=postgresql+asyncpg://strattum:minha-senha-segura@strattum-postgres:5432/prefect

    # Provider de LLM — necessário para Knowledge e para os agentes que executam Skills
    LLM_PROVIDER=openai
    LLM_API_KEY=sk-...
    LLM_MODEL=gpt-4o

    # Chave Anthropic — necessária para as funcionalidades de IA no Console [verificar: uso exato da chave]
    STRATTUM_ANTHROPIC_API_KEY=sk-ant-...

    # Domínio local (para desenvolvimento)
    TRAEFIK_DOMAIN=localhost
    TRAEFIK_ACME_EMAIL=seu@email.com

    # Zitadel (identity provider)
    ZITADEL_DOMAIN=localhost
    ZITADEL_MASTERKEY=uma-chave-de-exatamente-32-chars!

    # Registry — deixe vazio para build local
    REGISTRY=strattum
    ```

    <Tip>
      Para gerar valores seguros: `openssl rand -hex 32` (para senhas e secrets) e `openssl rand -base64 32 | head -c 32` (para o ZITADEL\_MASTERKEY).
    </Tip>
  </Step>

  <Step title="Crie a rede Docker e os diretórios obrigatórios">
    ```bash theme={null}
    # Rede interna compartilhada entre todos os serviços
    docker network create strattum-network

    # Diretório de secrets (credenciais de conectores)
    mkdir -p secrets
    echo '{}' > secrets/connector_registry.json
    touch secrets/gcp-sa.json

    # Diretório de configuração de conectores
    mkdir -p config/connectors
    mkdir -p config/memory
    ```
  </Step>

  <Step title="Suba a plataforma">
    ```bash theme={null}
    docker compose up -d
    ```

    O primeiro boot leva 2–5 minutos enquanto as imagens são baixadas e os serviços inicializam. Acompanhe o progresso:

    ```bash theme={null}
    docker compose logs -f
    ```

    Aguarde até ver as mensagens de saúde dos serviços principais.
  </Step>

  <Step title="Verifique a saúde dos serviços">
    Execute o script de healthcheck incluído:

    ```bash theme={null}
    ./healthcheck.sh
    ```

    Ou verifique manualmente cada API:

    ```bash theme={null}
    # Catalog API
    curl http://localhost:8001/health

    # Memory API
    curl http://localhost:8002/healthz

    # Knowledge API
    curl http://localhost:8003/healthz

    # MCP Server
    curl http://localhost:8005/healthz

    # Console UI
    curl http://localhost:3000/api/health
    ```

    Todos devem retornar `200 OK`.
  </Step>
</Steps>

***

## Acessando a plataforma

Após subir todos os serviços:

| Serviço        | URL local                                      | Descrição                         |
| -------------- | ---------------------------------------------- | --------------------------------- |
| **Console UI** | [http://localhost:3000](http://localhost:3000) | Interface principal da plataforma |
| **Prefect UI** | [http://localhost:4200](http://localhost:4200) | Orquestração de pipelines         |
| **PostgreSQL** | localhost:5432                                 | Banco de dados interno            |
| **FalkorDB**   | localhost:6380                                 | Graph store (Memory)              |
| **Qdrant**     | localhost:6333                                 | Vector store (Knowledge)          |

<Note>
  No primeiro acesso ao Console UI, você será redirecionado para a tela de login do Zitadel. O usuário administrador inicial é criado automaticamente — consulte os logs do container `strattum-zitadel` para obter a senha inicial: `docker compose logs zitadel | grep -i "initial\|admin\|password"`.
</Note>

***

## Configuração inicial do Zitadel

O Zitadel é o identity provider da plataforma. Para o ambiente local:

<Steps>
  <Step title="Acesse o Zitadel">
    Abra [http://localhost:8080](http://localhost:8080) no navegador.
  </Step>

  <Step title="Crie o primeiro usuário administrador">
    Navegue até **Users → New User** e crie o usuário que será usado para acessar o Console.
  </Step>

  <Step title="Configure o client OIDC">
    Em **Applications**, configure o client para o Console UI com:

    * Redirect URI: `http://localhost:3000/api/auth/callback/zitadel`
    * Post Logout URI: `http://localhost:3000`

    Copie o **Client ID** e **Client Secret** gerados e adicione ao `.env`:

    ```bash theme={null}
    ZITADEL_CLIENT_ID=<client-id>
    ZITADEL_CLIENT_SECRET=<client-secret>
    NEXTAUTH_URL=http://localhost:3000
    ```
  </Step>

  <Step title="Reinicie o Console UI">
    ```bash theme={null}
    docker compose restart strattum-console-ui
    ```
  </Step>
</Steps>

***

## Comandos úteis

```bash theme={null}
# Ver status de todos os containers
docker compose ps

# Ver logs de um serviço específico
docker compose logs -f strattum-memory-api

# Reiniciar um serviço
docker compose restart strattum-knowledge-api

# Parar toda a plataforma (preserva dados)
docker compose down

# Parar e remover volumes (apaga todos os dados)
docker compose down -v
```

***

## Próximos passos

Com a plataforma rodando, configure suas primeiras integrações:

<CardGroup cols={2}>
  <Card title="Configuração pós-instalação" icon="sliders" href="/getting-started/configuration">
    Conecte fontes de dados, configure a ontologia e ative o pipeline de contexto.
  </Card>

  <Card title="Conectores disponíveis" icon="plug" href="/connectors/overview">
    Veja todos os conectores suportados e como configurar cada um.
  </Card>
</CardGroup>
