OnlyOffice mit docker-compose & nginx einrichten

English Deutsch

Voraussetzung: docker und docker-compose installieren

Folgen Sie beispielsweise unserer Anleitung docker und docker-compose auf Ubuntu in 30 Sekunden installieren

Schritt 1: docker-compose.yml erstellen

Erstellen Sie das Verzeichnis, in dem wir OnlyOffice installieren, mit

commands.sh
sudo mkdir /var/lib/onlyoffice

und bearbeiten Sie dann die docker-compose-Konfiguration mit z.B.

commands.sh
sudo nano /var/lib/onlyoffice/docker-compose.yml

und kopieren Sie diesen Inhalt

docker-compose.yml
services:
  onlyoffice-documentserver:
    image: onlyoffice/documentserver:latest
    restart: always
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=ahSaTh4waeKe4zoocohngaihaub5pu
    ports:
      - 2291:80
    volumes:
      - ./onlyoffice/data:/var/www/onlyoffice/Data
      - ./onlyoffice/lib:/var/lib/onlyoffice
      - ./onlyoffice/logs:/var/log/onlyoffice
      - ./onlyoffice/db:/var/lib/postgresql

Fügen Sie nun Ihr benutzerdefiniertes Passwort in JWT_SECRET=... ein! Vergessen Sie diesen Schritt nicht, sonst kann jeder Ihren OnlyOffice-Server verwenden! Ich verwende pwgen 30, um ein neues zufälliges Passwort zu generieren (installieren mit sudo apt -y install pwgen).

Schritt 2: systemd-Dienst einrichten

Erstellen Sie den Dienst mit sudo nano /etc/systemd/system/onlyoffice.service:

onlyoffice.service
[Unit]
Description=OnlyOffice server
Requires=docker.service
After=docker.service

[Service]
Restart=always
User=root
Group=docker
# Container stoppen (falls laufend), wenn der Dienst gestoppt wird
ExecStartPre=/usr/local/bin/docker-compose -f /var/lib/onlyoffice/docker-compose.yml down -v
# Container starten, wenn der Dienst gestartet wird
ExecStart=/usr/local/bin/docker-compose -f /var/lib/onlyoffice/docker-compose.yml up
# Container stoppen, wenn der Dienst gestoppt wird
ExecStop=/usr/local/bin/docker-compose -f /var/lib/onlyoffice/docker-compose.yml down -v

[Install]
WantedBy=multi-user.target

Aktivieren und starten Sie nun den Dienst mit

commands.sh
sudo systemctl enable onlyoffice
sudo systemctl start onlyoffice

Schritt 3: nginx Reverse-Proxy-Konfiguration erstellen

Beachten Sie, dass wir OnlyOffices Port 80 auf Port 2291 abgebildet haben. Falls Sie nginx nicht als Reverse-Proxy verwenden, müssen Sie Ihren Reverse-Proxy manuell konfigurieren, um Anfragen an Port 2291 weiterzuleiten.

onlyoffice_nginx.conf
server {
  server_name onlyoffice.mydomain.org;

  access_log /var/log/nginx/onlyoffice.access_log;
  error_log /var/log/nginx/onlyoffice.error_log info;

  location / {
    proxy_pass http://127.0.0.1:2291;
    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;
    # Kommentieren Sie diese Zeile aus und laden Sie neu, sobald Sie TLS für diese Domain eingerichtet haben !
    # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  }

  listen 80;
}

Testen Sie nun, ob Ihre nginx-Konfiguration mit nginx -t funktioniert und laden Sie sie neu mit service nginx reload.

Jetzt empfehle ich, Let’s Encrypt für Ihre Domain einzurichten, damit Ihre OnlyOffice-Instanz nur über eine verschlüsselte Verbindung aufgerufen wird (sudo certbot --nginx, siehe andere Anleitungen, wenn Sie nicht wissen, wie das geht).

Wenn certbot Sie fragt, ob umgeleitet werden soll, wählen Sie Option 2 - Zu HTTPS umleiten.

Schritt 4: OnlyOffice testen

Wenn Ihre Installation funktioniert hat, sollten Sie einen Bildschirm wie diesen sehen:

OnlyOffice Document Server Willkommensbildschirm

Wenn nicht, versuchen Sie, die Protokolle zu prüfen mit

commands.sh
sudo journalctl -xu onlyoffice

(Optional) Schritt 5: NextCloud für OnlyOffice konfigurieren

Wenn Sie NextCloud betreiben, gehen Sie zu Settings => ONLYOFFICE und geben Sie Ihre Domain und das zuvor erstellte JWT_SECRET ein:

NextCloud-Einstellungsseite zur Konfiguration der OnlyOffice-Integration

Stellen Sie sicher, dass Connect to demo ONLYOFFICE Document Server nicht aktiviert ist, und klicken Sie auf Save.

Nextcloud teilt Ihnen oben rechts mit, ob die Verbindung zu Ihrer OnlyOffice-Instanz erfolgreich hergestellt werden konnte:


Check out similar posts by category: Container, Docker, Linux, Nginx