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.
- Backend: FastAPI, SQLAlchemy, PostgreSQL, JWT, Alembic
- Frontend: Next.js, React, TypeScript
- Runtime: Docker Compose with frontend, backend, postgres and redis
docker compose up --buildAccess:
- Frontend: http://localhost:3000
- Backend Swagger: http://localhost:8000/docs
- Health check: http://localhost:8000/health
Default user:
- Email:
admin@sentinel.local - Password:
Sentinel@123
POST /api/v1/auth/loginPOST /api/v1/auth/logoutGET /api/v1/users/meGET /api/v1/usersPOST /api/v1/usersGET /api/v1/serversPOST /api/v1/serversPATCH /api/v1/servers/{server_id}GET /api/v1/metricsPOST /api/v1/metricsGET /api/v1/alertsPOST /api/v1/alertsGET /api/v1/logsPOST /api/v1/logsGET /api/v1/incidentsPOST /api/v1/incidentsGET /api/v1/dashboard/summary
The initial structure keeps the boundaries requested in the master specification:
app/api: API-first route layerapp/services: business operationsapp/repositories: data accessapp/models: SQLAlchemy entitiesapp/schemas: Pydantic contractsapp/auth: JWT, session and role dependenciesapp/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.
- Recomendo criar duas aplicações na Railway:
sentinel-backendesentinel-frontend. - Para o backend, aponte o build para a pasta
backend/(ou usebackend/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 usefrontend/Dockerfile) e definaNEXT_PUBLIC_API_URLpara o endpoint público do backend. - Você pode usar o
Procfilena 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.