Piper Morgan: Comprehensive Prerequisites & System Requirements

This is the single source of truth for what’s needed to build and run Piper Morgan from scratch.


πŸ–₯️ System Requirements

Minimum

Supported Platforms


πŸ”§ Pre-Installation Software

1. Python 3.12 (REQUIRED)

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


2. Git (REQUIRED)

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


3. Docker Desktop (REQUIRED)

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


πŸ“¦ Environment Variables (Optional for Local Dev)

These are automatically managed by the wizard, but listed for reference:

API Keys (via OS Keychain - Preferred)

Stored securely in OS keychain, not environment variables. Use setup wizard:

python3.12 main.py setup

Alternative: Environment Variables (for headless/servers)

export OPENAI_API_KEY="sk-..."           # For OpenAI models
export ANTHROPIC_API_KEY="sk-ant-..."    # For Claude models
export GEMINI_API_KEY="..."              # For Google models

Optional: Integration Credentials

export NOTION_API_KEY="..."              # Notion integration
export SLACK_BOT_TOKEN="xoxb-..."        # Slack bot
export SLACK_SIGNING_SECRET="..."        # Slack signing secret

🐳 Docker Services & Ports

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.


πŸ“ Directory Structure

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

πŸ“‹ Configuration Files

1. 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

2. .env (Optional, for advanced users)

Contains: Environment variable overrides Note: Most users don’t need this; wizard handles it

3. docker-compose.yml (Service Definitions)

Contains: PostgreSQL, Redis, ChromaDB, Temporal configuration Note: Do not modify unless you know what you’re doing


πŸ”‘ API Keys & Security

Supported LLM Providers

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

Storage Location


πŸ’Ύ Database & Volumes

PostgreSQL Database

Data Directories

data/
β”œβ”€β”€ redis/          # Redis persistence
└── chromadb/       # Vector database storage

πŸ§ͺ Verification Commands

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')"

πŸš€ Quick Start

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

πŸ†˜ Common Issues & Fixes

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)

πŸ“š Next Steps

  1. Read: step-by-step-installation.md (user-friendly walkthrough)
  2. Run: python3.12 main.py setup (interactive wizard)
  3. Configure: Answer wizard prompts for user creation & API keys
  4. Start: python3.12 main.py to launch the application

Last Updated: October 29, 2025 Version: 1.0 - Comprehensive prerequisite guide Status: Ready for alpha testing