Skip to content

Demo Environment

The demo environment runs on a dedicated server in the dev account and hosts a stable, customer-facing deployment of the CWIQ Orchestrator. It is deployed exclusively via Ansible — never by CI/CD pipelines.


Server Reference

Attribute Value
Hostname orchestrator-demo-cwiq-io
Tailscale IP 100.98.55.127
VPC Private IP 10.1.34.248
Instance ID i-0ae5796fe8cd748e5
Subnet 10.1.34.0/24 (gitlab-1a)
DNS orchestrator.demo.cwiq.io
SSH — app ssh cwiq@orchestrator-demo-cwiq-io
SSH — admin/Ansible ssh ec2-user@orchestrator-demo-cwiq-io

Volumes

Mount Size Backup Contents
/ 30 GB No OS
/data 100 GB Daily PostgreSQL, Redis, Redpanda, SSL certs, app config
/var/lib/containerd 50 GB No Container images

Temporal Worker

The demo server runs the Temporal workflow worker as a host systemd service (not a Docker container):

Attribute Value
Service name cwiq-agent-orchestrator.service
User cwiq-agent-runner
Group cwiq-agents
Virtual environment /opt/cwiq/orchestrator-venv
Environment file /etc/cwiq/cwiq-agent-orchestrator.env
# Check worker status
systemctl status cwiq-agent-orchestrator

# View recent logs
journalctl -u cwiq-agent-orchestrator --since "30 minutes ago" --no-pager

Environment Configuration

Demo uses Pydantic-enforced environment settings:

Setting Value
cwiq_environment demo (display name)
cwiq_server_environment staging (Pydantic Literal — must be development/staging/production)

In Ansible group vars:

cwiq_environment: demo
cwiq_server_environment: staging

Application-level branding is controlled by environment variables (client-agnostic platform):

Variable Purpose Example
DEMO_ORG_NAME Seeded organization display name "Acme Corp"
DEMO_ORG_SLUG URL slug "acme-corp"
DEFAULT_EMAIL_DOMAIN Email domain for seeded users "acme.com"
ADMIN_DEFAULT_PASSWORD Root admin password (from Vault)

Deployment Method

Demo is Ansible-only — never CI/CD

The demo environment is never deployed by GitLab CI/CD pipelines. All deployments (including updates) go through Ansible playbooks run from the ansible server.

CI/CD jobs for non-DEV environments were removed from all project pipelines in February 2026.

# Deploy to demo from ansible server
ssh ansible@ansible-shared-cwiq-io
ansible-helper
ansible-playbook cwiq-orchestrator/playbooks/deploy-orchestrator.yml \
  -i inventory/demo/ -v

Full stack deployment uses deploy-full.yml in ansible-playbooks/orchestrator/playbooks/.


Health Check

curl -f https://orchestrator.demo.cwiq.io/api/health
curl -s "https://orchestrator.demo.cwiq.io/api/health?detailed=true" | python3 -m json.tool