Access tonies.custom.json

Hi everyone,
I installed TeddyCloud following the great video walkthrough from MyDealz & Revvox using Portainer on my Proxmox environment.
First of all I want to thank the Revvox team for the great work they did! Works like a charm :slight_smile:
I’m wondering though how I can access the tonies.custom.json file as described in the Wiki (https://tonies-wiki.revvox.de/docs/tools/teddycloud/tecdoc/tonies-custom-json/). I couldn’t find an option in TeddyCloud and Portainer doesn’t seem to offer this function right away.
Any ideas?
Cheers,
Jay

I installed it the same way. I connected with the tool WinScp to the docker.

The tonies.custom.json file lies in the folder var/lib/docker/volumes/teddycloud_config/_data.

Dont know if this the general folder structure!?! Found it in my installation there!

1 Like

If you don’t name volume binds explicitly in the docker compose than this is the default.

1 Like

Thank you for your replies! I did have to do some additional research because I couldn’t get access via WinSCP, but the following procedure helped (if anyone faces the same issue):

Setting access rights via Proxmox VM console, not via Portainer Stack console!

  • Create separate user via the VM console in Proxmox, set password
  • Add user to the docker group
  • grant user read, write and execute rights for the teddycloud_config/data folder and the files
  • grant user at least read rights for the docker and volumes folder

Connecting via WinSCP

  • Access via WinSCP with SFTP (SSH) with the teddycloud IP and Port 22 (Standard SSH)
  • Username = your separate user from above + password

Uploading Images

  • Via WinSCP: Use the custom_img folder as suggested here or any other folder you like
  • Via TeddyCloud-GUI (more accessible in my opinion):
    • Go to Libary and create a folder (in my case, I created a folder “own” and inside that folder a subfolder “Pics”
    • upload images to new folder
    • Use the following path to adress your image in the tonies.custom.json in the “pic” field: “/library/own/Pics/myimage.jpg”

In the end, the entry should look like:
[
{
“model”: “MyModel A1”,
“audio_id”: [],
“hash”: [],
“series”: “MySeries A”,
“episodes”: “MyEpisode A1a and A1b”,
“tracks”: [],
“pic”: “/library/own/Pics/myimage_A1.jpg”
},
{
“model”: “MyModel A2”,
“audio_id”: [],
“hash”: [],
“series”: “MySeries A”,
“episodes”: “MyEpisode A2.a and A2.b”,
“tracks”: [],
“pic”: “/library/own/Pics/myimage_A2.jpg”
}
]

Cheers,
Jay

Here’s also the summary of my session with ChatGPT with detailed bash commands:

:white_check_mark: Ziel

Du möchtest über WinSCP auf Dateien eines Docker-Containers zugreifen, die per Docker Volume eingebunden sind – konkret im TeddyCloud-Stack, verwaltet über Portainer auf einer Proxmox-VM.


:closed_lock_with_key: 1. Benutzer erstellen & Zugriff via WinSCP ermöglichen

:technologist: Benutzer erstellen:

Logge dich per SSH in deine Docker-VM ein (z. B. via root@192.168.x.x) und fĂĽhre Folgendes aus:

bash

KopierenBearbeiten

# Benutzer anlegen
sudo adduser dockeradmin

# Benutzer einer sinnvollen Gruppe hinzufĂĽgen (z. B. 'docker')
sudo usermod -aG docker dockeradmin

Hinweis:
Die Gruppe docker ist nicht zwingend erforderlich für Volume-Zugriff, aber hilfreich, falls du später auch Docker-Befehle mit dem User nutzen willst.

Du kannst dir die Gruppenzugehörigkeit so anzeigen lassen:

bash

KopierenBearbeiten

groups dockeradmin

:identification_card: SSH-/SFTP-Zugriff via WinSCP:

  • Stelle sicher, dass die Proxmox-VM (also dein Docker-Host) SSH aktiviert hat.
  • Logge dich mit dem neuen Benutzer dockeradmin in WinSCP ein.
  • Du solltest Zugriff auf das Home-Verzeichnis haben – aber nicht auf Docker-Volumes (noch nicht!).

:hammer_and_wrench: 2. Zugriff auf Docker-Volumes konfigurieren

Docker speichert persistente Daten standardmäßig hier:

swift

KopierenBearbeiten

/var/lib/docker/volumes/[volume-name]/_data/

Problem:

Nur root darf in /var/lib/docker lesen und schreiben. Daher musst du ACLs (Access Control Lists) aktivieren und setzen.

:jigsaw: Lösungsschritte:

:package: A. ACL-UnterstĂĽtzung sicherstellen

bash

KopierenBearbeiten

sudo apt update
sudo apt install acl

:key: B. Zugriff auf das Volume erlauben

Erlaube dockeradmin rekursiven Zugriff auf die Volumes (inkl. Unterverzeichnisse):

bash

KopierenBearbeiten

# Lesen + Schreiben auf Volumes
sudo setfacl -R -m u:dockeradmin:rwx /var/lib/docker/volumes
sudo setfacl -R -d -m u:dockeradmin:rwx /var/lib/docker/volumes

:file_folder: C. Wichtig: Zugriff auf ĂĽbergeordnete Verzeichnisse sicherstellen

Selbst wenn _data Schreibrechte hat, muss der Benutzer auch mindestens „execute“ (x) Rechte auf alle übergeordneten Ordner haben:

bash

KopierenBearbeiten

# Schreib- und AusfĂĽhrungsrechte fĂĽr dockeradmin auf /var/lib/docker
sudo setfacl -m u:dockeradmin:--x /var/lib/docker
sudo setfacl -m u:dockeradmin:--x /var/lib/docker/volumes

Jetzt kann WinSCP bis zum Volume-Verzeichnis durchgehen.


:test_tube: 3. Test mit WinSCP & Schreibprobleme

Du solltest nun in WinSCP zu folgendem Pfad navigieren können:

swift

KopierenBearbeiten

/var/lib/docker/volumes/teddycloud_config/_data/

:exclamation: Wenn Speichern fehlschlägt (z. B. mit Notepad):

Fehler wie:

„Hochladen erfolgreich, aber Fehler beim Setzen der Berechtigungen oder Zeitstempel“

:arrow_right: Das ist unkritisch, die Datei wurde trotzdem korrekt gespeichert.

:white_check_mark: Optional: Fehler vermeiden

In WinSCP:

  1. Einstellungen öffnen
  2. → Übertragungen → Standard
  3. → Haken entfernen bei:
  • „Berechtigungen setzen“
  • „Zeitstempel beibehalten“
1 Like

Where do i find the custom_image folder in the docker container? Where is your folder located?

It is declared as a volume:

Volume Name:
teddycloud_custom_img

File Path:
/teddycloud/data/www/custom_img