Skip to content

Commit 509acf3

Browse files
hyperpolymathclaude
andcommitted
feat: add PORT-REGISTRY — canonical port assignments for ecosystem
Audited all repos (2026-03-24). Found 8 projects sharing port 4000 and 9 sharing port 8080 (framework defaults). Assigned unique ports to each project (4010-4060 range for Phoenix apps). Documents commonly blocked ports, VeriSimDB instance policy, and ephemeral port strategy for infrequent services. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0936acf commit 509acf3

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

PORT-REGISTRY.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Port Registry — hyperpolymath ecosystem
2+
# Last audited: 2026-03-24
3+
#
4+
# RULE: Every project MUST use a unique port. No two projects share a port.
5+
# Check this file BEFORE assigning ports in new projects.
6+
7+
## Assigned Ports (CANONICAL — use these)
8+
9+
| Port | Project | Service | Protocol |
10+
|------|---------|---------|----------|
11+
| 4010 | stapeln | Phoenix backend | HTTP |
12+
| 4020 | burble | Phoenix voice server | HTTP |
13+
| 4030 | idaptik | Sync server | HTTP |
14+
| 4040 | gossamer | Dev server | HTTP |
15+
| 4050 | ambientops | Composer | HTTP |
16+
| 4060 | reposystem | GUI backend | HTTP |
17+
| 7700 | boj-server | Main MCP API | HTTP |
18+
| 7701 | boj-server | Browser bridge | HTTP |
19+
| 7800 | boj-server | Cartridge runner | HTTP |
20+
| 8080 | verisimdb | Default API (standalone) | HTTP |
21+
| 8081 | echidna | Neural/prover API | HTTP |
22+
| 8090 | idaptik | Game server (dev) | HTTP |
23+
| 8093 | verisimdb | Stapeln instance | HTTP |
24+
| 8094 | verisimdb | Kategoria instance | HTTP |
25+
| 8095 | verisimdb | Project-M instance | HTTP |
26+
| 9090 | hypatia | Web + Groove endpoints | HTTP |
27+
| 50051 | verisimdb | gRPC | gRPC |
28+
29+
## Commonly Blocked Ports (AVOID)
30+
31+
These are frequently blocked by corporate firewalls, ISPs, or proxies:
32+
33+
| Port | Why blocked | Our status |
34+
|------|-----------|-----------|
35+
| 25 | SMTP — spam prevention | Not used |
36+
| 80 | HTTP — requires root | Not used (dev) |
37+
| 443 | HTTPS — requires root | Not used (dev) |
38+
| 1080 | SOCKS proxy — abuse | Not used |
39+
| 3128 | Squid proxy | Not used |
40+
| 8080 | Common proxy port — **often intercepted** | **VeriSimDB default — consider changing** |
41+
| 8443 | Alt HTTPS — sometimes blocked | IDApTIK uses — review |
42+
| 9090 | Prometheus default — may conflict | Hypatia uses — acceptable |
43+
44+
## Previously Conflicting (FIXED 2026-03-24)
45+
46+
These projects all used port 4000 (Phoenix default) and port 8080 (generic HTTP default).
47+
Reassigned to unique ports above. Config changes needed in each project.
48+
49+
| Project | Old port | New port | Config file |
50+
|---------|---------|---------|-------------|
51+
| stapeln | 4000 | 4010 | backend/config/runtime.exs |
52+
| burble | 4000 | 4020 | server/config/runtime.exs |
53+
| idaptik | 4000 | 4030 | sync-server/config/runtime.exs |
54+
| gossamer | 4000 | 4040 | gossamer.conf.json |
55+
| ambientops | 4000 | 4050 | composer/config/runtime.exs |
56+
| reposystem | 4000 | 4060 | gui/config (if Phoenix) |
57+
58+
## Ephemeral Port Strategy
59+
60+
For services that run infrequently (batch jobs, one-shot scans, training runs):
61+
62+
1. **Reserve range 9100-9199** for ephemeral use
63+
2. Acquire port via lockfile: `/tmp/hyper-port-<port>.lock`
64+
3. Open firewall rule on acquire, close on release
65+
4. Services announce availability via Groove protocol (port probe)
66+
67+
This reduces permanent firewall surface from ~20 ports to ~10 persistent + dynamic.
68+
69+
## VeriSimDB Instance Policy
70+
71+
Each project gets its own VeriSimDB instance on a unique port:
72+
- 8080: standalone/default
73+
- 8093: Stapeln
74+
- 8094: Kategoria
75+
- 8095: Project-M
76+
- 8096-8099: reserved for future projects
77+
78+
NEVER store one project's data in another project's VeriSimDB instance.

0 commit comments

Comments
 (0)