Setup Onlyoffice Server mit Docker-compose

4
(1)

Heute habe ich meinen Nextcloud umgestellt von Collabora/code auf eine OnlyOffice Installation umgestellt. Dies hat zu einem den Grund, dass OnlyOffice etwas performanter ist und zum anderen auch mit Microsoft Office Dateien umgehen kann. Nun eine kurze und schnelle Beschreibung, wie ich das aufgesetzt habe.

In dieser Anleitung gehe ich davon aus, dass bereits Docker und Docker-compose installiert ist!

Docker-compose Konfiguration für OnlyOffice erstellen

Zuerst muss eine docker-compose.yml Datei erstellt werden. In diese schreiben wir folgendes ein und speichern dies dann ab.

version: '2.2'
services:
     onlyoffice:
       image: onlyoffice/documentserver:latest
       restart: always
       volumes:
       - /home/onlyoffice/data:/var/www/onlyoffice/Data
       environment:
       - JWT_ENABLED=true
       - JWT_SECRET=SuperSecretKey
       ports:
       - '8833:80'

Zur Erklärung: Das Volume wird genötigt für Dateien, die nicht bei einem Container Update verloren gehen sollen. Die Environment Variablen (JWT_ENABLED und JWT_SECRET) benötigen wir, damit nicht jeder, der die externe URL oder Port kennt, Zugriff auf OnlyOffice hat und dies mitbenutzen kann.

Wenn die Docker-compose Datei erstellt ist, kann der Container gestartet werden. Dieser sollte nun laufen, wir können aber mit folgendem Befehl überprüfen, ob der Container auf den Port 8833 richtig lauscht.

sudo netstat -tulpn | grep 8833 

Dann geht es weiter. Wir öffnen nun den Port 833 anschließend muss noch eine Konfiguration für Nginx erstellen.

 sudo ufw allow 8833

Nginx einrichten

sudo vi /etc/nginx/sites-available/onlyoffice.conf
upstream docservice {
  server 0.0.0.0:8833;
}
map $http_host $this_host {
    "" $host;
    default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
     default $http_x_forwarded_proto;
     "" $scheme;
}
map $http_x_forwarded_host $the_host {
    default $http_x_forwarded_host;
    "" $this_host;
}
map $http_upgrade $proxy_connection {
  default upgrade;
  "" close;
}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_name office.domain.tld;
  server_tokens off;
  ## Redirects all traffic to the HTTPS host
  root /nowhere; ## root doesn't have to be a valid path since we are redirecting
  rewrite ^ https://$host$request_uri? permanent;
}
server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ssl default_server;
  server_tokens off;
  root /usr/share/nginx/html;
  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
  ssl on;
  ssl_certificate /etc/letsencrypt/live/office.domain.tld/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/office.domain.tld/privkey.pem;
  ssl_verify_client off;
  ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
  ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    builtin:1000  shared:SSL:10m;
  ssl_prefer_server_ciphers   on;
  add_header Strict-Transport-Security max-age=31536000;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;
  ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
  ## Replace with your ssl_trusted_certificate. For more info see:
  ## - https://medium.com/devops-programming/4445f4862461
  ## - https://www.ruby-forum.com/topic/4419319
  ## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
  # ssl_stapling on;
  # ssl_stapling_verify on;
  # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
  # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
  # resolver_timeout 10s;
  ## [Optional] Generate a stronger DHE parameter:
  ##   cd /etc/ssl/certs
  ##   sudo openssl dhparam -out dhparam.pem 4096
  ##
  # ssl_dhparam /etc/ssl/certs/dhparam.pem;
  location / {
    proxy_pass http://docservice;
    proxy_http_version 1.1;
  }
}

Anschließend wird ein Symlink erzeugt damit Nginx auch die Datei berücksichtigt beim Start.

ln -s /etc/nginx/sites-available/onlyoffice.conf /etc/nginx/sites-enabled/onlyoffice.conf

Zertifikate erstellen

Im nächsten Schritt muss ein Zertifikat für die Webseite erstellt werden. Dies geschieht mit:

sudo certbot certonly -d office.domain.tld

Wenn das Zertifikat erstellt ist, kann die Konfiguration überprüft und der Nginx Server neu gestartet werden.

sudo nginx -t
sudo service nginx restart

Ab diesem Zeitpunkt sollte bereits OnlyOffice laufen. Um das zu testen, wird einfach mal die Internetseite geöffnet.

onlyoffice, Setup Onlyoffice Server mit Docker-compose

Dann geht es an die Einstellungen in Nextcloud. Zuerst die Onlyoffice App herunterladen und installieren. Anschließend gehts in den Einstellungen weiter. Hier wird die URL eingetragen, sowie der Secretkey der zuvor im docker-compose File eingetragen wurde.

Danach sollte es funktionieren!
Herzlichen Glückwunsch!
Sollten Fragen aufkommen, einfach in die Kommentare posten. Ich melde mich auf jeden Fall.

Falls die Anleitung hilfreich war, würde ich mich über ein Kommentar und einer Bewertung freuen.

Wie fandest du den Post?

Auf einen Stern klicken zum bewerten

durchschnittlich 4 / 5. bereits abgestimmt haben: 1

Keine Bewertungen bisher, sei der erste

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

0 Gedanken zu „Setup Onlyoffice Server mit Docker-compose“

  1. Hey hey. Mal eine Frage. Deine Artikel sind gut, aber leider für einen Docker-Compose wie mich Anfänger nicht geeignet.
    Derzeit benutzt ich einen ODROID N2 als Gerät in Verbindung mit einem RAID System und habe dort über Docker NextCloudPi laufen. Der Traum wäre es noch PiHole und OnlyOffice damit anschließen und das geht ja eben nur über PiHole und ich habe gar keine Ahnung wie das gehen soll. Ich versuche in das Thema einzusteigen, aber das ist zu komplex. Könntest du etwas in der Richtung machen oder Einsteigertipps geben, die mir dies ermöglichen?
    Viele Grüße

    Antworten
  2. Hey. Danke für die Mühe. https://paste.dasnetzundich.de/view/9983508e das ist der Link und eigentlich gibt es ja keine Passwörter. Problem ist, dass er mein Volume nicht erkennt. Alles liegt ja quasi mit Datenbank von NextCloud und NextCloudPi auf meinem RAID System und ja das ist eben dieser eine Pfad, aber so lässt sich das ganze zwar ausführen, aber der will mir alles neuinstallieren und ich glaube der erkennt den Pfad auch gar nicht richtig.

    Antworten
  3. OnlyOffice allgemein habe ich nicht verstanden. Die Installation wie vorgeschlagen von den Entwicklern selbst lief nicht und ich weiß auch nicht, ob man das alles benötigt. Weil deine Anleitung ja gerade mal ein Bruchteil davon ist. Nur fing es direkt damit an, dass ich NGINX nicht installiert habe. Klar hätte ich dann machen können, aber habe ich nicht. War verwundert, dass es nicht installiert ist. Aber bin gespannt, wenn du noch etwas zu Docker schreibst.

    Antworten

Schreibe einen Kommentar

Consent Management Platform von Real Cookie Banner
0 Shares
Share via
Copy link
Powered by Social Snap