cbirkenbeul / docker-homelab

Docker Compose Dateien für Homelabs
https://www.teqqy.de
Apache License 2.0
617 stars 116 forks source link

SSL_ERROR_INTERNAL_ERROR_ALERT #79

Closed Zaby1990 closed 3 years ago

Zaby1990 commented 3 years ago

Hallo, erstmal vielen Dank für deinen Blog/ deine Videos/ dieses Repository.

Ich sitze heut schon den ganzen Tag daran und versuche Traefik und Nextcloud gemeinsam zum Laufen zu bringen.

Setup

~/traefik/docker-compose.yaml sieht so aus:

---
version: '3.7'

services:
  traefik:
    image: traefik:2.3
    container_name: traefik
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - ./config:/etc/traefik
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.#######.ddnss.de`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.tls.certresolver=default"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.routers.traefik.middlewares=auth@docker"
      - "traefik.http.middlewares.auth.basicauth.users=Traefik-Admin:$$2y$$05$$XgkO2k/37BIuZnyJJL38bOR41yLK.0yfrp2eFCeJFq4fuWgv4dC3e"
    networks:
      - traefik_proxy
      - default
    ports:
      - "80:80"
      - "443:443"
    restart: always

networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge

~/traefik/config/traefik.toml sieht so aus:

[log]
  level = "DEBUG"

[providers]
  [providers.docker]
    exposedByDefault = false
    endpoint = "unix:///var/run/docker.sock"
    network = "traefik_proxy"
  [providers.file]
    filename = "/etc/traefik/dynamic.yml"

[api]
  dashboard = true

# https://doc.traefik.io/traefik/routing/entrypoints/#redirection
[entryPoints.web]
  address = ":80"

  [entryPoints.web.http]
    [entryPoints.web.http.redirections]
      [entryPoints.web.http.redirections.entryPoint]
        to = "websecure"
        scheme = "https"

[entryPoints.websecure]
  address = ":443"

[certificatesResolvers]
  [certificatesResolvers.default.acme]
    email = "################@web.de" #Email Adresse hier anpassen
    storage = "/etc/traefik/ACME/acme.json"
    [certificatesResolvers.default.acme.tlsChallenge]

~/traefik/config/dynamic.yml sieht so aus:

---
tls:
  options:
    default:
      minVersion: VersionTLS12
      sniStrict : true
      cipherSuites:
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
      curvePreferences:
        - CurveP521
        - CurveP384        
    mintls13:
      minVersion: VersionTLS13

http:
  middlewares:
    secHeaders:
      headers:
        browserXssFilter: true
        contentTypeNosniff: true
        frameDeny: true
        sslRedirect: true
        #  HSTS Configuration
        stsIncludeSubdomains: true
        stsPreload: true
        stsSeconds: 31536000
        customRequestHeaders:
          X-Frame-Options: "SAMEORIGIN"
        customFrameOptionsValue: "SAMEORIGIN"

#  Beispiel für externe Dienste
#   routers:
#     router-1: # Tausche den Namen gegen etwas sprechendes aus
#       entryPoints:
#         - websecure
#       rule: "Host(`example.com`)"
#       service: "service-1" # Den Namen am besten ähnlich zu dem oben setzen
#       tls:
#         certresolver: default

#  services:
#    service-1: # Ich verwende hier den gleiche Namen wie bei routers
#      loadBalancer:
#        servers:
#          - url: "http://127.0.0.1" # Auf die richtige URL anpassen.

~/nextcloud/docker-compose.yaml sieht so aus:

---
version: '3.3'

services:
  nextcloud-db:
    image: linuxserver/mariadb  # musste ich so ändern, sonst wurde es nicht installiert
    container_name: nextcloud-db
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/docker/nextcloud/database_var:/var/lib/mysql
      - /var/docker/nextcloud/database_config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD="*******"
      - MYSQL_PASSWORD="*******"
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  nextcloud-app:
    image: nextcloud
    container_name: nextcloud-app
    restart: always
    volumes:
      - /var/docker/nextcloud/app:/var/www/html
    links:
      - nextcloud-db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud.entrypoints=websecure"
      - "traefik.http.routers.nextcloud.rule=Host(`cloud.#####.ddnss.de`)"
      - "traefik.http.routers.nextcloud.tls=true"
      - "traefik.http.routers.nextcloud.tls.certresolver=default"
      - "traefik.http.routers.nextcloud.middlewares=nextcloud-dav,secHeaders@file"
      - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"
    networks:
      - traefik_proxy
      - default

networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge

Fehlerbeschreibung

  1. Traefik Dashboard

    • traefik.ketzel.ddnss.de/dashboard --> 404 page not found
    • traefik.ketzel.ddnss.de:8180/dashboard --> Fehler: Verbindung fehlgeschlagen
    • traefik.ketzel.ddnss.de:8080/dashboard --> Fehler: Verbindung fehlgeschlagen
  2. Nextcloud

    • nach langer Wartezeit(Einrichtung Zertifikat ?!) kam ich auf die Einrichtungsseite mit cloud.#####.ddnss.de
    • beim Abschließen der Installation folgende Meldung im Browser (s. Bild): nextcloud_fehler
    • Fehler Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1045] Access denied for user 'nextcloud'@'nextcloud-app.nextcloud_default' (using password: YES)
    • nextcloud-app | [Fri Apr 23 21:20:21.129182 2021] [access_compat:error] [pid 38] [client 80.133.212.206:0] AH01797: client denied by server configuration: /var/www/html/data/htaccesstest.txt
    • nextcloud-app | 172.18.0.2 - - [23/Apr/2021:21:20:21 +0000] "GET /data/htaccesstest.txt HTTP/1.1" 403 661 "-" "Nextcloud Server Crawler"
    • nextcloud-app | [Fri Apr 23 21:20:22.460248 2021] [access_compat:error] [pid 38] [client 80.133.212.206:0] AH01797: client denied by server configuration: /var/www/html/data/htaccesstest.txt
    • nextcloud-app | 172.18.0.2 - - [23/Apr/2021:21:20:22 +0000] "GET /data/htaccesstest.txt HTTP/1.1" 403 661 "-" "Nextcloud Server Crawler"
    • nextcloud-app | 172.18.0.2 - - [23/Apr/2021:21:20:19 +0000] "POST /index.php HTTP/1.1" 200 3944 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"

Leider komme ich bei den Fehlern nicht weiter und würde mich über etwas Rat freuen.

mr-bolle commented 3 years ago

kannst du einmal die Anmeldung an der Datenbank prüfen

docker exec -it nextcloud-db bash

mysql -h nextcloud-db -u nextcloud -p

# dann MYSQL_PASSWORD eingeben

show databases; 

dann solltest du folgende Datenbanken finden

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.010 sec)
Zaby1990 commented 3 years ago

Danke @mr-bolle für den Input. Ich denke, da liegt der Hund begraben, ich bekomme die Fehlermeldung:

Enter password:
ERROR 1045 (28000): Access denied for user 'nextcloud'@'f9adbf05074b' (using password: YES)

Manchmal bekam ich beim Starten des Nextcloud-Containers mit sudo docker-compose up -d auch die Meldung WARNING: Service "nextcloud-db" is using volume "/config" from the previous container. Host mapping "/var/docker/nextcloud/database_config" has no effect. Remove the existing containers (withdocker-compose rm ` (kommt in einer zu langen Zeile um vollständig angelegt zu werden) weshalb ich den remove Befehl auch durchgeführt habe, Fehler bleibt und DB weiterhin auch nicht über cl ansprechbar

Vielleicht noch eine dumme Frage, ich habe darauf verzichtet die Einstellung so zu wählen, dass die Dockerbefehle ohne rootrechte ausgeführt werden können. In manchen Tutorials findet man ja solche Sachen: systemctl enable --now docker ; usermod -aG docker $USER ; newgrp docker Das habe icht nicht gemacht. Ich finde es angenehmer, wenn man da noch eine zusätzliche Passwortstufe drin hat. Kann dies zu Berechtigungsproblemen führen?

mr-bolle commented 3 years ago

@zaby1990 ja das ist das Problem.

Beende einmal den container sudo docker-compose down und mach mal eine Kopie von deinem Datenbank Volume

sudo mv /var/docker/nextcloud/database_var /var/docker/nextcloud/database_var_old && sudo mv /var/docker/nextcloud/database_config /var/docker/nextcloud/database_config_old

Danach kannst du die Nextcloud noch mal starten (es wird eine neue Datenbank angelegt) sudo docker-compose up -d

Zaby1990 commented 3 years ago

hab ich gemacht, Fehler bleibt bestehen.

Im Zusammenhang mit der Datenbank ist mir beim ersten Versuch aufgefallen, dass das Image mit dem vorgeschlagenen Eintrag

services:
  nextcloud-db:
    image: linuxserver/mariadb:10.4

nicht geladen werden konnte. Deshalb habe ich auf die Versionsangabe verzichtet:

services:
  nextcloud-db:
    image: linuxserver/mariadb

Im entstandenen Container liegt folgende Version vor:

root@7c8dc10bc96b:/# mariadb --version
mariadb  Ver 15.1 Distrib 10.1.47-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2

Gibt es da eventuell Kompatibilitätsprobleme?

mr-bolle commented 3 years ago

@Zaby1990 ich habe einmal auf den RP2 das Paket installiert, das Problem ist die mariadb Ubuntu verwendet, und das alpine image unterstützt ebenfalls diese Hardware nicht 👎

N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic InRelease' doesn't support architecture 'armhf'

versuche einmal ein älteres Image - leider finde ich aktuell keine bessere Lösung.

services:
  nextcloud-db:
    image: lsioarmhf/mariadb
Zaby1990 commented 3 years ago

@mr-bolle nochmal danke für den Ehrgeiz mein Problem zu lösen.

Da ich danke deiner Hilfe das Problem jetzt etwas besser verstanden habe, habe ich andere Images gesucht, immer mit der Maßgabe, dass es für die armv7-Architektur meines RPi3B gehen sollte. Man findet auch recht viele Lösungen dazu, allerdings keine zielführend. Folgendes funktioniert nicht:

  1. image: lsioarmhf/mariadb (läd mariadb Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2)
  2. image: yobasystems/alpine-mariadb:arm32v7 (läd mariadb Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (armv8l) using readline 5.1)
  3. image: yobasystems/alpine-mariadb:armhf (läd mariadb Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (armv8l) using readline 5.1)
  4. image: jsurf/rpi-raspbian:latest (hängt in Dauer-Restart)
  5. image: jsurf/rpi-raspbian:jessie (hängt in Dauer-Restart)
  6. image: jsurf/rpi-raspbian:stretch (hängt in Dauer-Restart)
  7. image: jsurf/rpi-mariadb (läd mariadb Ver 15.1 Distrib 10.3.27-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2)
  8. image: scjtqs/mariadb (läd mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2)

bei dem Befehl Enter password: mysql -h nextcloud-db -u nextcloud -p variiert dann auch die Fehlermeldung etwas, nämlich an welcher steller er Versucht sich mit dem Usernamen anzumelden, so habe ich bei:

Enter password:
ERROR 1045 (28000): Access denied for user 'nextcloud'@$VARIANTE (using password: YES)

folgende Variationen erhalten (je nach geladenem Image):

Ich werde noch etwas weiter umprobieren, werde dich/euch nun erstmal an aktuellen Stand teilhaben lassen.

Ich habe so ein Gefühl, dass ich mir selbst ein image zusammenfriemeln muss. Da das Thema Docker für mich neu ist, wird das auch ein gute Stück Arbeit, wenn auch Chance was neues zu lernen. Deshalb/Dennoch die Frage: ist es sinnvoll diesen Weg zu gehen?

mr-bolle commented 3 years ago

ℹ️ update verwende bitte Nextcloud 20, Nextcloud 21 braucht mysql 10.2 und hier finde ich kein Image.

  nextcloud-app:
    image: nextcloud:20

@Zaby1990 was ist dein Problem? Vermutlich musst du nur mal dein mysql volume löschen (damit alle alten Instanzen gelöscht werden)

Ich habe nun mal das offizielle Image von linuxserver getestet, und damit kann ich mich korrekt auch an der Nextcloud anmelden, und auch über den nextcloud-db Containter komm ich auf drauf.

nc-raspberry-2

services:
  nextcloud-db:
    image: linuxserver/mariadb
$ docker exec -it nextcloud-db bash
root@1e4a060fc56b:/# mysql -h nextcloud-db -u nextcloud -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]>
mr-bolle commented 3 years ago

Alternativ sollte auch die postgres Datenbank funktionieren.

https://github.com/nextcloud/docker/issues/1488

Zaby1990 commented 3 years ago

ich hab noch nicht aufgegeben, sondern gerade leider wenig Zeit. Ich teste weiter und melde mich wenn's läuft oder ich verzweifle.

mr-bolle commented 3 years ago

Ich habe auch mal weiter getestet, vielleicht wäre https://github.com/nextcloud/nextcloudpi was.

Der Raspberry ist für die Nextcloud nicht so recht geeignet, vielleicht werde ich es mal mit dem Raspberry Pi 4 testen, alles was älter ist läuft nicht so richtig 🤔

Noschvie commented 3 years ago

meine db.env und docker-compose.yml Datei, läuft auf einem RPi4

POSTGRES_PASSWORD=...
POSTGRES_DB=nextcloud
POSTGRES_USER=nextcloud
version: '3'

services:
  db:
    image: postgres
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - db:/var/lib/postgresql/data
    env_file:
      - db.env

  app:
    image: nextcloud:apache
    restart: always
    ports:
      - 8080:80
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - nextcloud:/var/www/html
    environment:
      - POSTGRES_HOST=db
    env_file:
      - db.env
    depends_on:
      - db

volumes:
  db:
  nextcloud:
Zaby1990 commented 3 years ago

Ich habe den RPi nochmal komplett neu aufgesetzt und die hier verfügbaren Dateien für Nextcloud und Traefik reinkopiert. Mit den entsprechenden Anpassungen (Mail-adresse, domain) und abänderungen (nextcloud:20)

Ich habe immernoch das Problem, dass ich auf das Traefik-Dashboard nicht zugreifen kann. In der Anleitung steht, es wäre unter Port 8180 ansprechbar, dieser wird in der docker-compose.yaml aber nicht durchgeleitet, was ich nicht verstehe. den Port hab ich in meinem Router natürlich freigegeben, ich denke, das ist nicht das Problem ich habe es auch mit 8180:8180 und 8180:443 (im docker-compose.yaml von traefik) probiert, aber immer Verbindung nicht möglich auch wenn ich von innerhalb des Netzwerks komme, also über IP:8180 kann ich das Dashboard nicht aufrufen --> 404 page not found

und die Nextcloud-App kann ich jetzt leider auch gar nicht mehr aufrufen. SSL_ERROR_INTERNAL_ERROR_ALERT Das hatte ich zu Beginn auch, ich denke da braucht das Zertifikat noch etwas Zeit, allerdings hat es jetzt schon über 30 Minuten Zeit gehabt, ich warte jetzt mal noch 2 Stunden Wenn das wieder gehen sollte, kann ich weiter testen und berichten.

Die Raspy variante von Nextcloud probier ich dann als Nächtes.

mr-bolle commented 3 years ago

Traefik braucht port 80 + 443 im Container und Host

ports:
      - "80:80"
      - "443:443"
Zaby1990 commented 3 years ago

ports:

  • "80:80"
  • "443:443"

ja, das hab ich drin. inzwischen habe ich den Probierzusatz - "8180:8180" wieder entfernt. mit traefik.domain.dynamikdomainservice.de ohne Port bekomme ich beim Traefik-Dashboard ebenfalls den SSL_ERROR_INTERNAL_ERROR_ALERT (ich habe in der docker-compose das /dashboart und /api für die URL entfernt)

Der Zugriff auf die acme.json scheint zu klappen, sieht so aus:

{
  "default": {
    "Account": {
      "Email": "meine_@dres.se",
      "Registration": {
        "body": {
          "status": "valid",
          "contact": [
            "mailto:meine_@dres.se"
          ]
        },
        "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/122066741"
      },
      "PrivateKey": LONG-KEY-IN-GAENSSEFUESSCHEN,
      "KeyType": "4096"
    },
    "Certificates": null
  }
}
mr-bolle commented 3 years ago

Das SSL Zertifikat sieht korrekt aus, nun kümmern wir uns mal um dein Traefik Dashboard. Hier einmal meine docker-compose.yaml

Den Port 8180 brauchst du nur, wenn du über deine Lokale Host IP auf das Dashboard zugreifen willst. Das ist aber nicht notwendig, da du eine Traefik Subdomain mit Zertifikat hast. Verwende aber eine auth.basicauth Middleware, dass ist sicherer.

version: '3.7'

services:
      traefik:
        image: traefik:2.3
        container_name: traefik
        command:
          - "--api=true"
          - "--api.dashboard=true"
        security_opt:
          - no-new-privileges:true
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - ./config:/etc/traefik
          - /etc/localtime:/etc/localtime:ro
          - /etc/timezone:/etc/timezone:ro
        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.traefik.entrypoints=websecure"
          - "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)"  # Domain anpassen
          - "traefik.http.routers.traefik.tls=true"
          - "traefik.http.routers.traefik.tls.certresolver=default"
          - "traefik.http.routers.traefik.middlewares=secHeaders@file"
          - "traefik.http.routers.traefik.service=api@internal"
          - "traefik.http.routers.traefik.middlewares=auth@docker"
          - "traefik.http.middlewares.auth.basicauth.users=xxxxxxUSERxxxx:$$xxxxxHASHxxxxPASSWORTxxx" 
        networks:
          - traefik_proxy
          - default
        ports:
          - "80:80"
          - "443:443"
          # - "8180:8080"     # Externer Port wird hier auf 8180 gelegt!
        restart: always

networks:
      traefik_proxy:
        external:
          name: traefik_proxy
      default:
        driver: bridge    
Zaby1990 commented 3 years ago

Hallo, methodische Fehlersuche find ich super. Ich hatte folgende Differenzen zu deinem File (die geänderten stehen normal drin, meine übrig gebliebenen als Kommentar):

traefik:
     [...]
        command:
          - "--api=true"
          - "--api.dashboard=true"
        security_opt:
          - no-new-privileges:true
     [...]
        label:
          - "traefik.http.routers.traefik.tls=true"
          - "traefik.http.routers.traefik.middlewares=secHeaders@file"
          - "traefik.http.middlewares.auth.basicauth.users=xxUSERxx:yyHASHyy" 
      #  - "traefik.http.middlewares.auth.basicauth.usersfile=./htpasswd"  
      #  (das hab ich mal noch probiert, aber das wollte nicht, 
      #   im File stand nichts anderes als in der Zeilde drüber)
      #  - "traefik.http.routers.traefik.entrypoints=websecure"
      [...]

Fazit: Dashboard ist erreichbar. Ich finde mich leider in der Traefik-Doku nicht so gut zurecht, ich denke ich wäre da nicht allein drauf gekommen. Danke.

Als nächstes werde ich mir die Raspi-Cloud anschauen.

Zaby1990 commented 3 years ago
services:
  nextcloud-db:
    image: linuxserver/mariadb
$ docker exec -it nextcloud-db bash
root@1e4a060fc56b:/# mysql -h nextcloud-db -u nextcloud -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]>

Also das kann ich jetzt bestätigen, das geht auch bei mir. Ich denke durch das neu aufsetzen habe ich Sachen von vorherigen Spielereien entfernt, die Schwierigkeiten gemacht haben. Anders kann ich es mir nicht erklären.

Dann habe ich Nextcloud mit der Version 20 aufgesetzt, aber das oben beschriebene Problem besteht leider immernoch. Heut abend schau ich mir mal den Vorschlag mit Postgres an.

An NextcloudPi wag ich mich grad noch nicht. Da fehlt mir noch etwas das Verständnis, wie ich die normale Anleitung für Docker in ein Docker-Compose umwandle.

mr-bolle commented 3 years ago

Ich denke durch das neu aufsetzen habe ich Sachen von vorherigen Spielereien entfernt, die Schwierigkeiten gemacht haben.

Ich vermute das es noch ein MySQL Volume gab, was er geladen hat, und dann versucht er in der alten fehlerhaften Instanz weiter zu machen.

Aber schön das es schon mal geht, ich würde dann aber bei mariadb bleiben.

Zaby1990 commented 3 years ago

Aber schön das es schon mal geht, ich würde dann aber bei mariadb bleiben.

ja ok, das kann ich machen, aber dann komm ich jetzt nicht weiter, da ja immernoch der Fehler SQLSTATE[HY000] [1045] auftritt.

Vielleicht macht ich ja auch was falsch. Um Verständnisprobleme auszuräumen: Screenshot_2021-05-06 Die Felder sind doch folgendermaßen zu nutzen:

  1. Name des zukünftigen Admin-Kontos, kann ich in diesem Bildschirm festlegen, z.B. admin
  2. hier kann ich mir ein Passwort für das Admin-Konto aussuchen, z.B. nimda
  3. hier liegen die Daten im Docker-Container, im docker-compose.yml wird das allerdings nirgends zum Host geleitet. Oder liegen die Daten am Ende in der DB? Ich dachte die DB dient zur Verwaltung der Nutzerkonten
  4. der Name des Datenbankbenutzer, ist in der docker-compose.yml festgelegt in der Zeile:
    - MYSQL_USER=nextcloud
  5. das festgelegte Passwort für den Datenbankbenutzer aus Zeile:
    - MYSQL_PASSWORD=duolctxen
  6. Der Name der Datenbank aus der Zeile
    - MYSQL_DATABASE=nextcloud
  7. Name des Datenbank Hosts = container_name
    container_name: nextcloud-db

    bzw. / oder (!?)

    services:
    nextcloud-db:

    bzw. / oder (!?)

    services:
    nextcloud-app:
        links:
            - nextcloud-db

Soweit mein Verständnis.

Ich habe nun mal das offizielle Image von linuxserver getestet, und damit kann ich mich korrekt auch an der Nextcloud anmelden, und auch über den nextcloud-db Containter komm ich auf drauf. nc-raspberry-2

Du hast hier die Zusatz-Apps weggelassen. Stellen die ein Problem dar? Ich würde sehr gern die Kontakt und Kalenderfunktion nutzen.

mr-bolle commented 3 years ago

Das ist korrekt, kannst du dich mit dem User nextcloud und dem MySQL Passwort im Container anmelden?

zu 3. das ist das Datenverzeichnis von der Nextcloud das wird in Service nextcloud unter dem Volume /var/docker/nextcloud/app:/var/www/html gespeichert.

Die Datenbank wird in dem Volume des Service nextcloud-db gespeichert /var/docker/nextcloud/database_var:/var/lib/mysql

$ docker exec -it nextcloud-db mysql -u nextcloud -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.01 sec)

Du hast hier die Zusatz-Apps weggelassen. Stellen die ein Problem dar?

Nein, diese kannst du nachträglich noch einbinden. Ich habe gerade auf dem Raspberry Pi 2 noch mal eine Instanz gestartet. Bei mir läuft es, auch wenn ein paar Optimierungen an der DB notwendig sind, das siehst du dann im Admin Bereich wenn es läuft.

Zaby1990 commented 3 years ago
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.01 sec)

Ja, geht. Funfact, ich hab heut da ja schonmal geschrieben, dass das geht.

Also das kann ich jetzt bestätigen, das geht auch bei mir.

Als ich es jetzt nach deiner Frage nochmal probiert habe, ging es plötzlich nicht mehr. Dann hab ich die docker-compose down genommen, den kompletten Ordner /var/docker/nextcloud gelöscht, wieder docker-compose up -d und siehe da, es geht wieder. Und dann ahb ich jetzt alles wie immer gemacht auf der NextCloud-Site, Habe aber die empfohlenen Apps nicht installieren lassen. Und ich fasse es nicht, es kam keine Fehlermeldung. Ich muss jetzt wohl nur erstmal den Raspberry etwas in Ruhe lassen. Und deshalb bekommt er jetzt die Nachtruhe dafür. Morgen geb ich nochmal Bescheid.

Zaby1990 commented 3 years ago

Also ich hab jetzt noch etwas weiter rumgespielt und konnte auch weitere Apps installieren. Leider habe ich im jetzigen Moment wenig Zeit für umfangreiche Test, aber ich geh jetzt mal vom positiven aus.

Vielen Dank für die Mühe