Skip to content

Repository files navigation

Sentinel

Sentinel is a web platform for small and medium NOC/SOC operations. The MVP centralizes authentication, infrastructure monitoring data, alerts, logs, incidents and an operational dashboard.

Stack

  • Backend: FastAPI, SQLAlchemy, PostgreSQL, JWT, Alembic
  • Frontend: Next.js, React, TypeScript
  • Runtime: Docker Compose with frontend, backend, postgres and redis

Local execution

docker compose up --build

Access:

Default user:

  • Email: admin@sentinel.local
  • Password: Sentinel@123

MVP endpoints

  • POST /api/v1/auth/login
  • POST /api/v1/auth/logout
  • GET /api/v1/users/me
  • GET /api/v1/users
  • POST /api/v1/users
  • GET /api/v1/servers
  • POST /api/v1/servers
  • PATCH /api/v1/servers/{server_id}
  • GET /api/v1/metrics
  • POST /api/v1/metrics
  • GET /api/v1/alerts
  • POST /api/v1/alerts
  • GET /api/v1/logs
  • POST /api/v1/logs
  • GET /api/v1/incidents
  • POST /api/v1/incidents
  • GET /api/v1/dashboard/summary

Roadmap-ready modules

The initial structure keeps the boundaries requested in the master specification:

  • app/api: API-first route layer
  • app/services: business operations
  • app/repositories: data access
  • app/models: SQLAlchemy entities
  • app/schemas: Pydantic contracts
  • app/auth: JWT, session and role dependencies
  • app/database: SQLAlchemy session and base metadata

Future phases can add Prometheus, Grafana, Loki, SIEM integrations, automation playbooks and sentinel-ai without replacing the MVP foundation.

Deploy no Railway (guia rápido)

  • Recomendo criar duas aplicações na Railway: sentinel-backend e sentinel-frontend.
  • Para o backend, aponte o build para a pasta backend/ (ou use backend/Dockerfile) e defina as seguintes variáveis de ambiente: DATABASE_URL, REDIS_URL, JWT_SECRET_KEY, CORS_ORIGINS.
  • Para o frontend, aponte o build para frontend/ (ou use frontend/Dockerfile) e defina NEXT_PUBLIC_API_URL para o endpoint público do backend.
  • Você pode usar o Procfile na raiz ao deployar apenas o backend (comando: web: uvicorn app.main:app --host 0.0.0.0 --port $PORT).

Veja railway.json.example para um exemplo de configuração e instruções rápidas.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages