This is the single source of truth for whatβs needed to build and run Piper Morgan from scratch.
Why: Piper Morgan requires Python 3.12.x specifically
Status Check:
python3.12 --version # Should show: Python 3.12.x
Install: See step-by-step-installation.md Check 1
Why: Clone the repository from GitHub
Status Check:
git --version # Should show: git version 2.x.x
Install: See step-by-step-installation.md Check 2
Why: Runs PostgreSQL, Redis, ChromaDB, Temporal, and Traefik
β±οΈ First time installing Docker? Docker Desktop will guide you through account creation, terms acceptance, and initial setup (~5-10 minutes). You can use your Google account for quick signup.
Status Check:
docker --version # Should show: Docker version 20.x+
Mac: Must be running (click Docker icon to launch, wait for whale icon to be solid, not grayed) Windows: Must be running + WSL 2 enabled
Install: See step-by-step-installation.md Check 4
These are automatically managed by the wizard, but listed for reference:
Stored securely in OS keychain, not environment variables. Use setup wizard:
python3.12 main.py setup
export OPENAI_API_KEY="sk-..." # For OpenAI models
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude models
export GEMINI_API_KEY="..." # For Google models
export NOTION_API_KEY="..." # Notion integration
export SLACK_BOT_TOKEN="xoxb-..." # Slack bot
export SLACK_SIGNING_SECRET="..." # Slack signing secret
When you run docker-compose up -d postgres, these services start:
| Service | Port | Purpose | Required |
|---|---|---|---|
| PostgreSQL | 5433 | Main database | β Yes |
| Redis | 6379 | Cache/queue | β Yes |
| ChromaDB | 8000 | Vector database | β Yes |
| Temporal | 7233, 8088 | Workflow engine | β Yes |
| Traefik | 80, 8090 | API gateway | β Yes |
Health Check:
docker ps # Shows all running containers
Port Availability: If any ports are in use, youβll see Docker startup errors. Free up ports or stop conflicting services.
After cloning, youβll have:
piper-morgan-product/
βββ main.py # Entry point
βββ requirements.txt # Python dependencies
βββ docker-compose.yml # Docker service definitions
βββ config/
β βββ PIPER.user.md.example # Preferences template (NOT API keys!)
β βββ PIPER.user.md # (Created by you) User preferences
βββ scripts/
β βββ setup_wizard.py # Interactive setup
β βββ status_checker.py # Health check
β βββ preferences_questionnaire.py # Personality settings
βββ services/ # Core application code
βββ web/ # FastAPI web application
βββ tests/ # Test suite
βββ venv/ # (Created by wizard) Python environment
PIPER.user.md (User Preferences, NOT Secrets)Created by: Wizard or manually (cp config/PIPER.user.md.example config/PIPER.user.md)
Contains: Working hours, timezone, project preferences, personality settings
Does NOT contain: API keys (those go in OS keychain)
Location: config/PIPER.user.md
.env (Optional, for advanced users)Contains: Environment variable overrides Note: Most users donβt need this; wizard handles it
docker-compose.yml (Service Definitions)Contains: PostgreSQL, Redis, ChromaDB, Temporal configuration Note: Do not modify unless you know what youβre doing
| Provider | Required? | Format | How to Get |
|---|---|---|---|
| OpenAI | β Yes | sk-... |
https://platform.openai.com/api-keys |
| Anthropic | Optional | sk-ant-... |
https://console.anthropic.com/account/keys |
| Google Gemini | Optional | API key | https://aistudio.google.com/app/apikey |
| Perplexity | Optional | API key | https://www.perplexity.ai/settings/api |
piper-postgrespiperpiper_morganpiper_postgres_data_v1 (persistent)data/
βββ redis/ # Redis persistence
βββ chromadb/ # Vector database storage
Run these to verify everything is set up:
# Check all prerequisites
python3.12 --version # Should show: Python 3.12.x
git --version # Should show: git version 2.x+
docker --version # Should show: Docker version 20.x+
docker ps # Should show running containers
# Check Piper Morgan setup
cd piper-morgan-product
source venv/bin/activate # Activate virtual environment
python -c "import structlog; print('β
Dependencies installed')"
Once all prerequisites are met:
# 1. Start Docker database
docker-compose up -d postgres
# 2. Run wizard (handles everything else)
python3.12 main.py setup
# 3. Start Piper Morgan
python3.12 main.py
| Issue | Cause | Fix |
|---|---|---|
Cannot connect to Docker daemon |
Docker Desktop not running | Launch Docker Desktop, wait for whale icon |
no such service: db |
Wrong docker-compose service name | Use: docker-compose up -d postgres |
ModuleNotFoundError: structlog |
Dependencies not installed | Run: pip install -r requirements.txt |
Python 3.12 not found |
Wrong Python version | Install Python 3.12.10 from python.org |
Address already in use |
Port 8001 occupied | Kill other process: lsof -i :8001 |
Database accessible error |
PostgreSQL not running | Run: docker-compose up -d postgres (separate terminal) |
step-by-step-installation.md (user-friendly walkthrough)python3.12 main.py setup (interactive wizard)python3.12 main.py to launch the applicationLast Updated: October 29, 2025 Version: 1.0 - Comprehensive prerequisite guide Status: Ready for alpha testing