Add Task #91: Fix Server Matrix node detection
Problem: Servers without -TX/-NC in name don't appear in Trinity Console Root cause: Grouping logic filters by name substring, not node ID Affected: 6 of Holly's new servers not showing Fix requires: 1. Update discovery.js to include nodeId from API 2. Update servers.js to group by node ID instead of name Waiting for: Michael to get home (needs MobaXterm + node IDs from Panel) Sign-off: Claude (Chronicler #60) Email: claude@firefrostgaming.com
This commit is contained in:
120
docs/tasks/server-matrix-node-fix/README.md
Normal file
120
docs/tasks/server-matrix-node-fix/README.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Task: Fix Server Matrix Node Detection
|
||||
|
||||
**Task ID:** #91
|
||||
**Created:** April 4, 2026
|
||||
**Status:** In Progress — waiting for Michael to get home (needs MobaXterm)
|
||||
**Priority:** High (blocking Holly's new servers from appearing)
|
||||
|
||||
---
|
||||
|
||||
## Problem
|
||||
|
||||
Holly added 6 new servers ~2 hours ago. They don't appear in Trinity Console Server Matrix.
|
||||
|
||||
**Root Cause:** The matrix grouping logic filters servers by either:
|
||||
1. Node name matching ("TX1", "NC1", "Node 2", "Node 3")
|
||||
2. Server name containing "TX" or "NC"
|
||||
|
||||
Servers that match NEITHER condition fall through and aren't displayed.
|
||||
|
||||
**Affected Servers (not showing):**
|
||||
- Beyond Ascension
|
||||
- Wold's Vaults
|
||||
- Otherworld [Dungeons & Dragons]
|
||||
- DeceasedCraft
|
||||
- Submerged 2
|
||||
- (1 more — 18 total, 12 showing)
|
||||
|
||||
**Servers showing (have -TX or -NC suffix):**
|
||||
- Mythcraft 5 - NC
|
||||
- Create Plus - TX
|
||||
- Vanilla - TX
|
||||
- Beyond Depth - TX
|
||||
- (8 more)
|
||||
|
||||
---
|
||||
|
||||
## The Fix
|
||||
|
||||
### Part 1: Update discovery.js
|
||||
|
||||
**File:** `/home/claude/firefrost-services/services/arbiter-3.0/src/panel/discovery.js`
|
||||
|
||||
**Change:** Add `nodeId` to the returned server object.
|
||||
|
||||
```javascript
|
||||
// Line 25-28, change from:
|
||||
}).map(server => ({
|
||||
identifier: server.attributes.identifier,
|
||||
name: server.attributes.name
|
||||
}));
|
||||
|
||||
// To:
|
||||
}).map(server => ({
|
||||
identifier: server.attributes.identifier,
|
||||
name: server.attributes.name,
|
||||
nodeId: server.attributes.node
|
||||
}));
|
||||
```
|
||||
|
||||
### Part 2: Update servers.js grouping logic
|
||||
|
||||
**File:** `/home/claude/firefrost-services/services/arbiter-3.0/src/routes/admin/servers.js`
|
||||
|
||||
**Change:** Replace name-based filtering with node ID filtering.
|
||||
|
||||
```javascript
|
||||
// Line 47-48, change from:
|
||||
const txServers = enrichedServers.filter(s => s.node === 'TX1' || s.node === 'Node 3' || s.name.includes('TX'));
|
||||
const ncServers = enrichedServers.filter(s => s.node === 'NC1' || s.node === 'Node 2' || s.name.includes('NC'));
|
||||
|
||||
// To (replace X and Y with actual node IDs):
|
||||
const TX_NODE_ID = X; // Get from Pterodactyl Admin → Nodes
|
||||
const NC_NODE_ID = Y; // Get from Pterodactyl Admin → Nodes
|
||||
|
||||
const txServers = enrichedServers.filter(s => s.nodeId === TX_NODE_ID);
|
||||
const ncServers = enrichedServers.filter(s => s.nodeId === NC_NODE_ID);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Information Needed
|
||||
|
||||
Before implementing, get from Pterodactyl Admin → Nodes:
|
||||
|
||||
- [ ] **TX1 (Dallas) Node ID:** ___
|
||||
- [ ] **NC1 (Charlotte) Node ID:** ___
|
||||
|
||||
---
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
1. SSH to Command Center (63.143.34.217) via MobaXterm
|
||||
2. `cd /path/to/arbiter-3` (verify actual path)
|
||||
3. Edit `src/panel/discovery.js` — add nodeId
|
||||
4. Edit `src/routes/admin/servers.js` — update grouping logic with node IDs
|
||||
5. Restart Arbiter: `sudo systemctl restart arbiter-3`
|
||||
6. Verify all 18 servers appear in Trinity Console
|
||||
7. Commit changes to Gitea
|
||||
|
||||
---
|
||||
|
||||
## Future Consideration
|
||||
|
||||
**Also discussed:** Removing the nest filter entirely for future expansion (Ark, Palworld, etc.)
|
||||
|
||||
Current filter: `MINECRAFT_NEST_IDS=1,6,7`
|
||||
|
||||
**Recommendation:** Consult Gemini before removing — may have downstream implications for whitelist sync trying to write to non-Minecraft servers.
|
||||
|
||||
---
|
||||
|
||||
## Related Files
|
||||
|
||||
- `services/arbiter-3.0/src/panel/discovery.js`
|
||||
- `services/arbiter-3.0/src/routes/admin/servers.js`
|
||||
- `.env` (MINECRAFT_NEST_IDS)
|
||||
|
||||
---
|
||||
|
||||
**Fire + Frost + Proper Node Detection** 🔥❄️
|
||||
Reference in New Issue
Block a user