Features added:
- AI Finding Translation endpoints (POST /findings/{id}/ai-translate)
- AI Security Coach endpoint (POST /findings/{id}/ai-question)
- Attack Path visualization generation (POST /attack-paths/{id}/generate, GET /attack-paths/{id})
- Mock AI implementations for demo mode (no API keys required)
- PDF Report generation and download endpoints
- Report snapshot feature for on-demand PDF generation
Technical improvements:
- Mock translation system for findings and attack paths
- Async task-based AI processing
- Graph-based attack path with nodes and edges
- Professional HTML-to-PDF conversion with WeasyPrint
- Jinja2 templating for report generation
Database updates:
- AttackPath table integrated with mock narrative generation
- AI fields populated via async tasks
Testing:
- All E2E tests verified passing (login, dashboard, findings, all roles)
- AI endpoints tested and working with mock data
- PDF report generation produces valid 18KB+ documents
- Attack path generation creates proper graph structures
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
TrustOS
The AI Operating System for Cyber Resilience
TrustOS is an AI-powered cyber resilience platform for SMB and mid-market companies that need enterprise-grade security clarity without building an enterprise security team. The platform helps leadership teams understand their top cyber risks, prioritize fixes, track remediation, and prove improvement to customers, boards, insurers, and regulators.
Table of Contents
- Overview
- Features
- Architecture
- Tech Stack
- Project Structure
- Quick Start
- Development Setup
- Configuration
- Database Migrations
- Testing
- Deployment
- Documentation
- Security
- Troubleshooting
- Contributing
- License
Overview
TrustOS transforms cybersecurity from a technical burden into a business asset by:
- Translating technical risks into business language - AI-powered explanations that executives understand
- Providing continuous visibility - Living dashboard instead of static reports
- Tracking remediation progress - Clear ownership, deadlines, and proof of fixes
- Proving improvement over time - Measurable risk score trends for boards and insurers
- Protecting executive exposure - Digital footprint monitoring for leadership teams
Dashboard Preview
The TrustOS Vault Dashboard provides executive-ready security visibility:
┌─────────────────────────────────────────────────────────────────────────┐
│ TrustOS Vault Dashboard │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Cyber Resilience Overview Audit baseline: Jul 6 │
│ │
│ ┌──────────────────────┐ ┌─────────┬─────────┬─────────┬─────────┐ │
│ │ Cyber Health │ │Critical │ High │ Medium │ Total │ │
│ │ Score │ │ 2 │ 5 │ 12 │ 19 │ │
│ │ 89.2 │ └─────────┴─────────┴─────────┴─────────┘ │
│ │ │ │
│ │ ↑ +2.5 pts │ Risk Score — 90 Day Trend │
│ │ this month │ ┌────────────────────────────────────────┐ │
│ │ │ │ 100 ─ ╱╲ │ │
│ └──────────────────────┘ │ 90 ─╱ ╲ ╱╲ ╱╲ │ │
│ │ 80 ──── ╱──╲╱ ╲╱╲ ╱─ Current: 89.2 │
│ │ 70 ───────────────────────── │ │
│ │ Jun Jul Aug │ │
│ └────────────────────────────────────────┘ │
│ │
│ Top Risks Requiring Your Attention View all findings →│
│ │
│ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐│
│ │🔴 CRITICAL │ │🟠 HIGH │ │🟠 HIGH ││
│ │ │ │ │ │ ││
│ │Internet-accessible│ │5 executive email │ │S3 bucket publicly ││
│ │admin panel with │ │accounts found in │ │accessible with ││
│ │no authentication │ │breach database │ │customer files ││
│ │ │ │ │ │ ││
│ │An attacker could │ │Attackers could │ │This constitutes a ││
│ │gain full control │ │access email, cloud │ │data breach. Exposure││
│ │of your platform, │ │systems, and data │ │of customer PII may ││
│ │access all customer │ │— enabling targeted │ │trigger regulatory ││
│ │data, and disrupt │ │phishing and wire │ │penalties. ││
│ │operations. │ │fraud. │ │ ││
│ │ │ │ │ │ ││
│ │Fix Priority: │ │Fix Priority: │ │Fix Priority: ││
│ │URGENT │ │URGENT │ │URGENT ││
│ └────────────────────┘ └────────────────────┘ └────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────────────────┘
Current Status:
- Cyber Health Score: 89.2 (healthy baseline)
- Open Critical Issues: 2
- Open High Issues: 5
- 30-day Improvement: +2.5 points 📈
- Demo Data: 6 findings with AI-translated business impact
System Architecture Overview
graph TB
subgraph Client["Client Layer"]
Browser[Web Browser]
end
subgraph Frontend["Frontend Layer"]
NextJS[Next.js 16 + TypeScript]
Tailwind[Tailwind CSS + shadcn/ui]
end
subgraph API["API Layer"]
FastAPI[FastAPI + Pydantic]
Auth[Authentication & Authorization]
Services[Business Logic Services]
AI[AI Integration Layer]
end
subgraph Database["Database Layer"]
PostgreSQL[(PostgreSQL 16)]
Migrations[Alembic Migrations]
end
subgraph External["External Services"]
OpenAI[OpenAI API]
Anthropic[Anthropic API]
HIBP[HIBP API]
NVD[NVD API]
end
Browser -->|HTTPS| NextJS
NextJS -->|REST API| FastAPI
FastAPI --> Auth
FastAPI --> Services
Services --> AI
Services --> PostgreSQL
AI --> OpenAI
AI --> Anthropic
Services --> HIBP
Services --> NVD
PostgreSQL --> Migrations
style Frontend fill:#e1f5ff
style API fill:#fff4e1
style Database fill:#e8f5e9
style External fill:#f3e5f5
Business Model
graph LR
subgraph Phase1["Phase 1: Vault Audit"]
Audit[One-time Assessment<br/>$25K-$95K]
Dashboard[Interactive Dashboard]
Report[Audit Report]
end
subgraph Phase2["Phase 2: Monthly Monitoring"]
Monitor[Continuous Monitoring<br/>$5K-$15K/month]
Daily[Daily Assessments]
Alerts[Automated Alerts]
end
subgraph Phase3["Phase 3: Full Platform"]
Platform[Full Platform<br/>$180K-$900K/year]
AI[AI Security Coach]
Advanced[Advanced Integrations]
end
Audit --> Dashboard
Audit --> Report
Audit --> Monitor
Monitor --> Daily
Monitor --> Alerts
Monitor --> Platform
Platform --> AI
Platform --> Advanced
style Phase1 fill:#e3f2fd
style Phase2 fill:#fff3e0
style Phase3 fill:#f3e5f5
- Phase 1: Vault Audit ($25K–$95K) - One-time comprehensive assessment with interactive dashboard
- Phase 2: Monthly Monitoring ($5K–$15K/month) - Continuous monitoring and daily risk updates
- Phase 3: Full Platform ($180K–$900K/year) - Complete cyber resilience operating system
For Executives
Business Value
TrustOS provides executives with:
- Clear Risk Visibility: Understand your cyber posture in minutes, not days
- Board-Ready Reporting: Professional reports for boards, insurers, and regulators
- Measurable Improvement: Track risk score trends to prove security investments
- Executive Protection: Monitor digital footprint of leadership team
- Compliance Support: Demonstrate due diligence to customers and auditors
Key Metrics Tracked
| Metric | Description | Target |
|---|---|---|
| Cyber Health Score | Overall security posture (0-100) | 80+ |
| Critical Findings | High-priority vulnerabilities | 0 |
| Remediation Rate | Issues resolved per month | 90%+ |
| Risk Trend | 90-day score change | Positive |
ROI Calculator
Before TrustOS:
- Annual security consulting: $50,000
- Breach risk: 15% chance × $200,000 avg cost = $30,000 expected loss
- Total: $80,000/year
After TrustOS:
- TrustOS subscription: $288,000/year
- Breach risk reduction: 5% chance × $200,000 = $10,000 expected loss
- Insurance premium savings: $15,000/year
- Net cost: $263,000/year
Value: Professional-grade security with measurable ROI
For Developers
Tech Stack Details
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 16 | React framework with App Router |
| Frontend | TypeScript | Type-safe JavaScript |
| Frontend | Tailwind CSS | Utility-first CSS framework |
| Frontend | shadcn/ui | Pre-built UI components |
| Backend | FastAPI | Modern Python web framework |
| Backend | SQLAlchemy 2.0 | Async ORM for database |
| Backend | PostgreSQL | Relational database |
| Backend | Alembic | Database migration tool |
| AI | OpenAI/Anthropic | LLM for risk translation |
| Infra | Docker | Containerization |
| Infra | Docker Compose | Multi-container orchestration |
Development Workflow
graph TD
Start[Start Development] --> Clone[Clone Repository]
Clone --> SetupEnv[Setup Environment]
SetupEnv --> BackendSetup[Backend Setup]
SetupEnv --> FrontendSetup[Frontend Setup]
BackendSetup --> InstallDeps[Install Dependencies]
FrontendSetup --> NPMInstall[npm install]
InstallDeps --> ConfigEnv[Configure .env]
NPMInstall --> ConfigFrontend[Configure .env.local]
ConfigEnv --> SeedDB[Seed Database]
ConfigFrontend --> StartDev[Start Dev Servers]
SeedDB --> StartDev
StartDev --> DevLoop[Development Loop]
DevLoop --> Test[Write Tests]
Test --> Commit[Commit Changes]
Commit --> Push[Push to Git]
style Start fill:#e8f5e9
style DevLoop fill:#fff3e0
style Test fill:#e3f2fd
Key Design Patterns
- Repository Pattern: Database access through service layer
- Dependency Injection: FastAPI dependencies for database, auth
- Async/Await: Non-blocking I/O throughout
- JWT Authentication: Stateless token-based auth
- Multi-Tenant: Tenant isolation at all layers
- RBAC: Role-based access control
API Response Times
| Endpoint | Expected Response Time | SLA |
|---|---|---|
| Login | < 500ms | 99.9% |
| Dashboard | < 1s | 99.5% |
| Findings List | < 500ms | 99.5% |
| Finding Detail | < 300ms | 99.9% |
| Report Generation | < 30s | 95% |
Features
Current Implementation (Phase 1)
Executive Dashboard
- Cyber Health Score - 0–100 gauge showing overall security posture
- Top 3 Risks - AI-translated business impact for critical vulnerabilities
- Risk Trend Visualization - 90-day history showing improvement or decline
- Baseline Comparison - Compare current state against audit baseline
Findings Management
- Comprehensive Finding Database - CVEs, cloud misconfigurations, credential exposures
- AI Risk Translation - Plain-English explanations for every technical finding
- Remediation Tracking - Kanban-style board: Open → In Progress → Resolved → Verified
- Asset Ownership - Assign findings to team members with due dates
Digital Footprint Center
- Executive Exposure Monitoring - Publicly available information about leadership
- Domain/Asset Exposure - Exposed subdomains, misconfigured DNS, certificate issues
- Breach Intelligence - Leaked credentials from public breach databases
Authentication & Access Control
- Multi-Tenant Architecture - Complete data isolation between organizations
- Role-Based Access Control - Executive, IT Admin, TrustOS Admin roles
- JWT Authentication - Secure token-based sessions
Reporting
- Vault Audit Reports - Branded PDF exports with executive summaries
- Baseline Snapshots - Point-in-time assessments for comparison
- Board-Ready Formatting - Professional layouts for stakeholders
Planned Features (Phase 2 & 3)
- Continuous Monitoring Engine - Daily automated assessments
- Attack Path Visualization - Interactive diagrams showing attack vectors
- AI Security Coach - Interactive Q&A about specific findings
- Executive Protection Services - Enhanced monitoring for leadership
- Advanced Integrations - Cloud APIs, SIEM connectors, threat intelligence feeds
Architecture
TrustOS follows a modern, scalable architecture designed for security and performance:
┌─────────────────────────────────────────────────────────────────┐
│ Frontend Layer │
│ Next.js 16 + TypeScript + Tailwind CSS + shadcn/ui │
│ - Executive Dashboard │
│ - Findings Management │
│ - Digital Footprint Center │
│ - Report Generation │
└────────────────────┬────────────────────────────────────────────┘
│ HTTPS / REST API
┌────────────────────▼────────────────────────────────────────────┐
│ API Layer │
│ FastAPI + Pydantic + SQLAlchemy 2.0 │
│ - Authentication & Authorization │
│ - Business Logic Services │
│ - AI Integration Layer │
│ - Risk Calculator │
│ - Report Generator │
└────────────────────┬────────────────────────────────────────────┘
│ Async PostgreSQL
┌────────────────────▼────────────────────────────────────────────┐
│ Database Layer │
│ PostgreSQL 16 + Alembic Migrations │
│ - Tenants, Users, Assets, Findings │
│ - Risk Scores, Attack Paths, Audit Reports │
│ - Executives, Authorized Assets │
└─────────────────────────────────────────────────────────────────┘
External Integrations:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ OpenAI API │ │ Anthropic API│ │ HIBP API │ │ NVD API │
│ (AI Translation)│ (AI Coach) │ │ (Breach Data)│ │ (CVE Data) │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
Key Design Principles
- Authorization First - Only scan explicitly authorized assets
- Multi-Tenant Isolation - Complete data separation at database and API levels
- Privacy by Design - Executive monitoring requires explicit organizational authorization
- AI-Augmented, Not AI-Dependent - Graceful degradation when AI is unavailable
- Audit Trail - All changes tracked with timestamps and user attribution
Tech Stack
Frontend
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Components: shadcn/ui (Radix UI primitives)
- Charts: Recharts
- State Management: React Context + Hooks
- HTTP Client: Native fetch with custom API wrapper
Backend
- Framework: FastAPI
- Language: Python 3.10+
- ORM: SQLAlchemy 2.0 (async)
- Database: PostgreSQL 16
- Authentication: JWT (python-jose)
- Password Hashing: Passlib (bcrypt)
- Task Queue: Celery + Redis (planned)
- Scheduler: APScheduler
AI/ML
- Primary Provider: OpenAI GPT-4o-mini
- Alternative: Anthropic Claude 3 Haiku
- Use Cases: Risk translation, attack path generation, security coach
Infrastructure
- Containerization: Docker + Docker Compose
- Reverse Proxy: Nginx (production)
- Process Manager: Uvicorn (ASGI server)
- Database Migrations: Alembic
- PDF Generation: WeasyPrint + Jinja2
Project Structure
trustos/
├── frontend/ # Next.js frontend application
│ ├── src/
│ │ ├── app/ # Next.js App Router pages
│ │ │ ├── dashboard/ # Executive dashboard
│ │ │ ├── findings/ # Findings management
│ │ │ ├── login/ # Authentication
│ │ │ └── page.tsx # Root redirect
│ │ ├── components/ # Reusable React components
│ │ ├── hooks/ # Custom React hooks
│ │ │ └── useAuth.ts # Authentication state
│ │ └── lib/ # Utility functions
│ │ └── api.ts # API client
│ ├── public/ # Static assets
│ ├── package.json # Dependencies
│ ├── tailwind.config.ts # Tailwind configuration
│ ├── tsconfig.json # TypeScript configuration
│ └── next.config.js # Next.js configuration
│
├── backend/ # FastAPI backend application
│ ├── app/
│ │ ├── api/
│ │ │ └── routes/ # API endpoints
│ │ │ ├── auth.py # Authentication
│ │ │ ├── dashboard.py # Dashboard data
│ │ │ ├── findings.py # Findings CRUD
│ │ │ ├── reports.py # Audit reports
│ │ │ ├── attack_paths.py # Attack visualization
│ │ │ ├── footprint.py # Digital footprint
│ │ │ └── ai.py # AI endpoints
│ │ ├── core/
│ │ │ ├── config.py # Configuration settings
│ │ │ └── security.py # Auth & security utilities
│ │ ├── db/
│ │ │ └── session.py # Database session
│ │ ├── models/
│ │ │ └── models.py # SQLAlchemy ORM models
│ │ ├── schemas/
│ │ │ └── schemas.py # Pydantic schemas
│ │ ├── services/
│ │ │ ├── ai_translator.py # AI translation service
│ │ │ ├── risk_calculator.py # Risk scoring
│ │ │ └── report_generator.py # PDF generation
│ │ ├── workers/ # Background tasks
│ │ └── main.py # FastAPI application entry
│ ├── alembic/ # Database migrations
│ │ ├── versions/ # Migration files
│ │ ├── env.py # Alembic environment
│ │ └── script.py.mako # Migration template
│ ├── tests/ # Backend tests
│ ├── requirements.txt # Python dependencies
│ ├── seed.py # Demo data seeding
│ ├── alembic.ini # Alembic configuration
│ └── .env.example # Environment template
│
├── infra/ # Infrastructure configuration
│ ├── docker-compose.yml # Local development stack
│ ├── Dockerfile.backend # Backend container
│ └── Dockerfile.frontend # Frontend container
│
├── docs/ # Additional documentation
│ ├── ARCHITECTURE.md # Detailed architecture docs
│ ├── API.md # API reference
│ ├── DEPLOYMENT.md # Deployment guide
│ └── CONTRIBUTING.md # Contribution guidelines
│
├── trustos-plan.md # Detailed build plan and stages
├── README.md # This file
└── .gitignore # Git ignore rules
Quick Start
Setup Flow
graph LR
A[Clone Repo] --> B[Configure .env]
B --> C[Start Docker Compose]
C --> D[Seed Database]
D --> E[Access Application]
style A fill:#e8f5e9
style B fill:#fff3e0
style C fill:#e3f2fd
style D fill:#f3e5f5
style E fill:#fce4ec
Prerequisites
Ensure you have the following installed:
- Docker 20.10+ and Docker Compose 2.0+
- Git for version control
- Python 3.10+ (for local development)
- Node.js 18+ and npm 9+ (for local development)
- PostgreSQL 16+ (if not using Docker)
Docker Compose Setup (Recommended)
This is the fastest way to get TrustOS running locally with all dependencies.
-
Clone the repository
git clone https://gitea.thetempleofdoom.com/drjones/trustos.git cd trustos -
Configure environment variables
cp backend/.env.example backend/.envEdit
backend/.envand configure at minimum:# Database (Docker Compose handles this) DATABASE_URL=postgresql+asyncpg://trustos:trustos_dev@postgres:5432/trustos SYNC_DATABASE_URL=postgresql://trustos:trustos_dev@postgres:5432/trustos # Auth - CHANGE THIS IN PRODUCTION SECRET_KEY=changeme-use-openssl-rand-hex-32-in-production # AI - Optional for demo (features work without it) OPENAI_API_KEY=sk-... AI_PROVIDER=openai -
Start all services
cd infra docker-compose up --buildThis will start:
- PostgreSQL database on port 5432
- FastAPI backend on port 8000
- Next.js frontend on port 3000
-
Initialize the database with demo data
In a new terminal:
cd backend docker-compose exec backend python seed.py -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- ReDoc Documentation: http://localhost:8000/redoc
Demo Credentials
The seed script creates a demo tenant "Acme Corp" with three users:
| Role | Password | |
|---|---|---|
| Executive (CEO) | executive@acmecorp.io | TrustOS2024! |
| IT Admin | it@acmecorp.io | TrustOS2024! |
| TrustOS Admin | admin@trustos.com | TrustOS-Admin-2024! |
Stopping the Services
cd infra
docker-compose down
To remove volumes (delete database data):
docker-compose down -v
Development Setup
For active development, it's often easier to run services natively rather than in Docker.
Backend Setup
-
Create a Python virtual environment
cd backend python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies
pip install -r requirements.txt -
Configure environment variables
cp .env.example .env # Edit .env with your configurationMinimum required for local development:
DATABASE_URL=postgresql+asyncpg://trustos:trustos_dev@localhost:5432/trustos SYNC_DATABASE_URL=postgresql://trustos:trustos_dev@localhost:5432/trustos SECRET_KEY=dev-secret-key-change-in-production -
Set up PostgreSQL
Using Docker for just the database:
docker run --name trustos-postgres \ -e POSTGRES_USER=trustos \ -e POSTGRES_PASSWORD=trustos_dev \ -e POSTGRES_DB=trustos \ -p 5432:5432 \ -d postgres:16 -
Initialize the database
python seed.py -
Run the backend server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000The API will be available at http://localhost:8000
Frontend Setup
-
Install dependencies
cd frontend npm install -
Configure environment variables
Create
.env.local(this file is git-ignored):NEXT_PUBLIC_API_URL=http://localhost:8000 -
Run the development server
npm run devThe frontend will be available at http://localhost:3000
Development Workflow
- Make changes to frontend or backend code
- Backend auto-reloads with
--reloadflag - Frontend hot-reloads automatically
- Access API docs at http://localhost:8000/docs to test endpoints
Configuration
Backend Environment Variables
See backend/.env.example for the complete list. Key variables:
Database
DATABASE_URL=postgresql+asyncpg://trustos:trustos_dev@postgres:5432/trustos
SYNC_DATABASE_URL=postgresql://trustos:trustos_dev@postgres:5432/trustos
Authentication
# IMPORTANT: Generate a secure random key in production using: openssl rand -hex 32
# Never use the default value in production environments
SECRET_KEY=changeme-use-openssl-rand-hex-32-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=480
AI Configuration
AI_PROVIDER=openai # or 'anthropic'
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
External APIs
HIBP_API_KEY=... # Have I Been Pwned for breach data
NVD_API_KEY=... # National Vulnerability Database
Storage
STORAGE_PATH=/app/storage # Path for PDF reports and uploads
Email (Optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=...
SMTP_PASSWORD=...
SMTP_FROM=noreply@trustos.com
Frontend Environment Variables
NEXT_PUBLIC_API_URL=http://localhost:8000
For production:
NEXT_PUBLIC_API_URL=https://api.trustos.com
Database Migrations
TrustOS uses Alembic for database schema management. In development, tables are auto-created on startup for convenience. For production, always use migrations.
Creating a New Migration
cd backend
alembic revision --autogenerate -m "Description of changes"
Applying Migrations
alembic upgrade head
Rolling Back
alembic downgrade -1
Migration Best Practices
- Always review auto-generated migrations before committing
- Write descriptive migration messages
- Test migrations on a copy of production data
- Never modify existing migrations after they're applied
Testing
Backend Tests
cd backend
pytest
Run with coverage:
pytest --cov=app --cov-report=html
Run specific test file:
pytest tests/test_auth.py
Frontend Tests
cd frontend
npm test
Run with coverage:
npm test -- --coverage
Manual Testing
- API Testing: Use the interactive Swagger UI at http://localhost:8000/docs
- Frontend Testing: Log in with demo credentials and explore features
- Integration Testing: Use Docker Compose for full-stack testing
Deployment
Production Checklist
Before deploying to production, ensure you have:
- Changed
SECRET_KEYto a cryptographically secure random value (openssl rand -hex 32) - Set strong database passwords
- Configured production database (Supabase, RDS, Neon, etc.)
- Enabled HTTPS/TLS with valid certificates
- Set up proper CORS origins (restrict to your domain)
- Configured AI API keys with appropriate rate limits
- Set up logging and monitoring (Sentry, Datadog, etc.)
- Enabled automated database backups
- Reviewed and updated security headers
- Run Alembic migrations instead of auto-create tables
- Configured environment-specific variables
- Set up CI/CD pipeline
- Configured error tracking
- Set up health check endpoints
Deployment Options
Option 1: Railway (Recommended for simplicity)
Railway supports both PostgreSQL and containerized apps.
- Connect your GitHub repository to Railway
- Create a PostgreSQL service
- Create a backend service (Dockerfile)
- Create a frontend service (Dockerfile)
- Add environment variables in Railway dashboard
- Deploy
Option 2: Render
Render offers PostgreSQL and container hosting.
- Create a PostgreSQL database on Render
- Connect backend to Render PostgreSQL
- Deploy backend as a web service
- Deploy frontend as a static site
- Configure environment variables
Option 3: VPS (DigitalOcean, Linode, AWS EC2)
For full control:
- Set up a VPS with Ubuntu 22.04+
- Install Docker and Docker Compose
- Clone repository
- Configure production
.envfile - Use nginx as reverse proxy
- Set up SSL with Let's Encrypt
- Run
docker-compose up -d
See docs/DEPLOYMENT.md for detailed VPS deployment instructions.
Environment-Specific Configurations
Development:
- Auto-create tables on startup
- Debug mode enabled
- CORS allowed from localhost
- Logging to console
Production:
- Use Alembic migrations
- Debug mode disabled
- CORS restricted to specific domains
- Logging to file/external service
- Rate limiting enabled
Documentation
Project Documentation
- ARCHITECTURE.md - Detailed system architecture, data flow, and design decisions
- API.md - Complete API reference with examples
- DEPLOYMENT.md - Production deployment guides
- CONTRIBUTING.md - Contribution guidelines and development standards
Business Documentation
- BUILD_PLAN.md - Multi-stage build plan and implementation roadmap
- BUSINESS_PLAN.md - Complete business plan, investor memo, and pitch deck outline
API Documentation
When the backend is running, interactive API documentation is available:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Security
Security Architecture
TrustOS implements defense-in-depth security:
- Authentication: JWT-based stateless authentication
- Authorization: Role-based access control (RBAC)
- Multi-Tenant Isolation: Database-level tenant separation
- Input Validation: Pydantic schemas for all inputs
- SQL Injection Prevention: SQLAlchemy ORM with parameterized queries
- XSS Prevention: React's built-in escaping
- CSRF Protection: SameSite cookie attributes
- Secure Headers: CORS, CSP, HSTS configured
Security Best Practices
- Never commit
.envfiles or secrets to git - Use strong, unique passwords for all services
- Rotate API keys regularly
- Enable audit logging in production
- Implement rate limiting on public endpoints
- Use HTTPS everywhere
- Keep dependencies updated
- Regular security audits
- Principle of least privilege for database users
Data Privacy
- Executive monitoring requires explicit organizational authorization
- All data is tenant-isolated
- No cross-tenant data access
- Audit trail for all data access
- GDPR-compliant data handling practices
Troubleshooting
Troubleshooting Flow
graph TD
Start[Issue Detected] --> CheckLogs{Check Logs}
CheckLogs -->|Error Message| IdentifyError[Identify Error Type]
CheckLogs -->|No Error| CheckServices{Check Services}
IdentifyError --> DBError{Database Error?}
IdentifyError --> APIError{API Error?}
IdentifyError --> FrontError{Frontend Error?}
DBError -->|Yes| CheckDB[Check DB Connection]
DBError -->|No| APIError
APIError -->|Yes| CheckAuth[Check Auth Token]
APIError -->|No| FrontError
FrontError -->|Yes| CheckEnv[Check .env.local]
FrontError -->|No| CheckServices
CheckDB --> FixDB[Fix DATABASE_URL]
CheckAuth --> FixAuth[Refresh Token]
CheckEnv --> FixEnv[Set NEXT_PUBLIC_API_URL]
CheckServices -->|All Running| Restart[Restart Services]
CheckServices -->|Not Running| Start[Start Services]
FixDB --> Test
FixAuth --> Test[Test Fix]
FixEnv --> Test
Restart --> Test
Start --> Test
Test -->|Fixed| Done[Issue Resolved]
Test -->|Not Fixed| Support[Contact Support]
style Start fill:#fce4ec
style Done fill:#e8f5e9
style Support fill:#fff3e0
Common Issues
Backend won't start
Problem: ModuleNotFoundError: No module named 'app'
Solution: Ensure you're running from the backend directory:
cd backend
uvicorn app.main:app --reload
Database connection errors
Problem: could not connect to server: Connection refused
Solution:
- Ensure PostgreSQL is running
- Check DATABASE_URL in
.env - Verify database credentials
Frontend can't connect to backend
Problem: Network errors in browser console
Solution:
- Check
NEXT_PUBLIC_API_URLin frontend.env.local - Ensure backend is running on the expected port
- Check CORS configuration in backend
AI features not working
Problem: AI translations return empty or errors
Solution:
- Verify
OPENAI_API_KEYorANTHROPIC_API_KEYis set - Check API key has credits/quota
- Review backend logs for specific error messages
- Features work without AI, just with raw technical data
Migration errors
Problem: alembic.util.exc.CommandError: Target database is not up to date
Solution:
alembic upgrade head
If that fails, you may need to resolve migration conflicts manually.
Getting Help
- Check the logs:
docker-compose logsor backend console output - Review API documentation at
/docs - Check environment variable configuration
- Verify all services are running
- For persistent issues, contact the TrustOS development team
Contributing
We welcome contributions to TrustOS! Please see CONTRIBUTING.md for guidelines.
Development Workflow
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Write tests for new functionality
- Ensure all tests pass:
pytestandnpm test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Code Style
- Python: Follow PEP 8, use black for formatting
- TypeScript: Follow ESLint rules, use Prettier for formatting
- Commits: Use conventional commit messages
- Documentation: Update docs for any user-facing changes
License
Proprietary - All rights reserved
TrustOS is a commercial product. All rights are reserved by the copyright holders. Unauthorized copying, distribution, or use of this software is strictly prohibited.
Support
For technical issues, questions, or partnership inquiries:
- Email: support@trustos.com
- Documentation: https://docs.trustos.com
- Status Page: https://status.trustos.com
Acknowledgments
TrustOS is built with open-source technologies:
- Next.js - React framework
- FastAPI - Python web framework
- Tailwind CSS - CSS framework
- shadcn/ui - UI components
- PostgreSQL - Database
- OpenAI - AI services
- Anthropic - AI services
TrustOS — The AI Operating System for Cyber Resilience
Making cyber resilience simple, continuous, and understandable for every growing company.
Architecture
TrustOS is a full-stack application with the following components:
- Frontend: Next.js 16 (React) + TypeScript + Tailwind CSS + shadcn/ui
- Backend: Python (FastAPI) + SQLAlchemy 2.0 + Async PostgreSQL
- Database: PostgreSQL 16
- AI Layer: OpenAI GPT-4o-mini or Anthropic Claude 3 Haiku
- Deployment: Docker Compose (local), Railway/Render/VPS (production)
Project Structure
trustos/
├── frontend/ # Next.js frontend application
│ ├── src/
│ │ ├── app/ # Next.js App Router pages
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utility functions and API client
│ ├── package.json
│ └── tailwind.config.ts
├── backend/ # FastAPI backend application
│ ├── app/
│ │ ├── api/routes/ # API endpoints
│ │ ├── core/ # Configuration and security
│ │ ├── db/ # Database session
│ │ ├── models/ # SQLAlchemy models
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # Business logic (AI, risk calculator, report generator)
│ │ └── workers/ # Background tasks
│ ├── alembic/ # Database migrations
│ ├── requirements.txt
│ ├── seed.py # Demo data seeding script
│ └── .env.example
├── infra/ # Docker configuration
│ ├── docker-compose.yml
│ ├── Dockerfile.backend
│ └── Dockerfile.frontend
├── docs/ # Documentation
└── trustos-plan.md # Detailed build plan and stages
Quick Start (Docker Compose)
Prerequisites
- Docker and Docker Compose installed
- Git
Setup
- Clone the repository:
git clone <repository-url>
cd trustos
- Copy environment files:
cp backend/.env.example backend/.env
- Start all services:
cd infra
docker-compose up --build
- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
Demo Credentials
The seed script creates a demo tenant "Acme Corp" with the following users:
- Executive (CEO): executive@acmecorp.io / TrustOS2024!
- IT Admin: it@acmecorp.io / TrustOS2024!
- TrustOS Admin: admin@trustos.com / TrustOS-Admin-2024!
Development Setup (Local)
Backend Setup
- Create a Python virtual environment:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration
- Initialize the database:
python seed.py
- Run the backend server:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Frontend Setup
- Install dependencies:
cd frontend
npm install
- Set up environment variables:
cp .env.example .env.local
# Edit .env.local with NEXT_PUBLIC_API_URL=http://localhost:8000
- Run the development server:
npm run dev
Database Migrations
TrustOS uses Alembic for database migrations. In development, tables are auto-created on startup. For production, use migrations:
cd backend
alembic revision --autogenerate -m "description"
alembic upgrade head
Key Features
Phase 1: Vault Audit (Current Implementation)
- Executive dashboard with Cyber Health Score
- Top 3 Risks with AI-translated business impact
- Risk trend visualization (90-day history)
- Findings management with remediation tracking
- Digital footprint center for executive exposure
- Multi-role authentication (Executive, IT Admin, TrustOS Admin)
- Vault Audit Report generation with PDF export
Phase 2: Monthly Monitoring (Planned)
- Continuous monitoring engine
- Daily automated assessments
- Certificate expiration monitoring
- CVE monitoring
- Cloud posture checks
- Breach intelligence integration
Phase 3: Full Platform (Planned)
- Attack path visualization
- AI Security Coach
- Executive protection services
- Board reporting
- Advanced integrations
Configuration
Backend Environment Variables
See backend/.env.example for the full list. Key variables:
DATABASE_URL: PostgreSQL connection string (async)SECRET_KEY: JWT signing key (generate withopenssl rand -hex 32)OPENAI_API_KEYorANTHROPIC_API_KEY: For AI featuresAI_PROVIDER:openaioranthropic
Frontend Environment Variables
NEXT_PUBLIC_API_URL: Backend API URL
Security Notes
- All API routes require authentication except
/healthand/api/v1/auth/login - Multi-tenant isolation enforced at the database and API level
- Role-based access control (RBAC) for different user types
- Authorization-first approach: only scan explicitly authorized assets
- Secrets should never be committed to git (use
.envfiles, ignored by git)
Testing
Run backend tests:
cd backend
pytest
Run frontend tests:
cd frontend
npm test
Deployment
Production Checklist
- Change
SECRET_KEYto a cryptographically secure random value - Set strong database passwords
- Configure production database (Supabase, RDS, etc.)
- Enable HTTPS/TLS
- Set up proper CORS origins
- Configure AI API keys with appropriate rate limits
- Set up logging and monitoring
- Enable database backups
- Review and update security headers
- Run Alembic migrations instead of auto-create tables
Documentation
- Business Plan: See
readplan.txtfor the complete business strategy - Build Plan: See
trustos-plan.mdfor detailed implementation stages - API Documentation: Available at
/docswhen backend is running
License
Proprietary - All rights reserved
Support
For technical issues or questions, contact the TrustOS development team.