Deployment
This repository has been migrated to a monorepo structure using pnpm and uv workspaces, following the Nexel Dev Template best practices.Architecture Overview
- Apps (
/apps):platform: FastAPI backend (Private).console-sentinel: Next.js management console (Private).web: Next.js public website (Private).
- Packages (
/packages):agent-sentinel-sdk: The core Python SDK (Mirrored to Public repo).agent-sentinel-gym: Security testing environment (Private).
Deployment Instructions
1. Railway (Backend Platform)
- Service:
platform - Root Directory:
apps/platform - Build Context:
/(Must be the repository root to allowuvto see workspace configs). - Dockerfile Path:
apps/platform/Dockerfile - Start Command: Handled by Dockerfile (
bash scripts/start.sh).
2. Vercel (Console & Web)
For bothapps/console-sentinel and apps/web:
- Root Directory: Set to
apps/console-sentinelorapps/web. - Build Command:
cd ../.. && npx turbo build --filter=<package-name>... - Install Command:
pnpm install(Managed at root).
SDK Public Sync
To minimize GitHub Action costs and maintain a clean public history, the SDK is only synced to the public repository when a release tag is pushed.- Iterate: Commit and push to the private monorepo
mainbranch as usual. - Release: When ready to update the public SDK:
- Action: The
Release SDK to Public Repoworkflow will trigger, extractpackages/agent-sentinel-sdk, and push it to the publicagent-sentinel/agent-sentinel-sdkrepository.
SDK_SYNC_TOKEN (Fine-grained PAT with Write access to the SDK repo) is configured in the monorepo settings.
Local Development
- Install All:
just install(oruv sync && pnpm install) - Run Dev:
npx turbo dev - Test All:
npx turbo test - Lint All:
npx turbo lint
