Chicago Offline

Open-Source & Infrastructure

Resources for developers and contributors to the Chicago Mesh network.

๐Ÿ—๏ธ Infrastructure

Production Environment

Development Environment

Note: Both environments run the same stack — Mosquitto (plain TCP) + meshcore-mqtt-broker (WebSocket+JWT) + CoreScope subscribing to both. Dev and prod are on separate EC2 instances and must not share containers. Broker subscriber accounts: corescope (read), admin (debug).

๐Ÿ“ฆ GitHub Repositories

Main Deployment Repo

CoreScope Source (Fork)

MeshCore Chicagoland Observer Firmware

Mesh Health Check

๐Ÿš€ Deployment

Automated (GitHub Actions)

# Push to main โ†’ deploys to dev only
git push origin main

# Promote dev โ†’ production
git checkout prod && git merge main && git push && git checkout main

# Manual workflow dispatch
gh workflow run deploy.yml -f environment=dev
gh workflow run deploy.yml -f environment=production
gh workflow run deploy.yml -f environment=dev -f reset_db=true

Manual Deployment

# SSH into EC2
ssh ubuntu@<ec2-ip>  # prod or dev IP

# Pull latest changes
cd ~/chimesh-mqtt
git pull origin main  # or dev

# Run deploy script
ENVIRONMENT=production bash deploy.sh  # or ENVIRONMENT=dev

๐Ÿ”ง Development Workflow

  1. Make changes to CoreScope fork or config files
  2. Commit and push to main branch
  3. GitHub Actions auto-deploys to dev (dev-scope.chicagooffline.com)
  4. Test changes in browser
  5. Promote to prod: git checkout prod && git merge main && git push && git checkout main
  6. GitHub Actions auto-deploys to production (scope.chicagooffline.com)

๐Ÿ“Š Monitoring

Logs (Production)

ssh ubuntu@<prod-ip>

# CoreScope logs
docker logs -f corescope

# MQTT broker logs
docker logs -f mosquitto

# Caddy (reverse proxy) logs
docker logs -f caddy

# Health Check logs
docker logs -f meshcore-health-check

Logs (Development)

ssh ubuntu@<dev-ip>

# CoreScope logs
docker logs -f corescope-dev

# Mosquitto logs
docker logs -f mosquitto

# WS MQTT broker logs
docker logs -f meshcore-mqtt-broker

# Health Check logs
docker logs -f meshcore-health-check-dev

# Caddy logs
docker logs -f caddy

๐Ÿ“ก Connecting Observer Nodes

Want to add your node's packet data to the Chicago Offline live map and scope?

See the observer setup guide →

Covers the one-line installer, plain TCP, WebSocket+JWT, and per-node-type config.

๐Ÿ’ก Contributing

Interested in contributing to the Chicago Mesh network infrastructure?