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

ServiceTypeImageNotes
apiWeb servicePython 3.12-slim + GDAL + pdfplumberDjango runserver (dev) / Gunicorn (prod)
workerBackground workerSame as apiCelery worker — queues: default, cqi, notifications
beatBackground workerSame as apiCelery beat — DB scheduler, menu sync tasks
webWeb serviceNode 20 + ViteCCX React frontend
bmcWeb serviceNode 20 + ViteBusiness Management Console
dbManaged (Render)PostGIS 16-3.4Local: postgis/postgis Docker image
redisManaged (Render)Redis 7 AlpineCelery broker + result backend
mailDev onlyMailpitCatches all outbound email; UI at :8025

Git & Deploy Strategy

BranchEnvironmentDeploy
feature/*Local onlyNever deploys automatically
mainDev (dev.*.intelcann.app)Auto-deploys on push via Render
releaseProduction (*.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

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

ToolPurposeStatus
CursorAI-assisted IDE; Dev Container integrationActive
Docker DesktopLocal container runtime (Windows + Mac)Active
GitHub DesktopVersion control UIActive
RenderCloud hosting — dev + prodSetting up
Linear (MCP)Issue and sprint tracking — connected as Cursor MCP toolConnected, not in use
pytest + factory_boyBackend test suiteScaffolded
GitHub ActionsCI pipeline — lint, type-check, test on pushPlanned
SentryError tracking and performance monitoringPlanned