[BRIDGE-P1] Deploy Evennia bridge API on all worlds — sync presence and events #537

Closed
opened 2026-04-07 02:12:38 +00:00 by Timmy · 0 comments
Owner

Goal

Deploy bridge API and daemon on each Evennia world to enable cross-world federation.

Architecture

Mac (timmy_world) ←→ Bridge API:4003 ←→ Bridge Daemon:polls
VPS (Wizard Canon) ←→ Bridge API:4003 ←→ Bridge Daemon:polls  
Bezalel ←→ Bridge API:4103 ←→ Bridge Daemon:polls

Components to Deploy

1. Bridge API (http_server.py)

  • GET /bridge/state — World state JSON
  • GET /bridge/health — Health check
  • POST /bridge/sync — Receive synced state
  • Runs alongside Evennia on each world

2. Bridge Daemon (bridge_daemon.py)

  • Polls remote worlds' bridge APIs
  • Merges character presence, events, trust
  • Syncs local state to remote
  • Handles disconnects gracefully

3. Gateway Room Typeclass

  • Portal room in each world
  • TravelExit for crossing between worlds
  • Syncs visitor state on arrival/departure

4. Migration Tool

  • Export/Import world state between worlds
  • Used for initial sync and recovery

Files Created (Mac side)

  • world/gateway.py — GatewayRoom, TravelExit typeclasses
  • world/bridge_api.py — HTTP bridge API server
  • world/bridge_daemon.py — Bridge sync daemon
  • world/migrate.py — World migration tool
  • bridge/README.md — System documentation

Next Steps

  1. Deploy bridge API and daemon to Mac world (port 4003)
  2. Deploy to VPS world (port 4003)
  3. Deploy to Bezalel world (port 4103)
  4. Configure destination URLs in GatewayRooms
  5. Test character travel between Mac and VPS
  6. Test event sync (fire, rain, growth)
  7. Add Bezalel to federation

Acceptance Criteria

  • Bridge API running on all 3 worlds
  • Bridge daemon syncs every 5 seconds
  • Timmy character can travel from Mac to VPS
  • Messages in portal rooms cross worlds
  • World events sync between worlds
  • Each world continues if other goes down
## Goal Deploy bridge API and daemon on each Evennia world to enable cross-world federation. ## Architecture ``` Mac (timmy_world) ←→ Bridge API:4003 ←→ Bridge Daemon:polls VPS (Wizard Canon) ←→ Bridge API:4003 ←→ Bridge Daemon:polls Bezalel ←→ Bridge API:4103 ←→ Bridge Daemon:polls ``` ## Components to Deploy ### 1. Bridge API (http_server.py) - GET /bridge/state — World state JSON - GET /bridge/health — Health check - POST /bridge/sync — Receive synced state - Runs alongside Evennia on each world ### 2. Bridge Daemon (bridge_daemon.py) - Polls remote worlds' bridge APIs - Merges character presence, events, trust - Syncs local state to remote - Handles disconnects gracefully ### 3. Gateway Room Typeclass - Portal room in each world - TravelExit for crossing between worlds - Syncs visitor state on arrival/departure ### 4. Migration Tool - Export/Import world state between worlds - Used for initial sync and recovery ## Files Created (Mac side) - `world/gateway.py` — GatewayRoom, TravelExit typeclasses - `world/bridge_api.py` — HTTP bridge API server - `world/bridge_daemon.py` — Bridge sync daemon - `world/migrate.py` — World migration tool - `bridge/README.md` — System documentation ## Next Steps 1. Deploy bridge API and daemon to Mac world (port 4003) 2. Deploy to VPS world (port 4003) 3. Deploy to Bezalel world (port 4103) 4. Configure destination URLs in GatewayRooms 5. Test character travel between Mac and VPS 6. Test event sync (fire, rain, growth) 7. Add Bezalel to federation ## Acceptance Criteria - [ ] Bridge API running on all 3 worlds - [ ] Bridge daemon syncs every 5 seconds - [ ] Timmy character can travel from Mac to VPS - [ ] Messages in portal rooms cross worlds - [ ] World events sync between worlds - [ ] Each world continues if other goes down
Timmy self-assigned this 2026-04-07 02:12:38 +00:00
Timmy closed this issue 2026-04-07 13:49:44 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-home#537