teddyCloud is an open source server replacement for the Boxine Cloud
teddyCloud is an open source server replacement for the Boxine Cloud
TeddyCloud is an alternative server for your Toniebox, allowing you to host the cloud services locally. This gives you the control about which data is sent to the original manufacturer's cloud and allows you to host your own figurine audio files on e.g. your NAS or any other server.
Currently implemented are:
If you want to get started, please follow our guide on our website.
Please use the develop for your development and pull requests. Stable builds are available from the master branch. Don't forget to clone the submodules with --recurse-submodules.
To catch sanitizer in you IDE set a breakpoint on __asan::ReportGenericError.
dev-sandbox/ – Run TeddyCloud locally with mock data (tonies, Toniebox, TAF) to try out features and see changes during development. Builds and runs a local image.
Details: dev-sandbox/README.md.
Terminal (or F1) -> Run Task -> build (uses .vscode/tasks.json).Run and Debug, select [linux] teddyCloud, press F5 (uses .vscode/launch.json).F5 runs the prelaunch build task automatically and starts bin/teddycloud with gdb.http://localhost:/web on your forwarded HTTP port (You can find the port in F1 -> 'Ports: Focus on Ports view).TeddyCloud consists of two repositories: the backend (teddycloud) and the web frontend (teddycloud_web) as a submodule. Built web files live in contrib/data/www/.
Workflow for contributors:
Build and publish workflows (GitHub Actions):
| Workflow | Trigger | Description |
|---|---|---|
| Make web and commit | Manual (workflow_dispatch) |
Builds the web from the teddycloud_web submodule, commits files to contrib/data/www/, pushes, and triggers the Docker build. |
| Docker Image Publish Matrix | Push to master/develop or tags |
Builds Docker images automatically. |
After merging: Once both PRs are merged, a maintainer runs the "Make web and commit" workflow. It builds the frontend from the current teddycloud_web state (same branch), commits the built files, and updates the submodule pointer if needed. The subsequent push triggers the Docker build automatically.
The icons used are from here:
Thanks for the original authors for these great icons.
No open issues yet, or sync has not completed.