Collabora Office für Nextcloud mit docker-compose betreiben

English Deutsch

Diese docker-compose.yml erstellen, z.B. in /opt/collabora-mydomain:

docker-compose-collabora.yml
services:
  code:
    image: collabora/code:latest
    restart: always
    environment:
      - password=${COLLABORA_PASSWORD}
      - username=${COLLABORA_USERNAME}
      - aliasgroup1=https://collabora.mydomain.com:443
      - aliasgroup2=https://nextcloud.myseconddomain.com:443
      - server_name=collabora.mydomain.com
      - extra_params=--o:ssl.enable=true
    ports:
      - 9980:9980
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.collabora.rule=Host(`collabora.mydomain.com`)"
      - "traefik.http.routers.collabora.entrypoints=websecure"
      - "traefik.http.routers.collabora.tls.certresolver=cloudflare"
      - "traefik.http.routers.collabora.tls.domains[0].main=mydomain.com"
      - "traefik.http.routers.collabora.tls.domains[0].sans=*.mydomain.com"
      - "traefik.http.services.collabora.loadbalancer.server.port=9980"
      - "traefik.http.services.collabora.loadbalancer.server.scheme=https"

Falls erforderlich, weitere Aliasgroups nach Bedarf hinzufügen.

Nun diese .env mit der Konfiguration erstellen. Passwort und Domain müssen angepasst werden!

collabora.env
COLLABORA_USERNAME=admin
COLLABORA_PASSWORD=veecheit0Phophiesh1fahPah0Wue3

Nun kann ein systemd-Service für den Autostart erstellt werden mit unserem Skript aus systemd-Service für ein docker-compose-Projekt in 10 Sekunden erstellen.

Aus dem Verzeichnis heraus ausführen (z.B. /opt/collabora-mydomain)

create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin

Traefik-Konfiguration

Die gesamte relevante Traefik-Konfiguration befindet sich bereits in der docker-compose.yml. Traefik muss laufen und für die Verwendung des cloudflare-Certresolvers konfiguriert sein.

Siehe diesen TechOverflow-Beitrag für die verwendete Traefik-Konfiguration.

nginx-Konfiguration

Hinweis: Generell wird die Verwendung von Traefik empfohlen.

Nun muss der Reverse-Proxy konfiguriert werden, um auf Port 9980 zu zeigen. Hier ist eine Beispiel-nginx-Konfiguration:

collabora_nginx.conf
server {
    server_name collabora.mydomain.com;

    access_log /var/log/nginx/collabora.mydomain.com.access_log;
    error_log /var/log/nginx/collabora.mydomain.com.error_log info;

    location / {
        proxy_pass https://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_read_timeout 3600s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host            $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        add_header X-Frontend-Host $host;
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    }

    listen [::]:80; # managed by Certbot
}

Nun den Browser öffnen und collabora.mydomain.com aufrufen. Wenn Collabora korrekt läuft, sollte Folgendes angezeigt werden:

collabora_ok_output.txt
OK

In Nextcloud zu https://nextcloud.mydomain.com/settings/admin/richdocuments gehen und die URL (und Port) des Collabora Online-Servers setzen auf:

collabora_nextcloud_url_example.txt
https://admin:[email protected]

Sicherstellen, dass das eigene Passwort aus .env und die eigene Domain verwendet werden!

Auf Save klicken und dann sollte Collabora Online server is reachable angezeigt werden:

Nextcloud-Einstellungen zeigen, dass der Collabora Online-Server erreichbar ist


Check out similar posts by category: Container, Docker, Nextcloud