Jump to content

[SOLVED] Syncthing Mountpoints außerhalb der Dockerinstallation /config


topaLE

Recommended Posts

Hallo zusammen,

 

Vielleicht kann mir einer den Denkanstoß geben ...

 

2 Unraidserver / beide haben per Docker Syncthing installiert unter /mnt/user/appdata/syncthing

 

Das Syncen zwischen lokalen PC (Win) klappt wunderbar. Jeweils kann Syncthing aber nur innerhalb des Docker-Containers in /config neue Ordner zum Syncronisieren neu anlegen. Möchte ich allerdings ein Share (z.B. /mnt/user/backups) erstellen, fehlt es mir an den Berechtigungen.

 

Muss unter Unraid noch ein neuer User "syncthing" angelegt werden, der Berechtigungen erhält?

 

Also, ich möchte Share-Ordner von Unraid1 (/mnt/user/backups) per Sync mit Unraid2 (/mnt/user/sync) verknüpfen und so eine Art Backup-Funktionalität haben.

 

Was fehlt mir da speziell der Docker-Config für Syncthing? /data1 und /data2 z.B. sagen mir nix und ich weiß nicht ob damit die "volumes" gemeint sind. Die integrierte Docker-Funktion in Unraid ist etwas anders, als wie ich Docker unter (Portainer) gewohnt bin dort neue Container zu erstellen.

 

Wie löse ich mein Problem? Vielen Dank an Euch.

 

 

 

img_047.png

img_045.png

Link to comment

Für mich liest sich das so, dass der versucht in /mnt/user einen neuen Ordner zu erstellen. Das wäre eine Ebene zu hoch. Müsste ja wenn in /mnt/user/<sharename> sein.

 

Allerdings sehe ich auf deinem Screenshot, dass du im Container gar nicht /mnt/user/<sharename> mit /mnt/user/<sharename> verlinkt hast, sondern mit /data. Entsprechend siehst du im Container den Inhalt des Shares in /data.

 

 

Link to comment

Tja, keine Ahnung was dort im Container an Pfaden angegeben werden muss. Einzig bekannt ist die /config im Container. Im englischen Thread, werde ich auch nicht wirklich schlau draus. Ich denke dort fehlen irgendwelche Berechtigungen. Die Ebene /mnt/user/backups gibt es im Container ja nicht. Dort sollte man eben scheinbar /backups /mnt/user/backups setzen. Nur ist eben die Configs der Variablen im Unraid nicht mit dem von Portainer gleichzusetzen. Daher fällt mir wirklich aktuell der Ansatz zu. 

 

Habe echt viel probiert, grundsätzlich nützt mir kein Ordner innerhalb von appdata/syncthing/config , wenn ich Mountpoints von Shares zweiter UNraid's syncen will.

 

Eventuell gibt es noch ne Lösung von anderen. Thanks

 

 

Link to comment

Alleine schon das hier:

---
version: "2.1"
services:
  syncthing:
    image: lscr.io/linuxserver/syncthing
    container_name: syncthing
    hostname: syncthing #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /path/to/appdata/config:/config
      - /path/to/data1:/data1
      - /path/to/data2:/data2
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
      - 21027:21027/udp
    restart: unless-stopped

 

macht mich stutzig, UID 1000 / GID=1000 , obwohl UnRaid Standard 99/100 (nobody/users) ist. Weiß der Teufel, was dort im Container für Variablen benötigt werden. Kann sein, das im UnRaid außerhalb von Synthing nicht gesynct werden kann. Aktuell habe ich nix gefunden im Netz. 

Link to comment
7 hours ago, topaLE said:

UID 1000 / GID=1000 , obwohl UnRaid Standard 99/100 (nobody/users) ist

In dem Beispiel hat eben jemand 1000:1000 gesetzt. Dafür ist die Variable ja da. Du kannst sie eben ändern.

 

7 hours ago, topaLE said:

Standardordner nach Erstellen des Containers ist immer /config - Lässt sich grundsätzlich vorher nicht anpassen.

 

 

Wenn du einen Job anlegst, kannst du keinen Pfad angeben? Würde mich wundern.

Link to comment
8 hours ago, topaLE said:

Weiß der Teufel, was dort im Container für Variablen benötigt werden.

 

Hab mal im Linuxserver Docker nachgeschaut:

 

- PUID und PGID musst Du auf 99 resp. 100 ändern.

 

- /config ist der appdata Ordner, der wird i.d.R. automatisch korrekt gemappt

 

- /data1 ist anwendungsspezifisch (siehe zweiten Link)

 

- /data2 ist anwendungsspezifisch (siehe zweiten Link)

 

https://docs.linuxserver.io/images/docker-syncthing

 

 

Link to comment
8 hours ago, topaLE said:

macht mich stutzig, UID 1000 / GID=1000 , obwohl UnRaid Standard 99/100 (nobody/users) ist. Weiß der Teufel, was dort im Container für Variablen benötigt werden. Kann sein, das im UnRaid außerhalb von Synthing nicht gesynct werden kann.

Ich muss hier auch noch meinen Senf zu @hawihoney's und @mgutt's Erklärungen dazu geben... :D

 

Docker sind prinzipiell auf jedem Host lauffähig egal welche Distribution, hauptsache die Architektur (in unserem Fall x86_64) stimmt.

 

Die UID und GID musst du anpassen bzw. solltest du anpassen da der Container sonst eventuell nicht lauffähig ist bzw. du die Dateien am Host mit einem nicht root User oder über SMB nicht lesen/schreiben/löschen kannst.

 

Prinzipiell ist es egal wo du im Container hin mountest solange du keine Systemkritschen Odner überschreibst, falls es dich interessiert, hier eine Übersicht: Klick

 

Ich bin noch immer der Meinung das es wohl das beste wäre du mountest in den Ordner "/mnt/WASAUCHIMMER" oder "/media/WASAUCHIMMER" im Container zB:

grafik.png.72109f6f187c01088a197b87cff4abbf.png

 

Wie in diesem Beispiel wird dein Share vom Host "meinewichtigendaten" nach "/mnt/HIERkannstDUeinsetzenWASduWILLST" im Container gemounted und der Ordner "HIERkannstDUeinsetzenWASduWILLST" erstellt und kannst dann vom Container aus unter dem Pfad "/mnt/HIERkannstDUeinsetzenWASduWILLST" rein schreiben.

Link to comment
1 hour ago, mgutt said:

Wenn du einen Job anlegst, kannst du keinen Pfad angeben? Würde mich wundern.

Doch schon, nur eben /config/blabla

 

Die Container-Definition ist wie oben schon angegeben was UID/GID angeht 99/100. Funktioniert ja auch alles, wenn innerhalb von /config die Ordner angelegt werden nur eben nicht außerhalb (mnt/user). Ich vermute mal, das es fehlende Schreibrechte von "root" und "nobody" sind.

 

img_052.png

Link to comment

Das ist Standard, wenn man komplett neu den Dockercontainer startet.

img_053.thumb.png.97e12d84861786f2ffd01d96bbf6d0b8.png

 

Hier muss man schon für data1 / data2 irgendein Pfad auf dem Host angegeben. Zusätzlich kann man dann weitere Pfade definieren. Die /config (Container) muss dann auch auf dem Host nach /mnt/user/appdata/syncthing. Alle anderen Variablen stimmen ja. Die Fragen eben: Gibt es denn im Container die Pfade data1 und data2, oder sind das nur Beispiele und muss die vor dem Erstellen des Containers über "Bearbeiten" entsprechen ändern, wie @ich777 im Beispiel nannte: /mnt/wasWeißich nach /mnt/user/sync (Host)?

 

Link to comment
11 minutes ago, topaLE said:

Gibt es denn im Container die Pfade data1 und data2, oder sind das nur Beispiele und muss die vor dem Erstellen des Containers über "Bearbeiten" entsprechen ändern, wie @ich777 im Beispiel nannte: /mnt/wasWeißich nach /mnt/user/sync (Host)?

Nein, die gibt es nicht, aber du kannst die lassen da die Pfade erstellt werden und dann sind die Pfade eben "/data1" und "/data2", du kannst das machen wie du willst, ich bin aber wie gesagt noch immer der Meinung das die Pfade die gemounted werden unter /mnt oder /media gemounted gehören wie in meinem Beispiel.

 

Wenn ein Pfad nicht existiert dann wird der im Docker erstellt wenn du den mountest, hab ich oben auch geschrieben, den Pfad /mnt/wasWeißich gibt es auch nicht im Container aber der wird eben erstellt wenn du den im Template angibst.

Link to comment

So habe ich es mal abgefeuert ...

img_055.thumb.png.ed114550ca325dcfe29eabc369babc00.png

 

Im Backend Syncthing neuen Ordner erstellt:

img_056.thumb.png.7e0f1187fd85227d7772cb762ced0edf.png

 

img_057.thumb.png.ca6d626add2fd9793d8a80a244b661e3.png

 

img_058.thumb.png.5cb97b26e0bf3e26ba8490097a1ee623.png

 

Leider immer noch das Gleiche. Keine Ahnung was ich da nun falsch mache. Wie gesagt: Ordner in /mnt/user/appdata/syncthing (dort wo die config.xml liegt), klappt wunderbar.

 

 

Log:

[Y2GPG] 08:46:47 INFO: TCP listener ([::]:22000) starting
[Y2GPG] 08:46:47 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[Y2GPG] 08:46:47 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[Y2GPG] 08:46:47 INFO: Using discovery mechanism: global discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[Y2GPG] 08:46:47 INFO: Using discovery mechanism: global discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[Y2GPG] 08:46:47 INFO: Using discovery mechanism: global discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[Y2GPG] 08:46:47 INFO: Using discovery mechanism: IPv4 local broadcast discovery on port 21027
[Y2GPG] 08:46:47 INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
[Y2GPG] 08:46:47 INFO: Loading HTTPS certificate: open /config/https-cert.pem: no such file or directory
[Y2GPG] 08:46:47 INFO: Creating new HTTPS certificate
[Y2GPG] 08:46:47 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[Y2GPG] 08:46:47 INFO: QUIC listener ([::]:22000) starting
[Y2GPG] 08:46:47 INFO: GUI and API listening on [::]:8384
[Y2GPG] 08:46:47 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[Y2GPG] 08:46:47 INFO: My name is "5ebeac3969c8"
[Y2GPG] 08:47:01 INFO: Detected 1 NAT service
[Y2GPG] 08:47:06 INFO: quic://0.0.0.0:22000 detected NAT type: Port restricted NAT
[Y2GPG] 08:47:06 INFO: quic://0.0.0.0:22000 resolved external address quic://84.134.31.140:22000 (via stun.syncthing.net:3478)
[Y2GPG] 08:47:17 INFO: Joined relay relay://95.216.9.111:555
[Y2GPG] 09:05:23 INFO: GUI and API listening on [::]:8384
[Y2GPG] 09:05:23 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[Y2GPG] 09:05:31 INFO: GUI and API listening on [::]:8384
[Y2GPG] 09:05:31 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[Y2GPG] 09:10:48 INFO: Adding folder "music" (music-djkur)
[Y2GPG] 09:10:48 INFO: No stored folder metadata for "music-djkur"; recalculating
[Y2GPG] 09:10:48 WARNING: Failed to create folder marker: mkdir /mnt/music/.stfolder: input/output error

[Y2GPG] 09:10:48 INFO: Ready to synchronize "music" (music-djkur) (sendreceive)
[Y2GPG] 09:10:48 INFO: Failed initial scan of sendreceive folder "music" (music-djkur)

[Y2GPG] 09:10:48 WARNING: Error on folder "music" (music-djkur): folder marker missing (this indicates potential data loss, search docs/forum to get information about how to proceed)

 

 

Link to comment
37 minutes ago, topaLE said:
[Y2GPG] 09:10:48 WARNING: Failed to create folder marker: mkdir /mnt/music/.stfolder: input/output error

Sieht so aus als könnte der Ordner /mnt/music/.stfolder nicht erstellt werden.

Lass mal die permissions für diesen Share auf unRAID neu erstellen (aber bitte nur für diesen Share und den Container vorher stoppen!) Tools -> New Permissions -> nur den Share auswählen -> Apply.

 

Wie hast du die Daten denn dort hin kopiert (/mnt/user/music)?

Link to comment
  • ich777 changed the title to [SOLVED] Syncthing Mountpoints außerhalb der Dockerinstallation /config
2 minutes ago, hawihoney said:

Ist es tatsächlich so, dass /mnt/user/music standardmäßig in Unraid existiert?

Nein.

 

Aber ich tippe darauf das er in irgend einem Container, im Template, den Pfad definiert hat und dann wird dieser auch auf unRAID erstellt beim Container start wenn dieser nicht existiert.

Link to comment
16 minutes ago, ich777 said:

Aber ich tippe darauf das er in irgend einem Container, im Template, den Pfad definiert hat und dann wird dieser auch auf unRAID erstellt beim Container start wenn dieser nicht existiert.

Naja, Jein. Ich habe vorher ein Share erstellt (/mnt/user/music) und das Pool-Cache cache_ssd zugewiesen. Dann im Template Container Synthing diesen definiert. Das nach Start des Container zu erstellende Verzeichnis (data1 z.B) oder eben von @ich777 vorgeschlagene /mnt/music (Container) wird dann scheinbar neu erstellt. Aber ich denke, das es das Rechteproblem für den cache_ssd (Zuweisung /mnt/user/music) Pool war. Irgendwie hatte er sich verschluckt. Ich hätte das vorher auch mal mit dem andere Cache probieren können. k.A. , nun läuft es ja. Besten Dank nochmal an alle und ein schönes WE. ;-) 

Edited by topaLE
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...