Development Environment
Three environments. Docker-based. GitHub → Render auto-deploy. GoDaddy DNS.
Environments
Local
Full stack in Docker Compose. Runs identically on any machine — Windows, Mac, Linux.
Django API:8010
CCX frontend:3000
BMC:3001
Mailpit:8025
PostgreSQL:5432
Redis:6379
Dev — intelcann.app
Auto-deploys on every push to main branch via Render.
SSOdev.id.*
APIdev.api.*
CCXdev.ccx.*
BMCdev.bmc.*
Mapsdev.maps.*
Socialdev.social.*
Production — intelcann.app
Manual deploy from release branch. Never auto-deploys.
SSOid.*
APIapi.*
CCXccx.*
BMCbmc.*
Mapsmaps.*
Socialsocial.*
Docker Architecture
| Service | Type | Image | Notes |
|---|---|---|---|
api | Web service | Python 3.12-slim + GDAL + pdfplumber | Django runserver (dev) / Gunicorn (prod) |
worker | Background worker | Same as api | Celery worker — queues: default, cqi, notifications |
beat | Background worker | Same as api | Celery beat — DB scheduler, menu sync tasks |
web | Web service | Node 20 + Vite | CCX React frontend |
bmc | Web service | Node 20 + Vite | Business Management Console |
db | Managed (Render) | PostGIS 16-3.4 | Local: postgis/postgis Docker image |
redis | Managed (Render) | Redis 7 Alpine | Celery broker + result backend |
mail | Dev only | Mailpit | Catches all outbound email; UI at :8025 |
Git & Deploy Strategy
| Branch | Environment | Deploy |
|---|---|---|
feature/* | Local only | Never deploys automatically |
main | Dev (dev.*.intelcann.app) | Auto-deploys on push via Render |
release | Production (*.intelcann.app) | Manual deploy only; cut from main when stable |
DNS & Hosting Setup
GoDaddy DNS
Each subdomain gets a CNAME record pointing to the Render service URL.
CNAME dev.api → icc-api-dev.onrender.com
CNAME dev.ccx → icc-web-dev.onrender.com
CNAME dev.bmc → icc-bmc-dev.onrender.com
... etc per service
CNAME dev.ccx → icc-web-dev.onrender.com
CNAME dev.bmc → icc-bmc-dev.onrender.com
... etc per service
Render SSL
Render auto-provisions TLS certificates via Let's Encrypt when a custom domain is added to a service. Wildcard cert *.intelcann.app can be provisioned via AWS Certificate Manager for production if needed.
Development Tooling
| Tool | Purpose | Status |
|---|---|---|
| Cursor | AI-assisted IDE; Dev Container integration | Active |
| Docker Desktop | Local container runtime (Windows + Mac) | Active |
| GitHub Desktop | Version control UI | Active |
| Render | Cloud hosting — dev + prod | Setting up |
| Linear (MCP) | Issue and sprint tracking — connected as Cursor MCP tool | Connected, not in use |
| pytest + factory_boy | Backend test suite | Scaffolded |
| GitHub Actions | CI pipeline — lint, type-check, test on push | Planned |
| Sentry | Error tracking and performance monitoring | Planned |