Pular para conteúdo

Configuração do Projeto

Este documento descreve todas as variáveis de ambiente e configurações disponíveis no Morpheus Env.


Arquivo .env

Todas as variáveis sensíveis estão em .env (não versionado no Git).

Criar arquivo:

cp .env.example .env

⚠️ Nunca commitar .env com valores reais


Variáveis Obrigatórias

SECRET_KEY (string)

Chave para criptografia de sessão Django.

Gerar chave segura:

python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

Copie a saída para .env:

SECRET_KEY=django-insecure-abc123xyz789...

⚠️ Mude em produção!


Variáveis de Django

DEBUG (True/False, padrão: False)

Ativa modo debug. Mostra erros detalhados.

DEBUG=True   # Desenvolvimento
DEBUG=False  # Produção

⚠️ Nunca True em produção!

ALLOWED_HOSTS (lista, padrão: vazio)

Domínios permitidos de acesso.

# Desenvolvimento
ALLOWED_HOSTS=localhost,127.0.0.1

# Produção
ALLOWED_HOSTS=example.com,www.example.com

Variáveis de Email

EMAIL_MODE (True/False, padrão: False)

Ativa ou desativa envio de emails.

EMAIL_MODE=False  # Dev (sem envio)
EMAIL_MODE=True   # Prod (com OAuth2)

EMAIL_HOST (padrão: smtp.gmail.com)

Servidor SMTP.

EMAIL_HOST=smtp.gmail.com

EMAIL_PORT (padrão: 587)

Porta SMTP (587 para TLS, 465 para SSL).

EMAIL_PORT=587

EMAIL_USE_TLS (padrão: True)

EMAIL_USE_TLS=True

EMAIL_HOST_USER (necessário se EMAIL_MODE=True)

Email do remetente.

EMAIL_HOST_USER=seu-email@gmail.com

EMAIL_HOST_PASSWORD (necessário se EMAIL_MODE=True)

Senha de app do Gmail (não a senha da conta).

EMAIL_HOST_PASSWORD=abc123xyz789abc123xyz

Como gerar: Settings → Segurança → Senhas de app (Gmail)

DEFAULT_FROM_EMAIL (necessário se EMAIL_MODE=True)

Email padrão para notificações.

DEFAULT_FROM_EMAIL=seu-email@gmail.com

Variáveis de IA (Groq)

AI_MODE (True/False, padrão: False)

Ativa ou desativa análise por IA.

AI_MODE=False  # Dev (sem IA)
AI_MODE=True   # Prod (com Groq)

API_KEY (necessário se AI_MODE=True)

Chave de API do Groq. Gere em console.groq.com

API_KEY=gsk_abc123xyz789abc123xyz789...

AI_MODEL (padrão: mixtral-8x7b-32768)

Modelo de IA do Groq.

AI_MODEL=mixtral-8x7b-32768

Opções: - mixtral-8x7b-32768 - Rápido e eficiente (recomendado) - llama2-70b-4096 - Maior contexto - gemma-7b-it - Leve


Variáveis de OAuth2 Google

Para envio de emails com OAuth2 (mais seguro que senha de app).

GOOGLE_OAUTH2_CLIENT_ID

Client ID do projeto Google Cloud.

GOOGLE_OAUTH2_CLIENT_ID=123456789-abc123xyz789.apps.googleusercontent.com

GOOGLE_OAUTH2_CLIENT_SECRET

Client Secret do projeto Google Cloud.

GOOGLE_OAUTH2_CLIENT_SECRET=GOCSPX-abc123xyz789abc123xyz789

GOOGLE_OAUTH2_REFRESH_TOKEN

Refresh Token para renovar access token automaticamente.

GOOGLE_OAUTH2_REFRESH_TOKEN=1//abc123xyz789abc123xyz789abc123xyz789

Como gerar: Consulte installation.md na seção "Configuração de OAuth2 Google (Avançado)"


Configuração por Ambiente

Desenvolvimento

DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
EMAIL_MODE=False
AI_MODE=False
SECRET_KEY=dev-key-insecura

Produção

DEBUG=False
ALLOWED_HOSTS=example.com,www.example.com
EMAIL_MODE=True
AI_MODE=True
SECRET_KEY=super-secreto-muito-seguro
SECURE_SSL_REDIRECT=True
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=True

Variáveis de Banco de Dados

SQLite (Desenvolvimento)

Padrão. Arquivo db.sqlite3 é criado automaticamente.

Nenhuma variável necessária.

PostgreSQL (Produção - Recomendado)

Para usar PostgreSQL em produção, instale:

pip install psycopg2-binary

Configure em core/settings.py (não em .env):

import dj_database_url

DATABASES = {
    'default': dj_database_url.config(
        default='postgresql://user:pass@localhost:5432/morpheus'
    )
}

Rate Limiting

Configurado em tools/views.py:

Endpoint Limite Janela
/sistema/monitoramento/api/v1/metrics 20 1 minuto
/sistema/monitoramento/api/v1/ai 10 1 minuto
/sistema/conversor/api/v1/converter Ilimitado -

Para alterar, edite o decorator @method_decorator(ratelimit(...)) nas views.


Tailwind CSS

Arquivo: tailwind.config.js

Escaneia templates e JS para classes Tailwind:

module.exports = {
  content: [
    './core/templates/**/*.html',
    './tools/templates/**/*.html',
    './users/templates/**/*.html',
  ],
  theme: {
    extend: {},
  },
}

Recompile após mudanças CSS:

bash build-tailwind.sh

Próximas Etapas