Pular para conteúdo

Ferramentas e Dependências

Descrição detalhada das ferramentas, bibliotecas e dependências utilizadas no Morpheus Env.


Backend

Django 5.2.6

Framework web Python. Uso no projeto:

  • MVT (Model-View-Template) architecture
  • ORM para banco de dados
  • Admin panel customizável
  • Autenticação integrada
  • Proteção CSRF e XSS
  • Middleware de segurança
pip install Django==5.2.6

psutil 7.0.0

Coleta métricas de sistema (CPU, RAM, disco).

Uso: tools/services/system_metrics.py

import psutil

cpu_percent = psutil.cpu_percent(interval=1)
ram = psutil.virtual_memory()
disk = psutil.disk_usage('/')

Na prática:

# tools/services/system_metrics.py
def get_system_status():
    return {
        'cpu_percent': psutil.cpu_percent(),
        'ram_percent': psutil.virtual_memory().percent,
        'memory_used': disk.used / (1024**3),
    }
pip install psutil==7.0.0

Groq 0.31.1

SDK Python para IA Groq. Análise inteligente de métricas.

Uso: tools/services/ai_analysis.py

from groq import Groq

client = Groq(api_key='sua-api-key')
response = client.chat.completions.create(
    model='mixtral-8x7b-32768',
    messages=[
        {'role': 'system', 'content': 'Você é um assistente...'},
        {'role': 'user', 'content': 'Analise estes dados...'}
    ]
)

Na prática:

Sistema envia métricas (CPU, RAM em níveis "high"/"normal") e recebe análise em texto.

pip install groq==0.31.1

google-auth 2.41.1

Autenticação OAuth2 para Gmail. Envio de emails seguro.

Uso: notifications/utils/email_oauth2.py

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials

creds = Credentials(
    None,
    refresh_token=refresh_token,
    token_uri='https://oauth2.googleapis.com/token',
    client_id=client_id,
    client_secret=client_secret
)
creds.refresh(Request())

Na prática: Renovação automática de access token para envio de emails.

pip install google-auth==2.41.1

python-decouple 3.8

Gerenciador de variáveis de ambiente (.env).

Uso: core/settings.py

from decouple import config

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', 'False') == 'True'
TIMEOUT = config('TIMEOUT', cast=int, default=30)

Na prática: Carrega variáveis sensíveis sem hardcode.

pip install python-decouple==3.8

colorama 0.4.6

Cores no terminal. Mensagens de notificação coloridas.

Uso: notifications/utils/colors.py

from colorama import Fore, Style

print(Fore.GREEN + "Sucesso!")
print(Fore.RED + "Erro!")
print(Fore.YELLOW + "Aviso")

Na prática: Feedback visual em logs e notificações.

pip install colorama==0.4.6

django-ratelimit 4.1.0

Rate limiting para APIs. Proteção contra abuso.

Uso: tools/views.py

from django_ratelimit.decorators import ratelimit

@method_decorator(
    ratelimit(key='user', rate='20/m', method='GET'),
    name='dispatch'
)
class SystemAnalysisAPIView(LoginRequiredMixin, generic.View):
    pass

Na prática: Máximo 20 requisições/minuto por usuário para métricas.

pip install django-ratelimit==4.1.0

Frontend

Tailwind CSS 4

Framework CSS utility-first para estilização.

Uso: static/css/styles.css (compilado)

<div class="bg-purple-500 text-white p-4 rounded-lg">
    <h1 class="text-2xl font-bold">Título</h1>
</div>

Compilação:

bash build-tailwind.sh

Configuração: tailwind.config.js

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

Bootstrap Icons 1.13.1

Conjunto de ícones SVG.

Uso: core/templates/base.html

<link rel="stylesheet" 
      href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">

<!-- Usar -->
<i class="bi bi-github"></i>
<i class="bi bi-briefcase-fill"></i>

Ícones disponíveis: icons.getbootstrap.com


Desenvolvimento

flake8 7.3.0

Linter Python para qualidade de código (PEP 8).

flake8 .
flake8 tools/views.py
pip install flake8==7.3.0

isort 6.1.0

Ordena imports Python automaticamente.

isort .
isort . --check-only
pip install isort==6.1.0

Instalação

# Todos os requisitos
pip install -r requirements.txt

# Desenvolvimento
pip install -r requirements_dev.txt

# Individual
pip install Django psutil groq google-auth python-decouple colorama django-ratelimit

Produção (Opcional)

gunicorn

Servidor WSGI HTTP para produção.

pip install gunicorn
gunicorn core.wsgi:application --workers=4

psycopg2-binary

Driver PostgreSQL para Python.

pip install psycopg2-binary

Configuração (settings.py):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'morpheus_db',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

django-redis

Cache backend Redis para Django.

pip install django-redis

Configuração:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
    }
}

whitenoise

Servidor de arquivos estáticos para produção.

pip install whitenoise

Configuração (settings.py):

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    # ... resto
]

Próximas Etapas