Hallo,
wie sieht denn Deine YAML-Datei aus, die Du zur Installation per Docker verwendet hast? Kannst Du die bitte mal posten (ACHTUNG: bitte Passwörter etc. vorher durch Dummy-Werte ersetzen!).
Hallo,
wie sieht denn Deine YAML-Datei aus, die Du zur Installation per Docker verwendet hast? Kannst Du die bitte mal posten (ACHTUNG: bitte Passwörter etc. vorher durch Dummy-Werte ersetzen!).
Stell mal bitte die YAML von dockhand ein.
Außerdem: warum willst Du dockhand über caddy extern verfügbar machen? Das ist eine riesen Einladung für Hacker und Angreifer! Solche Werkzeuge gehören ausschließlich ins interne LAN und sollten extern ausschließlich über VPN und die LAN-IP angesprochen werden.
Da hat sich doch alles geklärt ![]()
Hallo,
ich bringe mal ein bisschen Licht ins Dunkel.
Der korrekte Befehl lautet:
docker exec bookstack_db /bin/mariadb-dump -u root --password=DEINDATENBANKPASSWORT DATENBANKNAME> bookstack.sql
Bitte ersetze die Platzhalter DEINDATENBANKPASSWORT und DATENBANKNAME durch die Werte, die Du in der YAML-Datei bei der Einrichtung von Bookstack hinterlegt hast.
mal ein kleiner Tipp: es heißt nicht ahavi-browse sondern avahi-browse
Dann funktioniert der Caddy-Proxy - herzlichen Glückwunsch!
Dein Fehlerbild lässt darauf schließen, dass Du in der bookstack-YAML noch die interne IP des NAS im Parameter APP_URL= drin hast.
Den musst Du natürlich nun in folgenden Eintrag ändern:
APP_URL=https://DEINE.DYNDNS.ADRESSE/bookstack
Was passiert, wenn Du folgende URL aufrufst: https://DEINE.DYNDNS.ADRESSE/bookstack
Lösche mal bitte Zeile 11 der YAML und nimm bei der Folgezeile das # weg.
Die Fehlermeldung besagt , dass er das Caddyfile nicht laden kann.
Hallo,
das mit dem Netzwerk ist falsch. Der Caddy muss ja als Reverse-Proxy gerade direkt auf dem Host laufen, um seine Schutzfunktion ausüben zu können.
Daher bitte die YAML so wie von mir gepostet verwenden!
Poste bitte mal Deine komplette YAML-Datei und dann bitte noch einen Screenshot von den angelegten Ordnern und dem Caddyfile, aus denen jeweils der Pfad auf dem NAS ersichtlich ist.
Hallo,
bitte genau lesen! Nicht Caddyfile.txt sondern nur Caddyfile. Ohne Endung und mit großem C.
Dann klappt es.
Hallo,
ich mal wieder. Ich hatte in unserem anderen Thema schon einmal detailliert beschrieben. Hier noch mal die Zusammenfassung:
1. in der Conainerstation eine neue Applikation mit folgendem YAML-Code anlegen:
version: "3.7"
services:
caddy:
container_name: caddy
image: caddy:alpine
restart: always
network_mode: "host"
ports:
- "80:80"
- "443:443"
volumes:
- /share/CACHEDEV1_DATA/Public/caddy/Caddyfile:/etc/caddy/Caddyfile
- /share/CACHEDEV1_DATA/Public/caddy/data:/data
- /share/CACHEDEV1_DATA/Public/caddy/config:/config
Alles anzeigen
2. In der Public-Freigabe auf dem NAS einen Ordner caddy anlegen und darin eine Textdatei Caddyfile mit folgendem Inhalt, damit Dein bookstack-Container auch extern bereitgestellt wird:
https://DEINE.DYNDNS.ADRESSE:443 {
handle_path /bookstack* {
reverse_proxy http://IPADRESSE.DES.NAS:6875
}
}
Bitte dann auch noch die Ordner data und config innerhalb des Ordners caddy anlegen.
Damit der Caddy-Container funktioniert, muss der interne Webserver des NAS abgeschaltet werden, oder die Standardports 80 und 443 auf andere Ports gelegt werden. Aber eigentlich brauchst Du den unsicheren Apache im QTS nicht. Bitte auch schauen, dass der Systemmanagementport des NAS auf 8080 (http) und 8081 (https) steht. Ansonsten belegt dieser nämlich in der Standardeinstellung den Port 443 (https).
Der Caddycontainer übernimmt das komplette Zertifikatsmanagement mit Letsencrypt und sichert als Reverse Proxy den internen Container zusätzlich ab.
Was natürlich selbstverständlich sein sollte, dass Du für den Adminzugang von bookstack ein sicheres und komplexes Passwort wählst und zumindest für den Admin-Zugang auch Multifaktor-Authentifizierung aktivierst.
Mit dem obigen Caddyfile ist bookstack dann unter folgender URL erreichbar: https://DEINE.DYNDNS.ADRESSE/bookstack. Diese Konfiguration hat den Vorteil, dass Du mit Subdirs weitere Dienste unter der gleichen DynDNS-Adresse nutzen kannst, zum Beispiel Nextcloud-AIO.
Damit das alles funktioniert, musst Du natürlich auch eine DynDNS-Adresse bei einem Anbieter Deiner Wahl registrieren und dann diesen DynDNS-Zugang in Deinem Router (Idealfall) oder im virtuellen Switch des NAS (Alternative) anlegen.
Im Router muss eine Portweiterleitung der Ports 80 und 443 auf die interne IP-Adresse des NAS eingerichtet werden.
Deshalb verweise ich noch einmal auf meine obigen Posts.
Machen wir mal Schritt-für-Schritt:
1. Neuen Freigabeordner über die Systemsteuerung anlegen. Nennen wir ihn mal bookstack. Auf dem Ordner muss der Admin Schreibrechte haben
2. In der YAML-Datei folgenden Pfad für die Volumes eingeben - /share/CACHEDEV1_DATA/bookstack/config:/config
Damit wird der Ordner config des Containers auf die Freigabe bookstack auf dem NAS gemappt. Diese Freigabe kann dann problemlos per HybridBackupSync gesichert werden.
Dann hast Du Verzeichnisse auf dem NAS gemappt. Wenn Du beim Mapping unterhalb des Volumes-Befehl ./ davor gesetzt hast, werden die Daten unter dem Root-Verzeichnis der Containerstation (standardmäßig /share/Container/) abgelegt. Das ist aber suboptimal - besser sind separate Freigabeordner außerhalb des Pfades der Containerstation.
Hintergrund:
Beim Neueinrichten der Containerstation kann es passieren, dass der komplette Inhalt gelöscht wird. Daher immer die Datenverzeichnisse außerhalb des Root-Verzeichnisses der Containerstation ablegen.
Hallo,
Du hast wahrscheinlich neue Volumes angelegt. Schau doch einfach mal, ob in Deiner Containerstation jetzt unter Volumes etwas angezeigt wird.
Ich versuche mal, ein bisschen Licht ins Dunkel mit den Volumes zu bringen:
Es gibt zwei Möglichkeiten, bei Docker Daten außerhalb des Containers zu speichern.
1. Docker-Volumes:
Hier werden die Daten in einer Art "Container" abgespeichert und im Dateisystem des NAS ist nur eine Datei (nämlich der Datencontainer) zu sehen. EIn direkter Zugriff auf die Daten innerhalb des Volumes ist nur über Docker-Befehle möglich.
Gemountet wird so ein Docker-Volume in der YAML-Datei über seinen Namen, z.B.:
2. Gemappte Verzeichnisse des Hosts:
Hier werden die Daten im Dateisystem des Hostsystems gespeichert, dadurch sind im Dateisystem des NAS dann auch alle einzelnen Dateien sichtbar. Es ist theoretisch ein direkter Zugriff auf einzelne Daten direkt mit Mitteln des NAS (z.B. Filestation oder SMB-Freigabe) möglich.
Gemountet wird so ein Volume mit dem vollständigen Pfad auf dem Host:
Grundsätzlich ist es so, dass der volumes-Befehl innerhalb der YAML-Datei diese Syntax hat:
Variante 1:
- NAME_DES_VOLUMES:MOUNTPOINT_INNERHALB_DES_CONTAINERS
Variante 2:
- VOLLSTÄNDIGER_PFAD_AUF_DEM_HOST:MOUNTPOINT_INNERHALB_DES_CONTAINERS
Für die Datensicherung per HybridBackupSync ist die Variante 2 einfacher, da die Datei im Dateisystem des NAS liegen.
WICHTIG: Wie ich bereits unter Post #27 geschrieben und verlinkt habe, gehört zu einem vollständigen Backup immer auch die MariaDB-Datenbank! Diese muss über mysqldump exportiert werden, idealerweise auch auf ein gemapptes Verzeichnis des NAS. Nur wenn Daten UND Datenbank-Dump gesichert werden, geht die Wiederherstellung.
Hier noch mal der Link aus meinem genannten Post:
Backup and Restore · BookStack
So, ich hoffe, damit etwas mehr Licht ins Dunkel gebracht zu haben.
Bei den in Deiner Containerstation als ungenutzt angezeigten Volumes handelt es sich um "echte" Docker-Volumes (Variante 1), die aktuell mit keinem Container mehr verbunden sind. Wahrscheinlich hattest Du erst die Syntax für Docker-Volumes verwendet und jetzt den Container mit gemappten Hostverzeichnissen neu aufgesetzt. Dann bleiben die ursprünglichen Docker-Volumes als ungenutzt zurück. Wenn Du diese nicht mehr benötigst, kannst Du sie mit der Funktion "Bereinigen" (Docker-Befehl prune) löschen lassen.
Guten Morgen,
aktuell gibt es keine eingebaute Möglichkeit, Bookstack zu sichern:
Backup and Restore · BookStack
Du kannst aber über HybridBackupSync den Pfad /Container wegsichern - dann hast Du jeweils eine Sicherung aller Container. Was bei dieser Variante schwierig bis unmöglich ist: einen einzelnen Container zurückzusichern.
Den Port vom Bookstack würde ich lassen. Intern aus dem LAN kann er ganz normal über die IP-Adresse aufgerufen werden. Ist dann caddy als Proxy installiert, funktioniert der Zugriff über die Dyndns-Adresse von draußen.
Achtung: Bitte auch beachten, dass dann die URL in der bookstack-Konfiguration angepasst werden muss!
Wenn Du den Container wie dargestellt eingerichtet hast, läuft der unverschlüsselt mit http. Das solltest Du keinesfalls ins Internet freigeben.
Also solltest Du einen Proxy - hier empfehle ich caddy als Docker-Container - davorschalten und die externen Ports 80 und 443 auf den Caddy-Container weiterleiten. Der übernimmt die https-Verschlüsselung und das Zertifikatsmanagement.
Der Caddy-Container ist relativ sicher und wird unter anderem auch bei der Nextcloud-AIO eingesetzt. Der Vorteil ist außerdem, dass Du ggf. noch weitere Container-Dienste mit Caddy auf sicherem Wege ins Internet freigeben kannst.
Hier mal eine Beispiel YAML-Daei für Caddy:
version: "3.7"
services:
caddy:
container_name: caddy
image: caddy:alpine
restart: always
network_mode: "host"
ports:
- "80:80"
- "443:443"
volumes:
- /share/CACHEDEV1_DATA/Public/caddy/Caddyfile:/etc/caddy/Caddyfile
- /share/CACHEDEV1_DATA/Public/caddy/data:/data
- /share/CACHEDEV1_DATA/Public/caddy/config:/config
Alles anzeigen
Die ganzen Daten von Caddy werden im Verzeichnis Public/caddy abgelegt.
Und hier noch ein Beispiel für das benötigte Caddyfile:
https://DEINE.DYNDNS.ADRESSE:443 {
handle_path /bookstack* {
reverse_proxy http://IPADRESSE.DES.NAS:6875
}
}
Damit der Caddy-Container funktioniert, muss der interne Webserver des NAS abgeschaltet werden, oder die Standardports 80 und 443 auf andere Ports gelegt werden. Aber eigentlich brauchst Du den unsicheren Apache im QTS nicht. Bitte auch schauen, dass der Systemmanagementport des NAS auf 8080 (http) und 8081 (https) steht. Ansonsten belegt dieser nämlich in der Standardeinstellung den Port 443 (https).
Der Caddycontainer übernimmt das komplette Zertifikatsmanagement mit Letsencrypt und sichert als Reverse Proxy den internen Container zusätzlich ab.
Was natürlich selbstverständlich sein sollte, dass Du für den Adminzugang von bookstack ein sicheres und komplexes Passwort wählst und zumindest für den Admin-Zugang auch Multifaktor-Authentifizierung aktivierst.
Mit dem obigen Caddyfile ist bookstack dann unter folgender URL erreichbar: https://DEINE.DYNDNS.ADRESSE/bookstack. Diese Konfiguration hat den Vorteil, dass Du mit Subdirs weitere Dienste unter der gleichen DYNDNS-Adresse nutzen kannst, zum Beispiel Nextcloud-AIO.
Da bin ich bei dolbyman : never change a running system
Unabhängig davon sollte das jetzt aber klappen, da die Verzeichnisse mit den richtigen Rechten angelegt wurden durch die Installation als Admin.
Der Fehler ist, dass die Container keine Rechte auf die erstellten Volumes haben (permission denied).
Klingt nach einem Einrichtungsproblem der Containerstation.
Eventuell mal testweise den Ur-Admin aktivieren und mit diesem testen. Dazu die Containerstation deinstallieren und danach noch die Freigabeordner der Containerstation INKLUSIVE der Daten löschen.
Dann die Containerstation neu installieren.
Achtung: dadurch gehen alle Container und Volumes verloren!