webstation-broker
Deployment

Migrating from a per-emulator broker

Moving from the deprecated per-emulator broker mods to a single romm-broker container.

If you're running one of the per-emulator broker mods (pcsx2-romm-integration, dolphin-romm-integration, xemu-romm-integration, rpcs3-romm-integration, eden-romm-integration), those are deprecated. This broker replaces all of them. It runs inside a single docker-webstation container and handles every platform itself, instead of you running a separate container per emulator.

In RomM's config.yml, each per-emulator container had its own platform: key. A single protocol: webstation container can replace any number of those, using a platforms: map instead:

# before: one container per platform
streaming:
  enabled: true
  containers:
    - platform: ps2
      host: https://192.168.1.51:3001
      broker_host: http://192.168.1.51:8000
      label: PCSX2
      memory_card_sync: true
    - platform: ngc
      host: https://192.168.1.52:3001
      broker_host: http://192.168.1.52:8000
      label: Dolphin

# after: one webstation container serving both
streaming:
  enabled: true
  containers:
    - host: https://romm.DOMAIN.com/streaming
      broker_host: http://192.168.1.51:3010
      protocol: webstation
      subfolder: /streaming
      label: Emulation station
      platforms:
        ps2:
          emulator: pcsx2
          label: PCSX2
          memory_card_sync: true
        ngc:
          emulator: dolphin
          label: Dolphin

The subfolder value here should match this broker's own SUBFOLDER environment variable (see Broker settings). There is no path setting because the container mounts the library at /romm/library, the same as RomM. If yours can't, see Mounting the library somewhere else.

Set up docker-webstation with this broker installed. If your old per-emulator containers mounted the library at a path other than /romm/library, keep that path and set library_path to it, so your save and state history (which is tied to that path) doesn't reset. Make sure streaming works for each platform, then remove the old containers. See RomM's migration guide for the full walkthrough: https://docs.romm.app/latest/using/emulator-streaming-migration/