# TeddyCloud: a self-hosted replacement for the Toniebox cloud

> Reimplements the Boxine cloud services a Toniebox talks to as a self-hosted C server, so the box can fetch audio, settings and over-the-air content locally while the owner controls what reaches the manufacturer. It serves and caches tonie audio, converts other audio into the box’s TAF format, can pass requests through to the original cloud, and adds a web interface, MQTT and Home Assistant integration. Protobuf definitions in the repository describe the box’s freshness-check, RTNL log and TAF header messages.

- Type: Case study
- Targets: Firmware · Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-27
- Original resource: <https://github.com/toniebox-reverse-engineering/teddycloud>
- Primary source: <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/README.md>
- Catalog page: <https://awesomerea.org/resources/teddycloud-toniebox-server-case/>
- Record JSON: <https://awesomerea.org/resources/teddycloud-toniebox-server-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/teddycloud-toniebox-server-case/index.md)

## Requirements & limits

- Reviewed at the stable master head of 2026-08-25, the v0.7.0 merge; release tc_v0.7.0 was tagged the same day, and active development continues on the develop branch. The project’s setup guide covers Toniebox 1 boxes with CC3200, CC3235 or ESP32 chips, and the README lists Toniebox 2 support as planned.
- Setup is invasive and specific to each box: the project guide has owners dump their own box’s client certificates, flash a replacement CA into the box and redirect its DNS, and the server can extract or inject certificates in an ESP32 firmware dump. The repository ships no box certificates, firmware or tonie audio (those directories are empty placeholders). The dev-sandbox’s pre-generated certificates are self-signed and meant only for local testing.
- Builds with a hand-written Makefile, protoc-c and a C toolchain, plus submodules for CycloneTCP/SSL/Crypto, cJSON, Opus, Ogg, the teddycloud_web frontend and emsdk; Linux debug builds enable AddressSanitizer and UBSan, and Docker is the recommended path on macOS. Release tc_v0.7.0 attaches an amd64 zip from the Windows/Linux release workflow, and Debian, Ubuntu and Alpine Docker images are published for several platforms. Stream conversion uses ffmpeg.
- Python API tests for the custom-tonie JSON endpoints and a WASM TAF-encoder test run through Makefile targets; the reviewed workflows build and publish without running them. A dev-sandbox serves mock tonies, box and TAF data. Behavior with real boxes and the Boxine cloud remains project-reported.
- GPL-2.0 (LICENSE); the vendored Cyclone stack, Opus, Ogg, cJSON and FatFs keep their own terms. Tonie audio, box firmware and Boxine’s services keep their own rights.

## Primary sources

1. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/README.md>
2. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/CONTRIBUTING.md>
3. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/.gitmodules>
4. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/Makefile>
5. <https://github.com/toniebox-reverse-engineering/teddycloud/tree/78c3b38e36f665d3a5fffe907f73a02725176377/proto>
6. <https://github.com/toniebox-reverse-engineering/teddycloud/tree/78c3b38e36f665d3a5fffe907f73a02725176377/contrib/certs>
7. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/dev-sandbox/README.md>
8. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/tests/test_tonies_custom_json_api.py>
9. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/.github/workflows/build_release.yml>
10. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/.github/workflows/publish_docker_matrix_base.yml>
11. <https://github.com/toniebox-reverse-engineering/teddycloud/blob/78c3b38e36f665d3a5fffe907f73a02725176377/LICENSE>
12. <https://github.com/toniebox-reverse-engineering/teddycloud/releases/tag/tc_v0.7.0>
13. <https://tonies-wiki.revvox.de/docs/tools/teddycloud/setup/>

## More in Firmware and hardware

- [Valetudo: local replacement for robot-vacuum vendor clouds](https://awesomerea.org/resources/valetudo-robot-cloud-replacement-case/index.md) · Case study
- [EchoMuse: replacement software that turns the Echo Dot 2nd gen into a Home Assistant voice satellite](https://awesomerea.org/resources/echomuse-echo-dot-voice-satellite-case/index.md) · Case study
- [OSIRIS: replacing Onkyo receiver firmware through MCU protocol research](https://awesomerea.org/resources/osiris-onkyo-receiver-case/index.md) · Case study
- [Virtual MPC Sample: rehosting Akai MPC Sample firmware in QEMU](https://awesomerea.org/resources/virtual-mpc-sample-case/index.md) · Case study
- [OpenJooki: replacing the Jooki 2 software and recovery path](https://awesomerea.org/resources/openjooki-jooki2-case/index.md) · Case study
- [Stickwalker: porting Pokéwalker firmware to the Stick S3](https://awesomerea.org/resources/stickwalker-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
