Project Structure (current)
PayPort Labs monorepo layout as of Schema 2 + Dual-Mode.
ppd-labs/
├── app/ # Platform (SIWE, town, arena, learn) — port 8121
├── alembic/ # Schema migrations (Postgres only)
├── payport-merchant-template/ # Canonical merchant starter (Dual-Mode)
├── micro_services/
│ ├── anchor/weather/ # @town_weather_api — :8140
│ ├── districts/ # Commercial + District Zero demos
│ └── districts/_shared/ # Shared 402 + Dual-Mode helpers
├── notes/
│ ├── AUTHORITY.md # Doc authority hierarchy
│ ├── Docs/academy|reference|… # Live Learn content
│ └── archive/ # Historical only — do not implement from these
├── deploy/ # systemd unit templates (User=payport)
├── scripts/preflight.sh
└── tests/
Public URLs
| Surface | URL |
|---|---|
| Platform | https://lab.payportdirect.com |
| Town UI | /town |
| Claim | /town/claim |
| Map API | /api/v1/town/map |
| Learn | /learn · /academy · /reference · /business |
Ports (this VPS)
See /srv/PORTS-README.md and notes/Docs/Misc.md. Platform 8121; Weather Anchor 8140; District Zero HVAC practice 8141; active district seats use 8123–8139 and 8143–8146 (trades commercial 8143–8145; hospitality includes 8146). Official Player Zero / lead dispatcher examples may use 8122. Legacy trades 8126–8128 are deprecated.
Documentation authority
See notes/AUTHORITY.md.