Releases: BlueBubblesApp/bluebubbles-server
BlueBubbles Server v1.9.8
What's New
It's been a while since i've released a stable update! Life got a bit hectic for a while... This update is an accumulation of a ton of enhancements and bug fixes. I've been wanting to release this for a while, but I had a few outstanding items that I needed to fix and test. I've since found some time to finalize it, so here it is!
There are a TON of updates and I think you'll all find that it hopefully makes your server more resilient and stable. That said, this update does not include the new iMessage features on iOS 18. However, it does fix Private API Attachment sending on macOS Sequoia.
Big thanks to @cameronaaron for helping to fix the message detection issue!
Note: If you are an M1 Mac user, please read the note at the bottom of this release
New Features
- Support for message searching on macOS Ventura and newer via the Private API
- Google Login to download contacts from your Google Account
- This will not continuously sync your Google Contacts
- Apple Silicon (ARM) Native Build! You can now run the BlueBubbles Server natively on an Apple Silicon Mac
- This has not been extensively tested yet, but we figured we'd make it available
- The Cloudflare (and maybe Ngrok & Zrok) daemon still will require Rosetta to run because they have not released Apple Silicon compatible builds yet
- Ability to disable the automatic opening of the FindMy app on startup (see settings)
- Settings toggle to allow auto-start as a Launch Agent to achieve crash-persistence
- You must manually set the auto start method to
Launch Agent
- If the server crashes, it will automatically be restarted. If it closes normally (exit code 0), it will not be automatically restarted
- You must manually set the auto start method to
- Handles/Addresses are now obfuscated in the server log
- New feature to automatically lock your Mac after login
- Improvements to the FindMy API
Other Enhancements
- When multiple new messages are found, notifications are now dispatched in ascending order (oldest first)
- Logs on the Debug page from the Messages app are now hidden by default
- Increases ping interval to 1 minute to reduce battery drain for socket clients
- Improvements to handling of Cloudflare errors (specifically, rate limiting)
- Adds ability to disable Zrok via the Settings UI
Fixes
- Improvements to the handling of the Zrok Proxy Service to increase stability
- Fixes detection of delivered messages when sent from other Apple devices
- Replaces automatic update service with a more manual update process
- Adds warning next to your Server URL on the dashboard if it's using an insecure connection (HTTP) and a non-local address.
- The warning basically explains that the connection is insecure and may be vulnerable to a man in the middle attack.
- Increases send timeout time from 30 seconds to 1 minute to prevent unnecessary send errors
- Fixes issue where images converted from HEIC would get a double-extension
- Fixes issue detecting live photos for converted HEIC images
- Start Delay now will only be applied when the Mac uptime is < 5 minutes
- Improved error handling for Cloudflare proxy service
- Fixes issue where a new Server URL on server startup would not get dispatched to Firebase
- Fixes attachment de-duplication issue causing a visual bug where the wrong image would be displayed for an older image
- This fix only applies to all future sent attachments and will not fix older bugged attachments
- Also fixes an issue where old images would appear wrong after clearing the attachment cache
- Fixes bug with sending text + attachments using the multipart endpoint
- Error and Warning logs are now colored red and orange, respectively
- Improvements & fixes to the OAuth Firebase setup process
- Fixes alignment of the trash & edit icons for webhook table entries
- Removes "Beta" tag for the Zrok Proxy Service
- Adds "warning" next to the server URL on the dashboard when the connection may be insecure (i.e. dynamic DNS over HTTP)
- Fixes API error message when a 500 error is thrown
- A slightly improved icon to follow macOS design better
- Fixes Private API Attachment Sending on macOS Sequoia
- Fixes issue detecting new messages, resulting in missed notifications
- Fixes issue where BlueBubbles would not be able to use the Private API when there was a space in the app path.
- Fixes issue causing duplicate proxy service processes
- Fixes issue causing the FindMy Devices endpoint to return null even when devices and/or items exist
- Fixes issue that kept the Private API service running, even when it was disabled
- The FindMy Devices endpoint will now return null on macOS Sequoia+
- Apple now encrypts the location data, and we can no longer read it properly
For Developers
- Adds Webhook support for FindMy Location updates
- Adds
isDelivered
to message payloads - Adds slight delay between emitting multiple message events
- The Refresh FindMy Devices API endpoint now returns devices
- Adds additional fields for FindMy Devices & Items to improve client support
- Adds REST API endpoints for managing server webhooks
GET /api/v1/webhook
POST /api/v1/webhook
DELETE /api/v1/webhook/<id>
- Adds validation to the "addresses" field for the
POST /api/v1/contact/query
API - Migrated away from using the
zx
library to execute CLI commands in favor of a custom purpose-built executor.- This also fixes an issue with orphaned cloudflared processes (and possible memory leak)
- Removes
yarn
support due to build issues - Bumps NodeJS version to v20.11
- Fixes all fixable vulnerabilities in dependencies
- Tons of development package upgrades & dependency fixes
- TypeScript
- ESLint
- Electron
- Much More...
- Upgrades Cloudflared binary to latest version
- Webhook error logs are now debug level
- BREAKING: The
POST /api/v1/attachment/upload
endpoint now returnspath
rather thanhash
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
Apple Silicon Users
If you are running an M1 Mac and are experiencing repeated Messages App crashes, it is due to the macOS bug detailed here. Luckily, there is a fix, which is to add a boot argument to your Mac. This will require SIP to be disabled, though, if you are experiencing this issue, you already have it disabled.
Open the Terminal App on your Mac and run this command: sudo nvram boot-args=-arm64e_preview_abi
You will be prompted to enter your password, which will be hidden in the Terminal as you enter it.
Enjoy!
Lastly reboot your Mac, and you should be good to go.
BlueBubbles Server v1.9.8
What's New?
This is a fairly substantial update. It brings a handle of good QOL updates, as well as a ton of bug fixes and other small improvements. In addition, we now natively support Apple Silicon Macs! In addition, I've done some dependency cleanup, upgrading some backend libraries and removing others.
Warning / Note
Apple has flagged my Apple Developer account, which prevents me from signing the BlueBubbles Server with my developer certificate. As a result, you may need to "Allow" the app to run via your System Preference's Security & Privacy
page. Alternatively, you can right click the app and select Open
to directly open the app.
New Features
- Support for message searching on macOS Ventura and newer via the Private API
- Google Login to download contacts from your Google Account
- This will not continuously sync your Google Contacts
- Apple Silicon (ARM) Native Build! You can now run the BlueBubbles Server natively on an Apple Silicon Mac
- This has not been extensively tested yet, but we figured we'd make it available
- The Cloudflare (and maybe Ngrok & Zrok) daemon still will require Rosetta to run because they have not released Apple Silicon compatible builds yet
- Ability to disable the automatic opening of the FindMy app on startup (see settings)
- Settings toggle to allow auto-start as a Launch Agent to achieve crash-persistence
- You must manually set the auto start method to
Launch Agent
- If the server crashes, it will automatically be restarted. If it closes normally (exit code 0), it will not be automatically restarted
- You must manually set the auto start method to
- Handles/Addresses are now obfuscated in the server log
- New feature to automatically lock your Mac after login
Bug Fixes & Improvements
- Fixes issues detecting, parsing, and emitting unsent messages
- Fixes detection of delivered messages when sent from other Apple devices
- Replaces automatic update service with a more manual update process
- Adds warning next to your Server URL on the dashboard if it's using an insecure connection (HTTP) and a non-local address.
- The warning basically explains that the connection is insecure and may be vulnerable to a man in the middle attack.
- Increases send timeout time from 30 seconds to 1 minute to prevent unnecessary send errors
- Fixes issue where images converted from HEIC would get a double-extension
- Fixes issue detecting live photos for converted HEIC images
- Start Delay now will only be applied when the Mac uptime is < 5 minutes
- Improved error handling for Cloudflare proxy service
- Fixes issue where a new Server URL on server startup would not get dispatched to Firebase
- Fixes attachment de-duplication issue causing a visual bug where the wrong image would be displayed for an older image
- This fix only applies to all future sent attachments and will not fix older bugged attachments
- Also fixes an issue where old images would appear wrong after clearing the attachment cache
- Fixes bug with sending text + attachments using the multipart endpoint
- Error and Warning logs are now colored red and orange, respectively
- Improvements & fixes to the OAuth Firebase setup process
- Fixes alignment of the trash & edit icons for webhook table entries
- Removes "Beta" tag for the Zrok Proxy Service
- Adds "warning" next to the server URL on the dashboard when the connection may be insecure (i.e. dynamic DNS over HTTP)
- Fixes API error message when a 500 error is thrown
- A slightly improved icon to follow macOS design better
Developers
- Adds validation to the "addresses" field for the
POST /api/v1/contact/query
API - Migrated away from using the
zx
library to execute CLI commands in favor of a custom purpose-built executor.- This also fixes an issue with orphaned cloudflared processes (and possible memory leak)
- Removes
yarn
support due to build issues - Bumps NodeJS version to v20.11
- Fixes all fixable vulnerabilities in dependencies
- Tons of development package upgrades & dependency fixes
- TypeScript
- ESLint
- Electron
- Much More...
- Upgrades Cloudflared binary to latest version
- Webhook error logs are now debug level
- BREAKING: The
POST /api/v1/attachment/upload
endpoint now returnspath
rather thanhash
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.7
What's New?
This update brings some much needed performance improvements to the server, reducing overall CPU utilization and DB query times. In addition, there are a handful of other bug fixes included in this release.
Warning / Note
Apple has flagged my Apple Developer account, which prevents me from signing the BlueBubbles Server with my developer certificate. As a result, you may need to "Allow" the app to run via your System Preference's Security & Privacy
page. Alternatively, you can right click the app and select Open
to directly open the app.
Due to this issue, the BlueBubbles auto-updater no longer works, and you will need to manually perform server updates. Blame Apple. I've tried contacting them, and they've pretty much just ignored my requests.
Changes
- Vastly improves server performance and reduces CPU utilization by replacing scheduled polling with event-driven polling.
- Fixes spinning beach ball upon server start
- Fixes TTL for Firebase messages causing pending notifications to never be delivered
- This typically occurred when your device was not connected to the internet when a notification should have been delivered
- Database polling improvements
- Fixes race conditions during polling
- Fixes issue causing some events to be ignored when previous events fired successfully
- Improves handling of updated messages (edited, delivered, read, unsent, etc.)
- Fixes issue where the server would notify for all new DB entries during an iCloud sync, even if they were not for new messages
- This may have caused your Firebase messages to be rate-limited temporarily
- Fixes issue where scheduled messages scheduled more than 24 days out may get triggered immediately
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles v1.9.6
What's New?
This release introduces some new user-requested features as well as a handful of bug fixes to improve the reliability of the server.
New Features
- Zrok proxy service (beta)
- Includes support for reserved (named or unnamed) tunnels
- Ngrok static domain support
- You must reserve one within the Ngrok portal
- Custom landing page support (Advanced Settings)
- Support for detecting and emitting events for incoming message updates (edit/unsend)
Fixes
- Fixes issue updating server URL in Firebase after a network/power outage
- Fixes fatal crash in some macOS environments
- Fixes remote restart via Firebase for Firestore deployments
- Improves FindMy Friends refresh reliability
- Fixes issue where the server notification pop-out would span the entire window
Developer Notes
- Refactoring code to utilize decorators for retrying function calls and creating singleton function calls
- Unified logging throughout the codebase by extending the Loggable class or using
getLogger("<name>")
- Upgrade: cloudflared
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.5
What's New?
This update brings a few new features, mainly pertaining to improving FindMy capabilities as well as overall reliability of the server.
Changes
- Improves FindMy capabilities and reliability (Private API Only; Big Sur - Ventura)
- Private API Helper now listens for changes to friend locations, and updates are emitted to clients
- The server now maintains a cache of the latest locations from friends
- Fetching latest locations for friends is now more reliable and accurate
- Fixes issue with detecting and emitting "address deregistration" events
- Clients will now be able to alert you when an address gets de-registered (i.e. a phone number)
- Fixes issue where the server would fail to send a message, resulting in a 500 error
- Fixes issue where webhooks would attempted to be dispatched before the service started
- Increases Cloudflare initial connection timeout to 2 minutes to better avoid connection issues after a power outage
- Fixes issue where the attachments directory would not be created, causing an error when sending attachments
- Increases inactive time required for automatically purging a device (7 days -> 30 days)
- Chat payloads now expose the
lastAddressedHandle
field - Slight improvement to reliability of the automated Firebase setup
- Adds process to automatically set your Server URL in Firebase every 10 minutes (if it's changed)
- This was implemented to prevent issues where the server would not update its' new URL in Firebase after a power outage
- Fixes issue importing VCF contacts with middle names (display name would be incorrect)
- Fixes emitted event when an iMessage alias gets deregistered
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.5 (BETA)
What's New?
This is a pre-release (beta) as it introduces changes with wider scope than normal that requires a bit more testing. If you are a tinkerer, try it out! If you're looking for fully stable releases only, keep waiting
This beta update brings a few new features, mainly pertaining to improving FindMy capabilities as well as overall reliability of the server.
Changes
- Improves FindMy capabilities and reliability (Private API Only; Big Sur - Ventura)
- Private API Helper now listens for changes to friend locations, and updates are emitted to clients
- The server now maintains a cache of the latest locations from friends
- Fetching latest locations for friends is now more reliable and accurate
- Fixes issue with detecting and emitting "address deregistration" events
- Clients will now be able to alert you when an address gets de-registered (i.e. a phone number)
- Fixes issue where webhooks would attempted to be dispatched before the service started
- Increases Cloudflare initial connection timeout to 2 minutes to better avoid connection issues after a power outage
- Fixes issue where the attachments directory would not be created, causing an error when sending attachments
- Increases inactive time required for automatically purging a device (7 days -> 30 days)
- Chat payloads now expose the
lastAddressedHandle
field - Slight improvement to reliability of the automated Firebase setup
- Adds process to automatically set your Server URL in Firebase every 10 minutes (if it's changed)
- This was implemented to prevent issues where the server would not update its' new URL in Firebase after a power outage
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.4
What's New?
This update is only addressing the changes that Ngrok has made to their service. Essentially, Ngrok is no longer allowing use of their services using the binary we previously were using. In the new binary, you must create a free account to use the proxy service. This server update will enforce setting an auth token when using Ngrok as your proxy service.
Note: If you are using Ngrok currently without an auth token, this server update will break your connection until you enter an auth token! It will have broken anyways on January 15th...
Note 2: There was an issue with 1.9.3 where the Ngrok proxy would fail due to an incompatible config file. Ngrok decided to add a new required parameter to the config file that they originally generated, and was missing from most people's config files. This server update will actually handle migrating the config file for you.
Changes
- Ngrok upgraded binary
- This update will automatically migrate your config.yml configuration for Ngrok
- Ngrok Auth Token enforcement
- You will now be prompted to enter an auth token when selecting Ngrok as your proxy service
- If the Ngrok proxy service starts and doesn't have an auth token provided to it, an error/alert will be thrown.
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.3 (Yanked)
What's New?
This update is only addressing the changes that Ngrok has made to their service. Essentially, Ngrok is no longer allowing use of their services using the binary we previously were using. In the new binary, you must create a free account to use the proxy service. This server update will enforce setting an auth token when using Ngrok as your proxy service.
Note: If you are using Ngrok currently without an auth token, this server update will break your connection until you enter an auth token! It will have broken anyways on January 15th...
Changes
- Ngrok upgraded binary
- Ngrok Auth Token enforcement
- You will now be prompted to enter an auth token when selecting Ngrok as your proxy service
- If the Ngrok proxy service starts and doesn't have an auth token provided to it, an error/alert will be thrown.
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.2
What's New?
Changes
- Fixes issue where the server URL would not be emitted in some cases, including webhooks
- Adds experimental FaceTime calling features (Private API & Monterey+ required)
- Adds
share_status
andshare_direction
to message objects - Adds ability to force download an attachment via the attachment download endpoint (URL param
force=true
)- Only when the attachment does not exist at the stored file path
- Fixes possible Messages crash when sending links on Big Sur
- Fixes some issues with refreshing FindMy Friends locations
- The server will now automatically clear the registered devices if the Firebase project changes
- If this is done via the Google Login, the server will create a warning alert
- If this is done via the Notifications tab on the server, a confirmation dialog will show
- Fixes issue causing message update events to have no data
- Fixing this may resolve issues properly showing read receipts (read/delivered/edited)
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.
BlueBubbles Server v1.9.1
What's New
This update is a hotfix addressing the issues around introducing the FaceTime helper. This was mostly a problem for the many of you that actually use your Mac for things other than BlueBubbles. I also threw in a few other QOL changes.
Note: If you are having double-send issues, please double-check that the BlueBubbles helper bundle is no longer installed into MacForge. If you do not need MacForge, we recommend you just uninstall it. I have added a warning if MacForge is running on your system.
Changes
- Added a separate toggle for the FaceTime Private API helper (default: Disabled).
- Adds timeframe toggle for iMessage statistics
- You can now filter your stats by a timeframe, which defaults to the past 6 months
- This is to address all the people upset they are no longer best friends with their listed best friend 😈
- Fixes issue with the server opening multiple instances of the Messages/FaceTime app in some cases.
- Adds a warning message on startup notifying the user that they still have MacForge installed, that it is no longer needed, and it should be uninstalled if not used by other plugins.
Useful Links
- Support Us: https://bluebubbles.app/donate
- Sponsor Us: https://github.com/sponsors/BlueBubblesApp
Clients
- BlueBubbles for Android: https://play.google.com/store/apps/details?id=com.bluebubbles.messaging
- BlueBubbles for Windows: https://apps.microsoft.com/store/detail/9P3XF8KJ0LSM
- BlueBubbles for Linux: https://flathub.org/apps/details/app.bluebubbles.BlueBubbles
- BlueBubbles Web: https://bluebubbles.app/web
Enjoy!
P.S. Download the .dmg
, not the .zip
P.S. If you are on Cloudflare, expect a disconnect status when the server first starts. To fix it, either disconnect from WiFi or flush your DNS cache on WiFi. If you use the Detect Localhost Address
option, this can be mitigated while on your home network.