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>
53 lines
1.3 KiB
Docker
53 lines
1.3 KiB
Docker
# Multi-stage build for production deployment
|
|
FROM node:18-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package*.json ./
|
|
|
|
# Install dependencies
|
|
RUN npm ci --only=production && npm cache clean --force
|
|
|
|
# Production stage
|
|
FROM node:18-alpine
|
|
|
|
# Set production environment
|
|
ENV NODE_ENV=production
|
|
|
|
WORKDIR /app
|
|
|
|
# Install curl for healthchecks
|
|
RUN apk add --no-cache curl wget
|
|
|
|
# Create non-root user
|
|
RUN addgroup -g 1001 -S nodejs && \
|
|
adduser -S nodejs -u 1001
|
|
|
|
# Copy dependencies from builder
|
|
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
|
|
|
|
# Copy application code
|
|
COPY --chown=nodejs:nodejs ../src ./src
|
|
COPY --chown=nodejs:nodejs ../public ./public
|
|
COPY --chown=nodejs:nodejs ../scripts ./scripts
|
|
COPY --chown=nodejs:nodejs ../docs ./docs
|
|
COPY --chown=nodejs:nodejs ../package*.json ./
|
|
COPY --chown=nodejs:nodejs ../.claude ./.claude
|
|
|
|
# Create necessary directories
|
|
RUN mkdir -p logs uploads audit-reports && \
|
|
chown -R nodejs:nodejs logs uploads audit-reports
|
|
|
|
# Switch to non-root user
|
|
USER nodejs
|
|
|
|
# Expose application port
|
|
EXPOSE 9000
|
|
|
|
# Health check
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
|
CMD wget --quiet --tries=1 --spider http://localhost:9000/api/health || exit 1
|
|
|
|
# Start application
|
|
CMD ["node", "src/server.js"]
|