This document outlines the system requirements for deploying FeedForward in various environments. Requirements are categorized by deployment size and use case to help you choose the appropriate infrastructure.
Suitable for: - Small colleges or departments - Pilot programs - Development/testing environments
Suitable for: - Mid-sized universities - Multiple department deployments - Active production use
Suitable for: - Large universities - Multi-campus deployments - High-availability requirements
CPU: 2 cores (2.4GHz+)
RAM: 4GB
Storage: 20GB SSD
Network: 100 Mbps
Expected Capacity:
- Concurrent Users: 50-100
- Daily Submissions: 500
- Storage Growth: ~1GB/month
CPU: 4-8 cores (2.4GHz+)
RAM: 8-16GB
Storage: 100GB SSD
Network: 1 Gbps
Expected Capacity:
- Concurrent Users: 200-500
- Daily Submissions: 2,500
- Storage Growth: ~5GB/month
CPU: 16+ cores (2.4GHz+)
RAM: 32GB+
Storage: 500GB+ SSD (RAID recommended)
Network: 1-10 Gbps
Expected Capacity:
- Concurrent Users: 1,000+
- Daily Submissions: 10,000+
- Storage Growth: ~20GB/month
Supported Distributions:
Ubuntu: 20.04 LTS, 22.04 LTS
Debian: 11, 12
RHEL/CentOS: 8, 9
Amazon Linux: 2, 2023
Required Packages:
- python3 (3.8+)
- python3-pip
- python3-venv
- git
- sqlite3
- nginx (recommended)
- supervisor/systemd
Versions: 11.0+ (Big Sur or later)
Required Tools:
- Homebrew
- Python 3.8+ (via brew)
- Git
- SQLite (included)
Versions: Windows 10, Windows Server 2019+
Required Software:
- Python 3.8+ (python.org)
- Git for Windows
- Visual C++ Build Tools
- Windows Terminal (recommended)
Note: WSL2 recommended for production
Python Version: 3.8 minimum, 3.10+ recommended
Core Dependencies:
- fasthtml: Web framework
- uvicorn: ASGI server
- sqlite3: Database (included)
- bcrypt: Password hashing
- python-multipart: File uploads
- litellm: AI provider integration
- cryptography: Encryption
Development Tools:
- pytest: Testing
- black: Code formatting
- mypy: Type checking
- pip-tools: Dependency management
Version: 3.32.0+ (included with Python)
Configuration:
- WAL mode enabled
- Foreign keys enabled
- Auto-vacuum enabled
Limitations:
- Single file database
- Limited concurrent writes
- Max size: ~280TB (practical: 10GB)
Version: 12+
Benefits:
- Better concurrency
- Advanced features
- Horizontal scaling
Requirements:
- Dedicated database server
- Connection pooling
- Regular maintenance
Server: Uvicorn (included)
Usage:
- Development only
- Single process
- Auto-reload
Command: python app.py
Reverse Proxy: nginx
Configuration:
- SSL termination
- Static file serving
- Load balancing
- Rate limiting
Application Server: Uvicorn + Gunicorn
Configuration:
- Multiple workers
- Process management
- Graceful reloads
- Health checks
Minimum Bandwidth:
Per User: 1 Mbps
API Calls: 10 Mbps reserved
Recommended:
Institution: 100 Mbps+
Peak Usage: 500 Mbps
Considerations:
- File uploads (10MB max)
- AI API calls
- Concurrent users
- Backup transfers
Required Ports:
HTTP: 80 (redirect to HTTPS)
HTTPS: 443 (main access)
Internal Ports:
Application: 5001 (default)
Database: N/A (file-based)
Outbound Connections:
HTTPS: 443 (AI APIs)
SMTP: 587/465 (email)
Domain Setup:
A Record: feedforward.institution.edu
Optional:
CNAME: www.feedforward.institution.edu
SSL Certificate:
Type: Valid CA-signed
Coverage: Main domain + www
Renewal: Auto-renewal recommended
At least one required:
OpenAI:
- API Key required
- Billing enabled
- Usage limits configured
Anthropic:
- API Key required
- Approved account
Google AI:
- API Key or Service Account
- Project configured
Ollama (Local):
- Local server running
- Models downloaded
- Sufficient GPU/RAM
SMTP Requirements:
- SMTP server access
- Authentication credentials
- TLS/SSL support
- Appropriate send limits
Options:
- Institution SMTP
- Gmail (with app password)
- SendGrid
- Amazon SES
- Mailgun
Recommended Services:
- Application monitoring (New Relic, DataDog)
- Log aggregation (ELK, Splunk)
- Uptime monitoring (Pingdom, UptimeRobot)
- Error tracking (Sentry)
Requirements:
- Valid SSL certificate
- TLS 1.2 minimum
- Strong cipher suites
- HSTS enabled
Certificate Options:
- Let's Encrypt (free)
- Commercial CA
- Institution wildcard
Inbound Rules:
- 443/tcp from anywhere (HTTPS)
- 80/tcp from anywhere (redirect)
- 22/tcp from admin IPs (SSH)
Outbound Rules:
- 443/tcp to anywhere (APIs)
- 587/tcp to SMTP server
- 53/udp to DNS servers
Internal:
- 5001/tcp localhost only
Server Access:
- SSH key authentication
- Sudo access limited
- Regular security updates
Application Access:
- Strong admin passwords
- Regular key rotation
- Audit logging enabled
CPU Scaling:
- 1 core per 50 concurrent users
- Additional cores for AI processing
RAM Scaling:
- 100MB per concurrent user
- 2GB base system requirement
- Cache allocation extra
Storage Scaling:
- 10MB per submission average
- 1GB per 1000 users
- 20% overhead for indexes
Storage Needs:
- 3x database size minimum
- Remote backup location
- Encryption capability
Backup Frequency:
- Database: Daily
- Configuration: On change
- Logs: Weekly rotation
RTO (Recovery Time Objective): 4 hours
RPO (Recovery Point Objective): 24 hours
Test Schedule:
- Monthly restore test
- Quarterly DR drill
- Annual full recovery
Considerations:
- Data must stay in country/region
- AI API calls may cross borders
- Backup location compliance
Solutions:
- Local deployment
- Regional AI endpoints
- Compliant backup services
Logging:
- All authentication attempts
- Data access patterns
- Configuration changes
- API usage
Retention:
- Audit logs: 1 year
- Access logs: 90 days
- Error logs: 30 days
Purpose: Local development
Requirements:
- Python 3.8+
- Git
- Text editor/IDE
- 2GB RAM free
- 5GB disk space
Optional:
- Docker Desktop
- PostgreSQL (testing)
- Multiple browsers
Purpose: Pre-production testing
Requirements:
- Mirrors production
- Separate database
- Test data only
- Same OS version
- Similar resources (50%)
Purpose: Live system
Requirements:
- Meets all requirements above
- Redundant components
- Monitoring active
- Backup configured
- Security hardened
✓ 2 CPU cores, 4GB RAM, 20GB SSD
✓ Ubuntu 20.04 or similar
✓ Python 3.8+
✓ One AI API key
✓ SMTP access
✓ Domain name
✓ SSL certificate
✓ 8 CPU cores, 16GB RAM, 100GB SSD
✓ Ubuntu 22.04 LTS
✓ Python 3.10+
✓ Multiple AI providers
✓ Dedicated SMTP
✓ Monitoring setup
✓ Automated backups
✓ Load balancer ready
Start with minimum requirements and scale up based on actual usage patterns. Most institutions find the recommended specifications sufficient for their needs.