Skip to content

iMessage

Photon uses a hosted relay and an outbound EC2 connection. BlueBubbles requires an always-on Mac and private API and webhook connections in both directions.
Enable one route for a conversation to avoid duplicate handling.Open full size Mermaid source

During the common setup, run as hermes, using your number:

hermes photon setup --phone +15551234567 --no-browser

Open the displayed authorization link on your Mac. Finish sign-in and note the assigned iMessage line. Check the existing .env:

PHOTON_ALLOWED_USERS=+15551234567
PHOTON_REQUIRE_MENTION=true

Restart the gateway, then text the assigned line from your allowed number. Diagnose with hermes photon status. Use E.164 numbers with + and begin with text; the pinned plugin has attachment limitations.

Photon handles the relayed messages and has separate account terms/quotas. Photon reference

  1. Install BlueBubbles Server on an always-on Mac signed into Messages.
  2. Confirm ordinary iMessage send/receive works.
  3. Arrange private EC2 ↔ Mac networking: API to Mac on 1234; webhook to EC2 on 8645.
  4. Run hermes gateway setup, select BlueBubbles (iMessage) and enter the Mac API URL/password.
  5. Check .env, restart and test an inbound message and reply:
BLUEBUBBLES_SERVER_URL=http://MAC_PRIVATE_IP:1234
BLUEBUBBLES_WEBHOOK_HOST=EC2_PRIVATE_REACHABLE_IP
BLUEBUBBLES_WEBHOOK_PORT=8645
BLUEBUBBLES_ALLOWED_USERS=+15551234567

Replace both address placeholders. This private network is not provisioned by the template; the browser SSM tunnel does not supply it. A loopback-only webhook cannot receive Mac events. Back up the Mac relay separately.

BlueBubbles reference