Skip to content

Dube Box — Where Everything Lives

Start here if you just need to find something fast. For the deeper how-to (restart commands, deployment workflows, security config), see the Server Management Guide.

Box: isutech-svr-01, 41.78.233.110, SSH alias dube-tradeport (ssh -p 33822 isutech-admin@41.78.233.110).


Live apps — 16 apps, DNS flipped, in production

Section titled “Live apps — 16 apps, DNS flipped, in production”
AppPathPortRuntimeDomainDatabase
Portfolio/data/www/nhlanhla-portfolio/—nginx staticnhlanhla.isutech.co.za—
DealVault/data/www/dealvault/3050PM2 dealvaultdealvault.isutech.co.zadealvault
BuildQ API/data/www/buildq/apps/api/4040PM2 buildq-apibuildq.isutech.co.za/apibuildq
BuildQ Web/data/www/buildq/apps/web/3040PM2 buildq-webbuildq.isutech.co.zabuildq (shared)
Buka/opt/buka/8000systemd bukabuka.isutech.co.zaSQLite buka.db
Tumi Backend/data/www/tumi-backend/8004systemd tumi-backendtumi.isutech.co.za/apiSQLite wedding.db
Tumi Frontend/data/www/tumi-frontend/—nginx statictumi.isutech.co.za—
ThriveSend/data/www/thrivesend/3005PM2 thrivesendthrivesend.isutech.co.zathrivesend_b2b2g
ConformEdge/data/www/conformedge/3020PM2 conformedgeconformedge.co.za (external, GoDaddy)conformedge
KopanoWorks API/data/www/kopanoworks/apps/api/3010PM2 kopanoworkskopanoworks.isutech.co.zakopanoworks
KopanoWorks Admin/data/www/kopanoworks/apps/web-admin/3011PM2 kopanoworks-adminadmin.kopanoworks.isutech.co.zakopanoworks (shared)
ProspectIQ/data/www/prospect-iq/8002/3002systemd ×4 (api, frontend, worker, beat)prospectiq.isutech.co.zaprospectiq_prod
QueueHere/data/www/queue-here/3000systemd queueherequeuehere.isutech.co.zaqueuehere_prod
AssessFlow/data/www/assess-flow/5004/5005/3006PM2 ×3 (backend, meims-worker, frontend)assess-flow.isutech.co.zaassessflow
PropertyData Engine/data/www/propertydata-engine/8001systemd propertydata-engineinternal only — called by AssessFlowpropertydata_engine + reads AssessFlow’s DB
PoleloDMS/data/www/polelo-dms/ (Docker Compose)8100Docker: app, worker, nginx, redis, meilisearch, nextcloudpolelodms.co.za (external, Host-H)polelo_dms, nextcloud, tenant_demo

Note on registrars — not all .co.za domains are the same provider. Most isutech.co.za subdomains are on Afrihost. conformedge.co.za is on GoDaddy. polelodms.co.za (and thebangers.co.za) is on Host-H. Check before assuming a DNS change goes through the usual panel.


Not yet migrated — still on Hetzner (production-server-01, 46.224.40.5)

Section titled “Not yet migrated — still on Hetzner (production-server-01, 46.224.40.5)”
  • isutech.co.za (flagship site) + DocsHub (this site — Astro build + authelia auth gate + security-api)
  • SANSA, SACE, AutoSlip
  • Umdoni, MatchMind, and a few others whose live-vs-retired status was never confirmed

⚠️ If a domain above resolves to 41.78.233.110 but nothing in the “Live apps” table matches it, don’t trust what loads — you’re seeing whichever app nginx falls back to by default (BuildQ or AssessFlow, depending on config order), not a real error page. This happened on 2026-08-09 when several domains were flipped before their apps existed on Dube. Always check the app is actually deployed here first.


Base infrastructure, shared by everything above

Section titled “Base infrastructure, shared by everything above”
ServiceNotes
nginxone vhost file per app under /etc/nginx/sites-available/, symlinked into sites-enabled/ — verify it’s actually a symlink, not a stale copy (bit us once on the AssessFlow cutover)
PostgreSQL 16one role + one database per app, localhost:5432
Redisshared instance, localhost:6379 — different DB index per app that needs a real datastore (not just cache), e.g. ProspectIQ on index 2
pm2-isutech-admin.serviceresurrects the saved PM2 process list on reboot — tested working
Dockerinstalled 2026-08-09 for PoleloDMS; wasn’t part of the original base-build
certbotone cert per domain, auto-renewal
CrowdSec + auditd + AIDEsecurity baseline, untouched since the original hardening pass

Terminal window
ssh dube-tradeport
pm2 list # PM2-managed apps
systemctl list-units --type=service --state=running # systemd services
docker ps -a # Docker containers (PoleloDMS)
ls /etc/nginx/sites-enabled/ # every routed domain
sudo -u postgres psql -c '\l' # every database

The MOTD (shown on every SSH login) also has a live “Application services” panel reflecting real-time status.