Before installing FeedForward, ensure your system meets these requirements:
First, clone the FeedForward repository from GitHub:
git clone https://github.com/michael-borck/feed-forward.git
cd feed-forward
If you don't have Git installed, you can [download it here](https://git-scm.com/downloads) or download the repository as a ZIP file from GitHub.
Create and activate a Python virtual environment to isolate dependencies:
On Linux/macOS:
python -m venv venv
source venv/bin/activate
On Windows:
python -m venv venv
venv\Scripts\activate
Your command prompt should now show `(venv)` to indicate the virtual environment is active.
Install all required Python packages:
pip install -r requirements.txt
This will install: - FastHTML (web framework) - SQLite database support - AI provider integrations (LiteLLM) - File processing libraries - Security and encryption tools
Create a .env file in the project root with your configuration:
# Create .env file
cp .env.example .env # or create manually
Edit the .env file with your settings:
# Security
SECRET_KEY=your-secret-key-here # Generate a strong random key
# Email Configuration (for invitations)
SMTP_SERVER=smtp.example.com
SMTP_PORT=587
SMTP_USER=your-email@example.com
SMTP_PASSWORD=your-smtp-password
SMTP_FROM=noreply@example.com
# Application Settings
APP_DOMAIN=http://localhost:5001
APP_NAME=FeedForward
DEBUG=false
# AI Provider Keys (add as needed)
OPENAI_API_KEY=your-openai-key
ANTHROPIC_API_KEY=your-anthropic-key
# Add other provider keys as needed
**Security Note**: Never commit your `.env` file to version control. The `.gitignore` file should already exclude it.
Create the database and tables:
# Create data directory
mkdir -p data
# Initialize database
python app/init_db.py
You should see output confirming successful database creation:
✓ Database initialized successfully
✓ All tables created
✓ Default data inserted
Create your first administrator account:
python tools/create_admin.py
Follow the prompts to set up the admin credentials.
Start the FeedForward server:
python app.py
You should see:
INFO: Uvicorn running on http://localhost:5001 (Press CTRL+C to quit)
Visit [http://localhost:5001](http://localhost:5001) in your web browser to access FeedForward.
FeedForward includes a privacy-focused cleanup script that removes student submission content after feedback is generated. Set this up as a scheduled task:
Manual execution:
python tools/cleanup_drafts.py
Cron job (Linux/macOS):
# Add to crontab for daily 2 AM execution
0 2 * * * cd /path/to/feed-forward && /path/to/venv/bin/python tools/cleanup_drafts.py >> logs/cleanup.log 2>&1
Windows Task Scheduler:
1. Open Task Scheduler
2. Create Basic Task
3. Set trigger (daily)
4. Set action to run: C:\path\to\venv\Scripts\python.exe C:\path\to\feed-forward\tools\cleanup_drafts.py
For development with auto-reload:
# Set debug mode in .env
DEBUG=true
# Run with auto-reload
python app.py
To verify your installation:
Port already in use:
# Change port in app.py or use environment variable
PORT=5002 python app.py
Module not found errors:
# Ensure virtual environment is activated
# Reinstall requirements
pip install -r requirements.txt
Database errors:
# Re-initialize database
rm data/feedforward.db
python app/init_db.py
Permission errors (Linux/macOS):
# Ensure data directory is writable
chmod 755 data/
Need help? Check our [Troubleshooting Guide](/deployment/troubleshooting) or [open an issue](https://github.com/michael-borck/feed-forward/issues) on GitHub.