Complete production-ready deployment package enabling implementers to deploy Tractatus with all 5 governance services in 30 minutes using Docker Compose. **Package Contents (15KB):** 1. docker-compose.yml - MongoDB 7.0 with authentication - Tractatus Node.js application - Health checks and volume management - Network configuration 2. Dockerfile - Multi-stage build (builder + production) - Security-hardened (non-root user, minimal image) - Health checks integrated - Production-optimized 3. .env.example - Complete configuration template - All 5 governance service toggles - Required secrets (MongoDB, JWT, Admin) - Feature flags and optional services - Rate limiting, CORS, CSP configuration 4. sample-governance-rules.json - 10 production-ready governance rules - STR-001: BoundaryEnforcer (human approval for values) - STR-002: CrossReferenceValidator (port specifications) - OPS-001: ContextPressureMonitor (pressure monitoring) - OPS-002: InstructionPersistenceClassifier (classification) - TAC-001: MetacognitiveVerifier (complex verification) - SYS-001/002: Database and project isolation - SEC-001: CSP enforcement - VAL-001: Te Tiriti commitment - QUAL-001: World-class quality 5. verify-deployment.sh - Automated verification (40+ checks) - 7 test categories: env, Docker, network, DB, services, security, files - Color-coded output (pass/fail/warn) - CI/CD integration ready 6. TROUBLESHOOTING.md - Comprehensive troubleshooting guide - 6 major sections covering common deployment issues - Docker, database, application, services, performance, security - Quick reference commands 7. README.md - "Deploy in 30 minutes" guide - 6-step quickstart (2+5+10+3+5+5 minutes) - Configuration guide (basic + production) - Testing procedures and monitoring - Architecture diagram - Backup/restore procedures 8. scripts/load-governance-rules.js - Loads sample rules into MongoDB - JSON validation and error handling - Creates indexes (rule_id, quadrant, enforced_by) - Summary statistics by quadrant and service **Implementer Page Updates:** - Added prominent "Deployment Quickstart Kit" section after hero - Green gradient background with "NEW" badge - Two-column layout: description + download / file list - Download button: /downloads/tractatus-quickstart.tar.gz (15KB) - Professional design matching site aesthetic **Deliverables:** ✅ Production-ready Docker Compose configuration ✅ Complete environment configuration template ✅ 10 sample governance rules (all 5 services) ✅ Automated deployment verification (40+ tests) ✅ Comprehensive troubleshooting guide ✅ Step-by-step deployment guide (30 minutes) ✅ Database initialization scripts ✅ Package deployed to production **Testing:** - Package structure validated - File permissions correct (644/755) - Deployed to https://agenticgovernance.digital/downloads/ - Implementer page updated with download section **Roadmap Progress:** Phase 1, Week 2, Task 6: Deployment Quickstart Kit - COMPLETED Priority: High | Effort: 3-4 days | Status: ✅ Done Next: Task 8 - Technical Architecture Diagram (Week 3) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
8.6 KiB
Tractatus Deployment Troubleshooting Guide
This guide covers common issues when deploying the Tractatus Framework.
Table of Contents
- Docker Issues
- Database Connection Problems
- Application Won't Start
- Governance Services Not Working
- Performance Issues
- Security & Access Issues
Docker Issues
Container Won't Start
Symptom: docker compose up fails or container exits immediately
Solutions:
-
Check Docker daemon is running:
docker info -
Check for port conflicts:
lsof -i :9000 # Check if port 9000 is in use lsof -i :27017 # Check if MongoDB port is in use -
View container logs:
docker compose logs tractatus-app docker compose logs mongodb -
Remove and rebuild:
docker compose down -v docker compose build --no-cache docker compose up
Permission Denied Errors
Symptom: Container logs show "EACCES: permission denied"
Solution:
-
Fix directory permissions:
chmod -R 755 deployment-quickstart/ chown -R 1001:1001 logs uploads audit-reports -
Check Docker user mapping:
- Container runs as user ID 1001 (nodejs)
- Ensure host directories are accessible
Database Connection Problems
Cannot Connect to MongoDB
Symptom: Application logs show "MongoServerError" or "ECONNREFUSED"
Solutions:
-
Check MongoDB is running:
docker compose ps mongodb docker compose logs mongodb -
Verify MongoDB health:
docker exec tractatus-mongodb mongosh --eval "db.runCommand({ ping: 1 })" -
Check connection string in .env:
# Ensure MONGODB_URI format is correct: mongodb://tractatus:YOUR_PASSWORD@mongodb:27017/tractatus_prod?authSource=admin -
Reset MongoDB:
docker compose down docker volume rm tractatus_mongodb_data docker compose up -d mongodb # Wait 30 seconds for initialization docker compose up tractatus-app
Authentication Failed
Symptom: "Authentication failed" in logs
Solution:
-
Check credentials in .env:
grep MONGODB_ .env -
Ensure username/password match in docker-compose.yml and .env
-
Reset MongoDB authentication:
docker compose down docker volume rm tractatus_mongodb_data tractatus_mongodb_config docker compose up -d
Application Won't Start
Port Already in Use
Symptom: "Error: listen EADDRINUSE: address already in use :::9000"
Solution:
-
Find process using port 9000:
lsof -i :9000 kill -9 <PID> -
Or change port in .env:
APP_PORT=9001Update docker-compose.yml ports section:
ports: - "9001:9000"
Missing Environment Variables
Symptom: Application starts but features don't work
Solution:
-
Verify all required .env variables are set:
./verify-deployment.sh -
Check for default/placeholder values:
grep "CHANGE THIS" .env grep "YOUR_" .env -
Generate secure secrets:
# JWT Secret openssl rand -base64 32 # Session Secret openssl rand -base64 32
Governance Services Not Working
BoundaryEnforcer Not Blocking
Symptom: Values decisions not being blocked
Solutions:
-
Check service is enabled in .env:
grep BOUNDARY_ENFORCER_ENABLED .env # Should be: BOUNDARY_ENFORCER_ENABLED=true -
Test endpoint directly:
curl -X POST http://localhost:9000/api/demo/boundary-check \ -H "Content-Type: application/json" \ -d '{"scenario":"privacy-decision"}' -
Check application logs:
docker compose logs tractatus-app | grep BoundaryEnforcer
Classification Not Working
Symptom: Instructions not being classified
Solutions:
-
Check InstructionPersistenceClassifier is enabled:
grep PERSISTENCE_CLASSIFIER_ENABLED .env -
Verify instruction history file exists:
docker exec tractatus-app ls -la .claude/instruction-history.json -
Test classification endpoint:
curl -X POST http://localhost:9000/api/demo/classify \ -H "Content-Type: application/json" \ -d '{"instruction":"Use MongoDB port 27027"}'
Context Pressure Not Monitoring
Symptom: No pressure warnings even under load
Solutions:
-
Verify ContextPressureMonitor is enabled:
grep CONTEXT_PRESSURE_ENABLED .env -
Check token tracking:
docker compose logs tractatus-app | grep "Context Pressure" -
Test pressure check:
curl -X POST http://localhost:9000/api/demo/pressure-check \ -H "Content-Type: application/json" \ -d '{"tokens":150000,"messages":50,"errors":5}'
Performance Issues
Slow Response Times
Symptom: API requests taking >2 seconds
Solutions:
-
Check MongoDB indexes:
docker exec tractatus-mongodb mongosh tractatus_prod --eval "db.getCollectionNames().forEach(function(col) { print(col); db[col].getIndexes(); })" -
Monitor container resources:
docker stats tractatus-app tractatus-mongodb -
Increase container memory limits in docker-compose.yml:
deploy: resources: limits: memory: 2G reservations: memory: 1G -
Check for query bottlenecks:
docker compose logs tractatus-app | grep "slow query"
High Memory Usage
Symptom: Container using excessive memory
Solutions:
-
Check for memory leaks:
docker stats --no-stream tractatus-app -
Restart container periodically:
docker compose restart tractatus-app -
Reduce rate limit max requests in .env:
RATE_LIMIT_MAX_REQUESTS=50
Security & Access Issues
CORS Errors
Symptom: Browser console shows "blocked by CORS policy"
Solution:
-
Update CORS_ORIGIN in .env:
CORS_ORIGIN=https://your-domain.com,https://www.your-domain.com -
For development, allow localhost:
CORS_ORIGIN=http://localhost:9000,http://127.0.0.1:9000
CSP Violations
Symptom: Browser console shows "Content Security Policy" errors
Solution:
-
Check CSP configuration:
curl -I http://localhost:9000 | grep Content-Security-Policy -
Temporarily disable CSP for debugging:
CSP_ENABLED=false -
Fix inline styles/scripts in HTML files (don't disable CSP in production!)
Admin Login Not Working
Symptom: Cannot log in to /admin
Solutions:
-
Verify admin account exists:
docker exec tractatus-mongodb mongosh tractatus_prod --eval "db.users.findOne({role:'admin'})" -
Reset admin password:
docker compose run --rm tractatus-app node scripts/seed-admin.js -
Check JWT_SECRET is set:
grep JWT_SECRET .env
Still Having Issues?
Collect Diagnostic Information
# Create diagnostic report
cat > diagnostic-report.txt <<EOF
=== System Info ===
$(uname -a)
=== Docker Version ===
$(docker --version)
$(docker compose version)
=== Container Status ===
$(docker compose ps)
=== Application Logs (last 100 lines) ===
$(docker compose logs --tail=100 tractatus-app)
=== MongoDB Logs (last 50 lines) ===
$(docker compose logs --tail=50 mongodb)
=== Environment Check ===
$(./verify-deployment.sh)
EOF
echo "Diagnostic report saved to diagnostic-report.txt"
Get Help
- Check documentation: https://agenticgovernance.digital/docs
- Review case studies: https://agenticgovernance.digital/docs/case-studies
- Submit issue: https://github.com/AgenticGovernance/tractatus-framework/issues
- Email: research@agenticgovernance.digital
Quick Reference Commands
# Start deployment
docker compose up -d
# Check status
docker compose ps
# View logs
docker compose logs -f tractatus-app
# Run verification
./verify-deployment.sh
# Restart services
docker compose restart
# Stop all services
docker compose down
# Full reset (⚠️ destroys data)
docker compose down -v
docker compose up -d
Last Updated: October 12, 2025 Version: 1.0.0