Toniebox not listed at /web/tonieboxes but connected to teddycloud

Hi all,

i followed the tutorial to connect and flash our toniebox with the current release version v0.6.3 of teddycloud.
Looking into the logs and testing with tonies, i can confirm the box is using the teddycloud instance.
In example some logs of a freshness check:

teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |handler_cloud.c:0817:handleCloudFreshnessCheck| Content (432 of 432)
teddycloud  | INFO |handler_cloud.c:0825:handleCloudFreshnessCheck| Found 27 tonies:
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: E00403501B92389C, nocloud: 0, live: 0, updated: 0, audioid: 00000001 (special)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: E00403501BE3E0B7, nocloud: 0, live: 0, updated: 0, audioid: 646B6349 (2023-05-22 12:42:49), audioid-server: 646B6349 (2023-05-22 12:42:49)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0000000001000000, nocloud: 0, live: 0, updated: 0, audioid: 58DE2BEB (2017-03-31 10:14:03)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0100000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8975 (2016-09-30 15:49:09)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0200000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8975 (2016-09-30 15:49:09)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0300000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8975 (2016-09-30 15:49:09)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0400000001000000, nocloud: 0, live: 0, updated: 0, audioid: 00000001 (special)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0500000001000000, nocloud: 0, live: 0, updated: 0, audioid: 00000001 (special)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0600000001000000, nocloud: 0, live: 0, updated: 0, audioid: 6644C1D2 (2024-05-15 14:08:18)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0700000001000000, nocloud: 0, live: 0, updated: 0, audioid: 595364DC (2017-06-28 08:12:12)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0800000001000000, nocloud: 0, live: 0, updated: 0, audioid: 59536396 (2017-06-28 08:06:46)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0900000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8977 (2016-09-30 15:49:11)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0A00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 595363CC (2017-06-28 08:07:40)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0B00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8977 (2016-09-30 15:49:11)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0C00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 00000001 (special)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0D00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8978 (2016-09-30 15:49:12)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0E00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8978 (2016-09-30 15:49:12)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 0F00000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8978 (2016-09-30 15:49:12)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1000000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8978 (2016-09-30 15:49:12)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1100000001000000, nocloud: 0, live: 0, updated: 0, audioid: 59F0AC95 (2017-10-25 15:24:05)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1200000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8979 (2016-09-30 15:49:13)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1300000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8979 (2016-09-30 15:49:13)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1400000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE8979 (2016-09-30 15:49:13)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1500000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE897A (2016-09-30 15:49:14)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1600000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE897A (2016-09-30 15:49:14)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1700000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE897A (2016-09-30 15:49:14)
teddycloud  | INFO |handler_cloud.c:0885:handleCloudFreshnessCheck|   uid: 1800000001000000, nocloud: 0, live: 0, updated: 0, audioid: 57EE897A (2016-09-30 15:49:14)
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 3.69.182.181
teddycloud  | INFO |cloud_request.c:0453:web_request| Binary data, not dumping body
teddycloud  | INFO |handler.c:0363:cbrCloudBodyPassthrough| Marked UID E00403501B92389C as updated from cloud

Changing the tonie to radio also works.

Loading the Toniebox subpage shows the following logs within teddycloud container:

teddycloud  | INFO |handler_cloud.c:0346:handleCloudClaim|  >> client claim requested rUID b7e0e31b500304e0, auth D0EDFD48...
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |handler_cloud.c:0396:handleCloudClaim|  >> cloud claim disabled
teddycloud  | INFO |handler_api.c:2375:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
teddycloud  | INFO |handler_api.c:2375:handleApiTonieboxJson| Trying to read /teddycloud/config/tonieboxes.json with size 3022
teddycloud  | INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 3.74.99.150
teddycloud  | INFO |cloud_request.c:0479:web_request| Response: '1737200041'
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 3.69.182.181
teddycloud  | INFO |cloud_request.c:0479:web_request| Response: '1737200041'

Teddycloud is behind a reverse proxy with certificate based routing, like mentioned here: https://forum.revvox.de/t/feasibility-of-hosting-teddycloud/425/40

Any idea what the issue might be?

Attached a screenshot:

Bootup logs:

teddycloud  | TeddyCloud v0.6.3 (39b2f89) - 2025-01-06 08:31:53 +0000 ubuntu linux-x86_64(64)
teddycloud  |
teddycloud  | INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini
teddycloud  | INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.ini
teddycloud  | INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE
teddycloud  | INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini
teddycloud  | INFO |tls_adapter.c:0390:tls_adapter_init| Loading certificates...
teddycloud  | INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE
teddycloud  | INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE
teddycloud  | INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5117342
teddycloud  | INFO |toniesJson.c:0100:tonies_update| Updating tonies.json from api.revvox.de...
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
teddycloud  | INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonies.json
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.109.133
teddycloud  | INFO |toniesJson.c:0124:tonies_update| ... success updating tonies.json from api.revvox.de, reloading
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5117342
teddycloud  | INFO |toniesJson.c:0211:tonieboxes_update| Updating tonies.json from api.revvox.de...
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226
teddycloud  | INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonieboxes.json
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.109.133
teddycloud  | INFO |toniesJson.c:0238:tonieboxes_update| ... success updating tonieboxes.json from api.revvox.de, reloading
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2
teddycloud  | INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5117342
teddycloud  | INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |handler_cloud.c:0041:handleCloudTime|  >> respond with current time
teddycloud  | INFO |mqtt.c:0690:mqtt_init_box| Skipping client 'Toniebox' (cn: 'default')
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 18.156.186.144
teddycloud  | INFO |cloud_request.c:0479:web_request| Response: '1737200260'
teddycloud  | INFO |cloud_request.c:0200:web_request| Connecting to HTTP server prod.de.tbs.toys:443...
teddycloud  | INFO |cloud_request.c:0252:web_request|   trying IP: 3.69.182.181
teddycloud  | INFO |cloud_request.c:0479:web_request| Response: '1737200260'

The reverse proxy is the problem. This was teddyCloud may not get the client certificates which are used to identify the box.

What box are you running?

There is no working setup including mTLS for cc3200 boxes, yet. Only reverse proxy I know of working for cc3200 is not terminating SSL at all, like so. For ESP boxes mTLS should work.

I am running an esp32 box.
Double checking the reverse proxy. My goal was to forward the certificate to Teddycloud. Maybe my setup is a little bit broken.