teddycloud

teddycloud

Docker app from Selfhosters

Overview

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 manufacturers cloud and allows you to host your own figurine audio files on e.g. your NAS or any other server.

TeddyCloud

Features

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:

  • Provide audio content over the air
  • Cache original tonie audio content
  • Simulate live content (.live)
  • Passthrough original tonie audio content
  • Convert any audio file to a tonie audio file (web)
  • On-the-fly convert audio streams via ffmpeg for webradio and streams
  • Basic Web fronted
  • Filter custom tags to prevent deletion (.nocloud)
  • Configure maximum volume for speaker and headphones
  • Configure LED
  • Configure slapping
  • Customize original box sounds (ex. jingle) over the air
  • Extract/Inject certitifcates on a esp32 firmware dump
  • Decode RTNL logs
  • MQTT client
  • Home Assistant integration (MQTT)
  • Web frontend (full stack developers welcome)

Planned

  • teddyBench integration
  • Toniebox 2 support

Where to start?

If you want to get started, please follow our guide on our website.

Development and bulding

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.

Local Development Sandbox

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.

Build and Run in Editor (VS Code)

  • Build once: Terminal (or F1) -> Run Task -> build (uses .vscode/tasks.json).
  • Debug/run: open 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.
  • For web UI in devcontainer, open http://localhost:<port>/web on your forwarded HTTP port (You can find the port in F1 -> 'Ports: Focus on Ports view).

Contribution Workflow (teddycloud + teddycloud_web)

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:

  1. Backend-only changes: Open a PR against teddycloud – no submodule changes needed.
  2. Frontend-only changes: Open a PR against teddycloud_web – no PR against teddycloud needed.
  3. Changes in both repos: Create and merge both PRs separately (teddycloud_web first, then teddycloud). Do not commit submodule pointer changes in the teddycloud PR – a maintainer will handle that.

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.

Attribution

The icons used are from here:

Thanks for the original authors for these great icons.

Install Teddycloud on Unraid in a few clicks.

Find Teddycloud in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Teddycloud Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/toniebox-reverse-engineering/teddycloud:latest
Last Updated2026-08-30
First Seen2024-01-22

Runtime arguments

Web UI
http://[IP]:[PORT:80]
Network
bridge
Privileged
false

Template configuration

WEB UIPorttcp

This an optional port for the webui of teddycloud

Target
80
Default
7780
SSL-CertsPorttcp

Required PORT to get certificates

Target
443
Default
7443
Value
7443
contentPathrw
Target
/teddycloud/data/content
Value
/mnt/user/appdata/teddycloud/data/content
configPathrw
Target
/teddycloud/config
Value
/mnt/user/appdata/teddycloud/config
certsPathrw

Place your certs here after grabbing them off your device. (Yes you need to do this)

Target
/teddycloud/certs
Value
/mnt/user/appdata/teddycloud/certs
libraryPathrw
Target
/teddycloud/data/library
Value
/mnt/user/appdata/teddycloud/data/library
firmwarePathrw
Target
/teddycloud/data/firmware
Value
/mnt/user/appdata/teddycloud/data/firmware