Skip to content

OpenCloud - Docker Compose local

Verschoben OpenCloud
3 1 698
  • Docker Compose entspricht den Nextcloud AIO Images. In dieser Umgebung ist alles drin, was wir haben möchten 😉 Collabora usw.

    Installation

    Laut Anleitung -> https://docs.opencloud.eu/docs/admin/getting-started/container/docker-compose-local

    git clone https://github.com/opencloud-eu/opencloud.git
    cd opencloud/deployments/examples/opencloud_full
    docker compose up -d
    

    Etwas warten und fertig. Da ich das auf einer Proxmox VM laufen habe, muss ich auf meinem Hauptrechner noch die /etc/hosts anpassen.

    192.168.3.22    cloud.opencloud.test
    192.168.3.22    collabora.opencloud.test
    192.168.3.22    wopiserver.opencloud.test
    

    Damit weiß dann der Haupt-PC wo er suchen muss. Das klappt auch einwandfrei.

    Aktualisieren

    Da kam direkt heute ein neues Release raus, also stand ich vor dem Problem "Wie aktualisiere ich das?"

    Ist gar nicht so schwer 🙂

    In das Verzeichnis wechseln, bei mir

    cd /home/frank/opencloud
    

    Wir holen mal alles Neue

    root@debian:/home/frank/opencloud# git fetch
    remote: Enumerating objects: 297, done.
    remote: Counting objects: 100% (224/224), done.
    remote: Compressing objects: 100% (104/104), done.
    remote: Total 297 (delta 140), reused 152 (delta 119), pack-reused 73 (from 1)
    Empfange Objekte: 100% (297/297), 691.77 KiB | 7.13 MiB/s, fertig.
    Löse Unterschiede auf: 100% (141/141), abgeschlossen mit 85 lokalen Objekten.
    Von https://github.com/opencloud-eu/opencloud
       d2da6a6b2..58354ff23  main                                          -> origin/main
     * [neuer Branch]        add-claude-github-actions-1747683201110       -> origin/add-claude-github-actions-1747683201110
     * [neuer Branch]        dependabot/go_modules/github.com/olekukonko/tablewriter-1.0.6 -> origin/dependabot/go_modules/github.com/olekukonko/tablewriter-1.0.6
     * [neuer Branch]        dependabot/go_modules/golang.org/x/net-0.40.0 -> origin/dependabot/go_modules/golang.org/x/net-0.40.0
     * [neuer Branch]        dependabot/npm_and_yarn/services/idp/i18next-conv-15.1.1 -> origin/dependabot/npm_and_yarn/services/idp/i18next-conv-15.1.1
     * [neuer Branch]        dependabot/npm_and_yarn/services/idp/types/node-22.15.19 -> origin/dependabot/npm_and_yarn/services/idp/types/node-22.15.19
     * [neues Tag]           v2.3.0                                        -> v2.3.0
    

    Das git Tag 2.3.0 ist neu.

    root@debian:/home/frank/opencloud# git tag -l
    public_avail
    v1.0.0
    v1.1.0
    v1.1.0-alpha.1
    v1.1.0-alpha.2
    v1.1.0-alpha.3
    v1.1.0-alpha.4
    v2.0.0
    v2.0.0-beta.1
    v2.0.1
    v2.0.2
    v2.1.0
    v2.2.0
    v2.3.0
    

    Wir aktualisieren den main Zweig

    root@debian:/home/frank/opencloud# git pull origin main
    Von https://github.com/opencloud-eu/opencloud
     * branch                main       -> FETCH_HEAD
    Aktualisiere d2da6a6b2..58354ff23
    Fast-forward
     .woodpecker.env                                                                        |   2 +-
     .woodpecker.star                                                                       | 104 +++++++++++++++++--------
     CHANGELOG.md                                                                           |  58 ++++++++++++++
     go.mod                                                                                 |   6 +-
     go.sum                                                                                 |  12 +--
     pkg/version/version.go                                                                 |   2 +-
     services/web/Makefile                                                                  |   2 +-
     vendor/github.com/segmentio/kafka-go/Makefile                                          |   2 +-
     vendor/github.com/segmentio/kafka-go/README.md                                         |   7 +-
     vendor/github.com/segmentio/kafka-go/batch.go                                          |   2 +-
     vendor/github.com/segmentio/kafka-go/conn.go                                           |  19 +++--
     vendor/github.com/segmentio/kafka-go/consumergroup.go                                  |  20 ++---
     vendor/github.com/segmentio/kafka-go/createtopics.go                                   | 102 +++++++++++++++++++------
     vendor/github.com/segmentio/kafka-go/deletetopics.go                                   |  54 +++++++++----
     vendor/github.com/segmentio/kafka-go/describeclientquotas.go                           |   2 +-
     vendor/github.com/segmentio/kafka-go/docker-compose-241.yml                            |  32 --------
     vendor/github.com/segmentio/kafka-go/docker-compose.010.yml                            |  29 -------
     vendor/github.com/segmentio/kafka-go/docker-compose.yml                                |  61 ++++++++-------
     vendor/github.com/segmentio/kafka-go/error.go                                          |   9 +++
     vendor/github.com/segmentio/kafka-go/joingroup.go                                      |  47 ++++++++----
     vendor/github.com/segmentio/kafka-go/listgroups.go                                     |   2 +-
     vendor/github.com/segmentio/kafka-go/listoffset.go                                     |   2 +-
     vendor/github.com/segmentio/kafka-go/metadata.go                                       |   2 +-
     vendor/github.com/segmentio/kafka-go/offsetfetch.go                                    |   2 +-
     vendor/github.com/segmentio/kafka-go/protocol/record.go                                |   4 +-
     vendor/github.com/segmentio/kafka-go/reader.go                                         |   6 +-
     vendor/github.com/segmentio/kafka-go/record.go                                         |   2 +-
     vendor/github.com/segmentio/kafka-go/writer.go                                         |   2 +-
     .../google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go  | 173 ++++++++++++++++++++++++++++--------------
     vendor/google.golang.org/grpc/internal/transport/http2_client.go                       |   5 +-
     vendor/google.golang.org/grpc/internal/transport/http_util.go                          |   4 +-
     vendor/google.golang.org/grpc/version.go                                               |   2 +-
     vendor/modules.txt                                                                     |   6 +-
     33 files changed, 501 insertions(+), 283 deletions(-)
     delete mode 100644 vendor/github.com/segmentio/kafka-go/docker-compose-241.yml
     delete mode 100644 vendor/github.com/segmentio/kafka-go/docker-compose.010.yml
    

    Wir wechseln nach

    cd deployments/examples/opencloud_full
    

    Wir holen mal alle neuen Container usw.

    root@debian:/home/frank/opencloud/deployments/examples/opencloud_full# docker compose pull
        [+] Pulling 15/15
         ✔ collaboration Skipped - Image is already being pulled by opencloud                                                               0.0s 
         ✔ collabora Pulled                                                                                                                 1.3s 
         ✔ traefik Pulled                                                                                                                   1.3s 
         ✔ progressbars-init Pulled                                                                                                         1.3s 
         ✔ opencloud Pulled                                                                                                                 4.5s 
           ✔ 0a9a5dfd008f Already exists                                                                                                    0.0s 
           ✔ c9b09d489a24 Pull complete                                                                                                     1.6s 
           ✔ c963d7215d91 Pull complete                                                                                                     1.6s 
           ✔ afc20667da18 Pull complete                                                                                                     1.7s 
           ✔ 4f4fb700ef54 Pull complete                                                                                                     1.7s 
           ✔ 75dc51477ecf Pull complete                                                                                                     2.5s 
         ✔ externalsites-init Pulled                                                                                                        1.3s 
         ✔ drawio-init Pulled                                                                                                               1.3s 
         ✔ jsonviewer-init Pulled                                                                                                           1.3s 
         ✔ unzip-init Pulled                                                                                                                1.3s     
    

    Und den compose komplett aktualisieren

    root@debian:/home/frank/opencloud/deployments/examples/opencloud_full# docker compose up -d
    [+] Running 9/9
     ✔ Container opencloud_full-externalsites-init-1  Exited                                                                           15.0s 
     ✔ Container opencloud_full-unzip-init-1          Exited                                                                           15.0s 
     ✔ Container opencloud_full-traefik-1             Running                                                                           0.0s 
     ✔ Container opencloud_full-jsonviewer-init-1     Exited                                                                           15.0s 
     ✔ Container opencloud_full-collabora-1           Healthy                                                                          15.8s 
     ✔ Container opencloud_full-drawio-init-1         Exited                                                                           15.0s 
     ✔ Container opencloud_full-progressbars-init-1   Exited                                                                           15.0s 
     ✔ Container opencloud_full-opencloud-1           Started                                                                          15.3s 
     ✔ Container opencloud_full-collaboration-1       Started                                                                          12.7s 
    

    Danach war die Installation auf dem neuesten Stand.

    c0c78cca-c7ad-4288-a342-273d7ccc6acd-image.png

    An die Docker Profis, was falsch? Bitte kommentieren. Danke!

  • Personal Folder

    d8ef4a9d-9f2a-4781-983c-8e4e36751e24-image.png

    draw.io

    070a49a8-dd23-4412-939c-cd57f1f686bc-image.png

    Collabora

    bdf8f2d7-ee6f-452e-9775-2f10f90cbf3b-image.png

    ce4464f5-6c07-4da1-b0b7-c03467077026-image.png

    Spaces

    c861f04f-63ca-430a-95db-89be53556bf7-image.png

    App Store

    c80b66b8-03c6-4d05-bb1f-a10c68463a6b-image.png

    Admin Settings

    e4595575-b5d3-49da-9b20-3dd69f1b4fcf-image.png

  • Noch was Wichtiges. Die Docker Installation nutzt folgende config. In meinem Beispiel findet man sie unter

    /home/frank/opencloud/deployments/examples/opencloud_full
    

    Darin liegt ein .env

    ## Basic Settings ##
    # Define the docker compose log driver used.
    # Defaults to local
    LOG_DRIVER=
    # If you're on an internet facing server, comment out following line.
    # It skips certificate validation for various parts of OpenCloud and is
    # needed when self signed certificates are used.
    INSECURE=true
    
    
    ## Traefik Settings ##
    # Note: Traefik is always enabled and can't be disabled.
    # Serve Traefik dashboard.
    # Defaults to "false".
    TRAEFIK_DASHBOARD=
    # Domain of Traefik, where you can find the dashboard.
    # Defaults to "traefik.opencloud.test"
    TRAEFIK_DOMAIN=
    # Basic authentication for the traefik dashboard.
    # Defaults to user "admin" and password "admin" (written as: "admin:$2y$05$KDHu3xq92SPaO3G8Ybkc7edd51pPLJcG1nWk3lmlrIdANQ/B6r5pq").
    # To create user:password pair, it's possible to use this command:
    # echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g
    TRAEFIK_BASIC_AUTH_USERS=
    # Email address for obtaining LetsEncrypt certificates.
    # Needs only be changed if this is a public facing server.
    TRAEFIK_ACME_MAIL=
    # Set to the following for testing to check the certificate process:
    # "https://acme-staging-v02.api.letsencrypt.org/directory"
    # With staging configured, there will be an SSL error in the browser.
    # When certificates are displayed and are emitted by # "Fake LE Intermediate X1",
    # the process went well and the envvar can be reset to empty to get valid certificates.
    TRAEFIK_ACME_CASERVER=
    [....gekürzt....]
    

    Man kann dort etwas ändern und mittels

    docker compose up -d
    

    alles aktualisieren.

    Radicale

    OpenCloud nutzt im Moment folgendes

    als Backend Server für Kalender & Kontakte. Jemand hat mir dann erklärt, wie das so funktioniert. Danach hatte es dann klick gemacht.

    In der config findet man zum Beispiel die Konfiguration für radicale (Kalender- und Kontakte-App) Das ist nur eine rudimentäre Ablage, wird gesteuert über Clienten, z.B. die Thunderbird Kalender Funktion.

    ### Radicale Setting ###
    # Radicale is a small open-source CalDAV (calendars, to-do lists) and CardDAV (contacts) server.
    # When enabled OpenCloud is configured as a reverse proxy for Radicale, providing all authenticated
    # OpenCloud users access to a Personal Calendar and Addressbook
    RADICALE=:radicale.yml
    # Docker image to use for the Radicale Container
    #RADICALE_DOCKER_IMAGE=opencloudeu/radicale
    # Docker tag to pull for the Radicale Container
    #RADICALE_DOCKER_TAG=latest
    # Define the storage location for the Radicale data. Set the path to a local path.
    # Ensure that the configuration and data directories are owned by the user and group with ID 1000:1000.
    # This matches the default user inside the container and avoids permission issues when accessing files.
    # Leaving it default stores data in docker internal volumes.
    #RADICALE_DATA_DIR=/your/local/radicale/data
    

    In einer Standard Installation ist das auskommentiert.

    RADICALE=:radicale.yml
    

    Danach ein

    docker compose up -d
    

    und Eure Kalendereinträge (extern auf einem Clienten verwaltet) werden in der OpenCloud gesichert.

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • FrankMF FrankM verschob dieses Thema von Linux am
  • FrankMF FrankM hat auf dieses Thema verwiesen
  • OpenCloud - Docker Compose Hetzner VM

    Angeheftet Verschoben OpenCloud opencloud linux docker
    2
    2
    0 Stimmen
    2 Beiträge
    313 Aufrufe
    FrankMF
    Ich habe mich nochmal mit verschiedenen Aspekten der produktiven Installation beschäftigt. Auch ein wenig die KI befragt und dann ein paar Änderungen vorgenommen. Was hatte mich gestört? Traefik lief als root. Um das zu ändern, habe ich das docker-compose.yml angepasst. Ich habe auch gleich mal auf die aktuelle Version angepasst. services: traefik: image: traefik:v3.4.1 #3.3.1 container_name: traefik user: "1000:1001" # 1000 = dockeruser, 1001=docker group cap_add: - NET_BIND_SERVICE # erlaubt Ports <1024 restart: always networks: - opencloud-net ports: - "80:80" - "443:443" volumes: - ./certs:/certs # bind-mount acme.json - /var/run/docker.sock:/var/run/docker.sock:ro command: - "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}" # Let's Encrypt HTTP-01 Challenge - "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:-example@example.org}" - "--certificatesResolvers.http.acme.storage=/certs/acme.json" - "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http" - "--certificatesResolvers.http.acme.caserver=${TRAEFIK_ACME_CASERVER:-https://acme-v02.api.letsencrypt.org/directory}" # Dashboard - "--api.dashboard=true" # Entrypoints - "--entryPoints.http.address=:80" - "--entryPoints.http.http.redirections.entryPoint.to=https" - "--entryPoints.http.http.redirections.entryPoint.scheme=https" - "--entryPoints.https.address=:443" - "--entryPoints.https.transport.respondingTimeouts.readTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.writeTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.idleTimeout=3m" # Docker Provider - "--providers.docker.endpoint=unix:///var/run/docker.sock" - "--providers.docker.exposedByDefault=false" # Access Log - "--accessLog=true" - "--accessLog.format=json" - "--accessLog.fields.headers.names.X-Request-Id=keep" labels: - "traefik.enable=${TRAEFIK_DASHBOARD:-false}" - "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$$apr1$$4vqie50r$$YQAmQdtmz5n9rEALhxJ4l.}" - "traefik.http.routers.traefik.entrypoints=https" - "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.opencloud.test}`)" - "traefik.http.routers.traefik.middlewares=traefik-auth" - "traefik.http.routers.traefik.tls.certresolver=http" - "traefik.http.routers.traefik.service=api@internal" networks: opencloud-net: volumes: {} Und hierzu - ./certs:/certs # bind-mount acme.json brauch es noch ein paar Anpassungen auf dem Host, also im Verzeichnis von wo wir deployen mit dem dockeruser! mkdir -p ./certs touch ./certs/acme.json chmod 600 ./certs/acme.json chown 1000:1000 ./certs/acme.json # UID muss mit docker-compose user übereinstimmen Das klappt jetzt hier einwandfrei. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker exec -it traefik id uid=1000 gid=1001 groups=1001 Sieht soweit gut aus Die KI meint noch das hier Wenn du maximale Sicherheit willst, kannst du langfristig docker-socket-proxy einsetzen. Er erlaubt Traefik nur lesenden Zugriff auf die Container-API: → Projektseite: Tecnativa/docker-socket-proxy Das muss ich aber erst noch sacken lassen und mich etwas zu einlesen.
  • Fedora 40 - Updates

    Linux fedora linux kde
    1
    3
    0 Stimmen
    1 Beiträge
    228 Aufrufe
    Niemand hat geantwortet
  • Debian 12 Bookworm released

    Linux debian linux
    5
    0 Stimmen
    5 Beiträge
    472 Aufrufe
    FrankMF
    Mein persönliches Fazit, alles läuft rund mit Debian Bookworm 12 Alle meine Hetzner VMs sind jetzt auf Bookworm Ok, was schwer und zeitaufwendig war, war die Nextcloud Installation bzw. der ganze PHP-Server. Das ist echt jedes mal eine Herausforderung, aber auch dabei werde ich die letzten Jahre sicherer. Hier die Story zum Nextcloud Server https://linux-nerds.org/topic/1437/nextcloud-upgrade-auf-bookworm-12 Richtig rund lief das Upgrade des NodeBB-Servers, war einfach und direkt auf Node18 hochgezogen. https://linux-nerds.org/topic/1444/nodebb-upgrade-auf-debian-bookworm-12 Damit ist jetzt alles hier auf Debian Bookworm 12 Haupt-PC VMs bei Hetzner VMs in der Proxmox Oh, da fällt mir gerade ein, der Proxmox ist noch fällig. Aber, dazu habe ich mir was einfallen lassen, da ist noch ein neues Mainboard unterwegs und dann gibt es dazu einen etwas größeren Beitrag. Danke Debian-Team, Debian Bookworm 12 ist eine runde Sache! Spannend wird jetzt, wie lange ich auf meinem Haupt-PC (Bookworm, KDE, Wayland) bleibe. Ich habe da so eine unangenehme Eigenschaft, wenn es um veraltete Pakete geht. Diesmal werde ich dann wahrscheinlich auf den Debian Unstable Zweig (sid) wechseln. Aber das dürfte noch was dauern, da ja aktuell erst mal alles passt.
  • Debian 13 - Trixie

    Linux linux debian
    1
    0 Stimmen
    1 Beiträge
    202 Aufrufe
    Niemand hat geantwortet
  • EndeavourOS - ein Test

    Linux endeavouros linux
    12
    0 Stimmen
    12 Beiträge
    673 Aufrufe
    FrankMF
    Ich möchte aus Fairness Gründen hier festhalten, das die Probleme mit dem Standby in Endeavour vermutlich kein Problem der Distrubution sind. Bitte dazu folgenden Beitrag von mir lesen. https://linux-nerds.org/topic/1397/debian-bookworm-12-test/3
  • Storage Box für den REST-Server

    Restic davfs2 rest-server linux
    1
    0 Stimmen
    1 Beiträge
    201 Aufrufe
    Niemand hat geantwortet
  • Quartz64 - dts File bearbeiten

    Angeheftet Verschoben Quartz64 quartz64 linux
    3
    0 Stimmen
    3 Beiträge
    409 Aufrufe
    FrankMF
    Ich weiß nicht, wonach ich gesucht habe, vermutlich nach apt install device-tree-compiler das gibt es im Manjaro Image nicht, es heißt ganz einfach dtc Also, ganz einfach mit pacman -S dtc installieren. Dann kann man sich diesen Umweg mit snapd sparen.
  • Thunderbird - Schriftgröße der Mailansicht dauerhaft ändern

    Linux linux thunderbird
    1
    0 Stimmen
    1 Beiträge
    227 Aufrufe
    Niemand hat geantwortet