Skip to content

Releases: BlueBubblesApp/bluebubbles-server

BlueBubbles Server v1.9.7

21 Apr 21:05
c8fd023
Compare
Choose a tag to compare

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.

image

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

Clients

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

13 Mar 16:13
f8f82bf
Compare
Choose a tag to compare

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

Clients

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

08 Feb 15:38
7c33356
Compare
Choose a tag to compare

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

Clients

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)

01 Feb 16:36
Compare
Choose a tag to compare
Pre-release

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

Clients

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

10 Jan 20:51
4a36b7d
Compare
Choose a tag to compare

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

Clients

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)

10 Jan 18:36
5fa5691
Compare
Choose a tag to compare

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

Clients

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

04 Dec 17:07
ab69220
Compare
Choose a tag to compare

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 and share_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

Clients

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

10 Nov 21:22
ae114da
Compare
Choose a tag to compare

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

Clients

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.0

07 Nov 13:23
9cae6a9
Compare
Choose a tag to compare

What's New?

Hey everyone, I know it's been a bit since our last update. We've been very busy with life, as well as researching new features to implement into BlueBubbles! This update focuses on Private API enhancements & bug fixes.

Private API Enhancements

  • Fixes editing messages on macOS Sonoma
  • New FaceTime Helper to detect incoming calls (Big Sur+)
  • Ability to get Find My Friends locations (Big Sur+)
  • Ability to initiate a download for attachments not yet downloaded (High Sierra+)
  • Ability to fetch your iCloud account information (High Sierra+)
  • Ability to check to see if you can share your contact card with a specific chat (Big Sur+)
  • Ability to share your contact card with a specific chat (Big Sur+)
  • Ability to get a contact card for a chat with shared contact info (Big Sur+)
  • Ability to detect and emit an event when an iMessage alias is removed/deactivated (High Sierra+)

Enhancements

  • Start Delay setting (for older hardware)
  • When killing processes, AppleScript is no longer used, in favor of using a CLI command.
    • This is to prevent duplicate Messages/FaceTime processes from being created

Fixes

  • Fixes typing indicator detection issue introduced in v1.8.0
  • Fixes Google OAuth flow (403 Unauthorized errors)
  • Fixes possible issue with avatars not loading properly for contacts
  • Fixes pagination buttons in UI for scheduled messages
  • Fixes issue causing the API to not return proper chat data when adding/removing a participant
  • (Hopefully) Fixes chat sorting issues for Web

Other Changes

  • Removed manual contacts cache in favor of the built-in cache within node-mac-contacts
  • FaceTime call detection has been removed for non-Private API users to simplify logic & codebase.
  • Increases timeout for attachment uploads
  • Revamped API timeout system for per-route timeouts
  • A bunch of code refactoring for the UI and Backend

Useful Links

Clients

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.8.0

28 Aug 12:49
af33fb6
Compare
Choose a tag to compare

What's New?

It's been a long time coming, but the v1.8.0 release is now available! We've made a fairly large amount of bug fixes & enhancements to the server. Users will now have a much easier time setting up the server. We've implemented Google Sign In, allowing us to automate the Google Firebase project setup for you. This reduces the amount of steps to setup the server substantially. Just note, if you have already done the Firebase setup, you do not need to redo setup using the Google Sign In wizard. We've also removed the MacForge dependency entirely (for Private API users), meaning the BlueBubbles Server itself will inject the Private API (DYLIB) into the Messages app. This reduces the amount of setup required to setup the Private API features. Overall, this update improves the overall ease of use for the server, making your user experience better.

Read About the Update Here: https://docs.bluebubbles.app/blog/simplified-setup

The Big Stuff

  • Google OAuth Login to Automate Firebase Configuration (Thanks @probablypablito)
  • Private API Chat Creation (even Group Chats)
  • MacForge is no longer a dependency, BlueBubbles will automatically inject the Private API helper into the Messages app
    • You can now safely uninstall MacForge
  • Ability to set config options via CLI args or via a user environment config file
    • You can also run in headless mode using the --headless flag
  • Fixes issue preventing attachments over 200mb from being sent

Enhancements

  • Rework of UI to improve UX and prevent confusion
  • Adds option for LAN as a proxy service for ease of use.
  • Adds additional information (i.e. computer name & iMessage email) to the server info API endpoint
  • Server Info API endpoint now broadcasts the server's IP to authenticated users to improve Localhost detection on clients
  • You can now install pending updates via the tray icon
  • The UI now displays an icon you can click to install a pending update
  • Ability to query if a number is available for iMessage or Facetime (Private API only)
  • Ability to delete a message on the Mac (Private API only)

Fixes

  • Fixes issue where filenames would not be maintained when they are converted for compatibility
  • Fixes issue where a user would be able to continue setup without entering a password
  • Fixes UX issue preventing users from knowing why they could not proceed past the Connection Walkthrough
  • Fixes issue creating chats with an improperly formatted phone number
  • Fixes issue where users were able to enter a dynamic DNS URL without an HTTP schema
  • Fixes issue where chats would return null as the last message
    • This issue impacted Web, causing chats to fall to the bottom of the chat list
  • Fixes issue where the server would not properly set the new server URL after a power outage
  • Fixes white screen when the log tab is open when a certain error occurred

Other Changes

  • Disabled Facetime Detection by default
  • The accessibility permission is marked as optional to prevent confusion
  • Marks the Private API as optional during the initial walkthrough
  • upgrade: React v18
  • upgrade: Chakra UI v2.6.1
  • upgrade: cloudflared binary
  • Bumps minimum macOS version to High Sierra
  • The navigation bar is now "sticky" and stays at the top.
  • Tons of code refactors to clean up the codebase

Notes

  • If you choose to use the Google Sign In feature, make sure you are on the latest Android, Web, and/or Desktop apps (v1.12.3+).
    • If you had already synced Android, you may need to use the Fetch Firebase Config feature in the app settings

Useful Links

Clients

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.