- This toolkit helps you keep your Bose SoundTouch speakers
- functional even after the Bose Cloud shutdown in May 2026.
- It emulates the necessary cloud services locally on your
- network.
-
-
-
Migration Process at a Glance
-
- 🔌 Speaker shell access
- The wizard talks to the speaker over one of two transports.
- The Migration tab probes both automatically
- and uses whichever your device exposes — you don't have to
- choose manually.
-
-
- SSH (richest option — required for
- the XML migration, the /etc/resolv.conf
- DNS hook, and installing the local CA). Enable it by
- creating an empty remote_services file
- on a USB stick, inserting it into the speaker's
- SERVICE port, and rebooting. Verify
- on the Migration tab — SSH in the state
- card's Transports row should show ✅
- Reachable. Manual check:
- ssh -oHostKeyAlgorithms=+ssh-rsa
- root@<SPEAKER-IP>
- (no password).
-
-
- Telnet (Port 17000) — the SSH-less
- fallback. Most SoundTouch firmware exposes a
- diagnostic shell on TCP/17000 automatically, no
- USB-stick setup required. Limited to HTTP migrations
- (no CA install possible without SSH). The state card
- surfaces this in the same Transports row.
-
-
-
-
-
- Settings: Review the
- Settings tab. Ensure the "Target
- Domain" and "Proxy Domain" use an IP address or domain
- name that is
- accessible from your speakers (usually
- the IP of this server on your local network). You can
- also edit the Target URL directly from the Migration tab
- with a Save as default button.
-
-
- Discovery: Go to the
- Devices tab to find your speakers on
- the network. Ensure your speakers are powered on and
- connected to the same network.
-
-
- Data Sync: In the
- Data Sync tab, fetch your current
- presets, recents, and sources. This step is critical to
- ensure your local service has all your personalized data
- before you disconnect from the Bose cloud.
-
-
- Migration: In the
- Migration tab the wizard offers a
- one-click Apply Suggested Plan that
- picks the right recipe for your speaker (XML over SSH
- when SSH is available, telnet URL flip otherwise). For
- mix-and-match across the three independent axes — URL
- flip transport, DNS interception, CA install — expand
- Customize this migration. A visible pre-flight
- check runs before any backend operation touches the
- speaker.
-
-
- Verification: After migration and
- reboot, your speaker will communicate with this toolkit
- instead of Bose servers.
-
-
-
-
- ⚠️ Safety First: Before starting any
- migration, please read our
- Professional
- Migration & Safety Guide. The toolkit automatically creates backups, but understanding the process
- is key to a smooth transition.
-
- Note: These URLs must be
- accessible from your SoundTouch devices.
- Use the IP address of this server on your local network
- (e.g., http://192.0.2.100:8000) rather than
- localhost.
-
-
-
-
- (Standard services URL)
-
-
-
-
- Device Discovery:
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
- DNS Discovery:
-
-
-
-
+
+
+
+
Welcome to AfterTouch
+
+ This toolkit helps you keep your Bose SoundTouch speakers
+ functional even after the Bose Cloud shutdown in May 2026.
+ It emulates the necessary cloud services locally on your
+ network.
+
+
+
Migration Process at a Glance
+
+ 🔌 Speaker shell access
+ The wizard talks to the speaker over one of two transports.
+ The Migration tab probes both automatically
+ and uses whichever your device exposes — you don't have to
+ choose manually.
+
+
+ SSH (richest option — required for
+ the XML migration, the
+ /etc/resolv.conf DNS hook, and
+ installing the local CA). Enable it by creating an
+ empty remote_services file on a USB
+ stick, inserting it into the speaker's
+ SERVICE port, and rebooting. Verify
+ on the Migration tab — SSH in the state
+ card's Transports row should show ✅
+ Reachable. Manual check:
+ ssh -oHostKeyAlgorithms=+ssh-rsa
+ root@<SPEAKER-IP>
+ (no password).
+
+
+ Telnet (Port 17000) — the SSH-less
+ fallback. Most SoundTouch firmware exposes a
+ diagnostic shell on TCP/17000 automatically, no
+ USB-stick setup required. Limited to HTTP migrations
+ (no CA install possible without SSH). The state card
+ surfaces this in the same Transports row.
+
+
+
+
+
+ Settings: Review the
+ Settings tab. Ensure the "Target
+ Domain" and "Proxy Domain" use an IP address or domain
+ name that is
+ accessible from your speakers (usually
+ the IP of this server on your local network). You can
+ also edit the Target URL directly from the Migration tab
+ with a Save as default button.
+
+
+ Discovery: Go to the
+ Devices tab to find your speakers on
+ the network. Ensure your speakers are powered on and
+ connected to the same network.
+
+
+ Data Sync: In the
+ Data Sync tab, fetch your current
+ presets, recents, and sources. This step is critical to
+ ensure your local service has all your personalized data
+ before you disconnect from the Bose cloud.
+
+
+ Migration: In the
+ Migration tab the wizard offers a
+ one-click Apply Suggested Plan that
+ picks the right recipe for your speaker (XML over SSH
+ when SSH is available, telnet URL flip otherwise). For
+ mix-and-match across the three independent axes — URL
+ flip transport, DNS interception, CA install — expand
+ Customize this migration. A visible pre-flight
+ check runs before any backend operation touches the
+ speaker.
+
+
+ Verification: After migration and
+ reboot, your speaker will communicate with this toolkit
+ instead of Bose servers.
+
+
+
+
+ ⚠️ Safety First: Before starting any
+ migration, please read our
+ Professional Migration & Safety Guide. The toolkit automatically creates backups, but
+ understanding the process is key to a smooth transition.
+
+ Note: These URLs must be
+ accessible from your SoundTouch devices.
+ Use the IP address of this server on your local network
+ (e.g., http://192.0.2.100:8000) rather than
+ localhost.
+
+
+
- ⓘ
-
- Optional: comma-separated list of DNS servers
- (e.g., 1.1.1.1, 8.8.8.8).
- If empty, AfterTouch defaults to the system
- nameservers (e.g. from
- /etc/resolv.conf).
-
+ (Standard services URL)
+
+
+
+
+
Device Discovery
+
+
+
+
+
+
-
-
-
-
+
DNS Discovery
+
+
+
+
+
+ ⓘ
+
+ Optional: comma-separated list of DNS servers
+ (e.g., 1.1.1.1, 8.8.8.8).
+ If empty, AfterTouch defaults to the system
+ nameservers (e.g. from
+ /etc/resolv.conf).
+
+
+
+
+
+
+ (e.g., :53 or 0.0.0.0:53.
+ >(e.g., :53 or 0.0.0.0:53.
Port 53 is required for actual
migration)
+ >
+
+
-
-
-
- Spotify Integration:
-
-
-
-
+
+ Spotify Integration:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Checking configuration...
+
+
-
-
-
+
+ Amazon Music Integration:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Checking configuration...
+
+
-
-
-
-
-
Checking configuration...
-
-
-
- Amazon Music Integration:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Checking configuration...
-
-
-
- Logging:
-
-
-
-
-
-
-
-
+ Logging:
+
+
+
+
+
+
+
+
- Requests matching these patterns will be
- excluded from recording. Use one pattern per
- line.
+ >
+ Requests matching these patterns will be
+ excluded from recording. Use one pattern per
+ line.
+
+
-
-
-
- Root CA Certificate:
-
- Import this certificate into your OS or browser trust store to
- trust HTTPS connections to this AfterTouch server from other
- clients (e.g. curl, Python scripts, browsers).
-
+ Import this certificate into your OS or browser trust
+ store to trust HTTPS connections to this AfterTouch
+ server from other clients (e.g. curl, Python scripts,
+ browsers).
+
- HTTPS Connection Test:
- Verify the device can reach the server over
+ >
+ HTTPS Connection Test:
+ Verify the device can reach the server over
HTTPS.
-
- URL:
-
-
-
+ URL:
+
+
+
- Test with Explicit CA.crt
-
-
- Test with Shared Trust Store
-
-
-
-
+ >
+
-
- Preliminary DNS Test:
- Verify the device can resolve domains via the
+ >
+ Preliminary DNS Test:
+ Verify the device can resolve domains via the
AfterTouch DNS server.
-
- Domain: aftertouch.test
-
-
-
+ Domain: aftertouch.test
+
+
+
- Test DNS Redirection
-
-
-
-
-
-
-
Plan
-
-
-
-
-
- Save as default
+ >
-
-
-
-
Capabilities
-
-
This speaker exposes:
-
AfterTouch can offer:
-
-
-
-
-
Service URLs
-
- Pre-filled from the target URL above. Edit any field for advanced setups (e.g. soundcork users
- append /marge to margeServerUrl). These overrides apply to both XML
- and Telnet migrations.
-
-
-
-
-
Field
-
Current on Device
-
Target URL
-
-
-
-
-
margeServerUrl
-
—
-
-
-
-
-
-
statsServerUrl
-
—
-
-
-
-
-
-
swUpdateUrl
-
—
-
-
-
-
-
-
bmxRegistryUrl
-
—
-
-
-
-
-
-
-
-
- Reset to defaults
-
-
-
-
-
Account pairing
-
—
-
-
-
- Generate
-
-
-
-
-
-
-
Suggested plan
-
-
-
- Pre-flight
- Apply Suggested Plan
-
-
-
-
-
-
- Customize this migration
-
-
-
- Pick any combination of the three axes — the wizard runs
- the matching backend operations in order. Disabled options
- require a transport this speaker doesn't expose.
-
-
-
-
-
-
-
-
-
-
-
- Pre-flight
- Apply Custom Plan
-
-
-
-
-
-
-
Telnet Migration (Port 17000)
-
- Drives the speaker's diagnostic shell over TCP/17000.
- Requires no SSH access. Works on most ST 10/20/300 and
- Wave III/IV firmware (27.0.6.x).
-
-
- Limitation: HTTP-only redirection — telnet has no way to
- install a custom CA. If you need end-to-end TLS, use the
- XML or DNS method instead.
-
-
-
-
-
-
- Current Config (on Speaker)
-
-
-
- Planned Config (AfterTouch)
-
-
- ⚠️ Hostname resolution warning:
-
-
- The planned IP shown above may be incorrect.
- Migration methods that write IPs to the device
- (hosts, resolv.conf) will refuse to proceed until
- the hostname can be resolved from the device itself.
- Learn more →
-
-
-
-
-
-
-
- Current /etc/resolv.conf
-
-
-
- Planned /etc/resolv.conf Hook
-
-
+
Plan
+
+
+
+
+
+
+ Save as default
+
+
+
+
+
+
+
+ Capabilities
+
+
+
+ This speaker exposes:
+
+
+
+ AfterTouch can offer:
+
+
+
+
+
+
+
+ Service URLs
+
+
+ Pre-filled from the target URL above. Edit any
+ field for advanced setups (e.g. soundcork users
+ append /marge to
+ margeServerUrl). These overrides
+ apply to both XML and Telnet migrations.
+
+
+
+
+
+ Field
+
+
+ Current on Device
+
+
+ Target URL
+
+
+
+
+
+
+ margeServerUrl
+
+
+ —
+
+
+
+
+
+
+
+ statsServerUrl
+
+
+ —
+
+
+
+
+
+
+
+ swUpdateUrl
+
+
+ —
+
+
+
+
+
+
+
+ bmxRegistryUrl
+
+
+ —
+
+
+
+
+
+
+
+
+
+
+ Reset to defaults
+
+
+
+
+
+
+
+ Account pairing
+
+
+ —
+
+
+
+
+
+ Generate
+
+
+
+
- Note: This method injects a
- persistent DNS priority hook into the DHCP logic
- (/etc/udhcpc.d/50default). It
- preserves your router's search domain and
- secondary DNS servers. It also injects the Local
- Root CA.
+ >
+
+
+
+
+ Suggested plan
+
+
+
+
+
+ Pre-flight
+
+
+ Apply Suggested Plan
+
+
+
+
+
+
+
+ Customize this migration
+
+
+
+
+ Pick any combination of the three axes — the
+ wizard runs the matching backend operations in
+ order. Disabled options require a transport this
+ speaker doesn't expose.
+
+
+
+
+
+
+
+
+
+
+
+
+ Pre-flight
+
+
+ Apply Custom Plan
+
+
+
+
+
+
+
+ Telnet Migration (Port 17000)
+
+
+ Drives the speaker's diagnostic shell over
+ TCP/17000. Requires no SSH access. Works on most
+ ST 10/20/300 and Wave III/IV firmware
+ (27.0.6.x).
+
+
+ Limitation: HTTP-only redirection — telnet has
+ no way to install a custom CA. If you need
+ end-to-end TLS, use the XML or DNS method
+ instead.
+
+
+
+
+
+
+ Current Config (on Speaker)
+
+
+
+ Planned Config (AfterTouch)
+
+
+ ⚠️
+ Hostname resolution warning:
+
+
+ The planned IP shown above may be incorrect.
+ Migration methods that write IPs to the
+ device (hosts, resolv.conf) will refuse to
+ proceed until the hostname can be resolved
+ from the device itself.
+ Learn more →
+
+
+
+
+
+
+
+ Current /etc/resolv.conf
+
+
+
+ Planned /etc/resolv.conf Hook
+
+
+ Note: This method injects a
+ persistent DNS priority hook into the DHCP
+ logic
+ (/etc/udhcpc.d/50default). It
+ preserves your router's search domain and
+ secondary DNS servers. It also injects the
+ Local Root CA.
+