OnlyOffice mit docker-compose & nginx einrichten
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
sudo mkdir /var/lib/onlyofficeund bearbeiten Sie dann die docker-compose-Konfiguration mit z.B.
sudo nano /var/lib/onlyoffice/docker-compose.ymlund kopieren Sie diesen Inhalt
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/postgresqlFü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:
[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.targetAktivieren und starten Sie nun den Dienst mit
sudo systemctl enable onlyoffice
sudo systemctl start onlyofficeSchritt 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.
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:

Wenn nicht, versuchen Sie, die Protokolle zu prüfen mit
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:

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:
Settings successfully updatedbedeutet, dass NextCloud nun mit OnlyOffice verbunden istInvalid tokenbedeutet, dass Ihr Passwort / geheimer Schlüssel nicht übereinstimmt- Andere Meldungen bedeuten in der Regel, dass Ihr OnlyOffice nicht läuft oder dass Sie nicht die korrekte Domain oder das korrekte Protokoll eingegeben haben. Ich empfehle, ausschließlich
https://zu verwenden - verwenden Siehttp://nur zum Testen und vergessen Sie nicht, zuhttps://zurückzukehren, sobald Sie das Problem gefunden haben.