Installieren von ONLYOFFICE Docs für Docker auf KylinOS

Einleitung

Mit der Community Edition können Sie ONLYOFFICE Docs auf Ihrem lokalen Server installieren und Online-Editoren in die ONLYOFFICE-Kollaborationsplattform oder andere beliebte Systeme integrieren.

ONLYOFFICE Docs ist eine Online-Office-Suite mit Viewern und Editoren für Texte, Tabellen und Präsentationen, die vollständig mit den Office Open XML-Formaten .docx, .xlsx, .pptx kompatibel ist und die gemeinsame Bearbeitung in Echtzeit ermöglicht.

Funktionalität

  • Dokumenteneditor
  • Tabellenkalkulation
  • Präsentationseditor
  • Mobile Web-Viewers
  • Gemeinsame Bearbeitung
  • Unterstützung für Hieroglyphen
  • Unterstützung für alle gängigen Formate: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Sehen Sie sich die ausführliche Liste der für die ONLYOFFICE Docs Community Edition verfügbaren Funktionen an.

Wenn Sie es in ONLYOFFICE Workspace verwenden, können Sie:

  • Dateien freizugeben;
  • Zugriffsrechte auf Dokumente zu verwalten;
  • Dokumente auf einer Website einzubetten;
  • die auf Drive, Box, Dropbox, OneDrive, ownCloud, die mit ONLYOFFICE verbunden sind, gespeicherten Dateien anzuzeigen und bearbeiten.

Ab Version 7.2 wurden die Docker-Images von ONLYOFFICE Docs für die Ausführung unter Kylin Linux Advanced Server OS Version V10 überarbeitet. Diese Anleitung zeigt Ihnen, wie Sie die Docker-Version von ONLYOFFICE Docs Community Edition unter KylinOS installieren.

Systemanforderungen
  • CPU: Dual-Core 2 GHz oder besser
  • RAM: 4 GB oder mehr
  • HDD: mindestens 40 GB freier Speicherplatz
  • SWAP: mindestens 4 GB, hängt aber vom Host-Betriebssystem ab. Mehr ist besser
  • OS: amd64 Linux-Distribution mit Kernel-Version 3.10 oder höher
  • Docker: jede von KylinOS unterstützte Version

Installation von ONLYOFFICE Docs

Docker verwendet standardmäßig Google DNS-Server. Wenn Ihr ONLYOFFICE Docs keinen Internetzugang hat, empfehlen wir Ihnen, die Standard-DNS-Adresse von Docker in die Adresse Ihres lokalen DNS-Servers zu ändern. Wechseln Sie dazu zur Datei /etc/default/docker und ändern Sie die IP-Adresse in der folgenden Zeile in die IP-Adresse eines DNS-Servers in Ihrem lokalen Netzwerk:
docker_OPTS="--dns 8.8.8.8"

Für RPM-basierte Betriebssysteme wie CentOS:

  1. Erstellen Sie die Konfigurationsdatei /etc/docker/daemon.json mit folgendem Inhalt:
    { "dns" : [ "8.8.8.8" ] }
    
  2. Starten Sie den Docker-Dienst neu:
    
    sudo systemctl restart docker.service
    
SELinux deaktivieren

Sie müssen SELinux in der Konfigurationsdatei /etc/selinux/config deaktivieren.

Öffnen Sie die Datei /etc/selinux/config mit einem beliebigen Texteditor, ersetzen Sie die Zeichenfolge SELINUX=enforcing oder SELINUX=permissive durch die Zeichenfolge SELINUX=disabled und speichern Sie die Änderungen.

Starten Sie Ihren Server neu, damit die Änderungen wirksam werden. Stellen Sie sicher, dass SELinux deaktiviert ist:

[root@test ~]# sestatus
SELinux status:                 disabled
ONLYOFFICE Docs installieren

Führen Sie den folgenden Befehl aus, um ONLYOFFICE Docs zu installieren:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Wichtig Ab Version 7.2 haben wir eine zufällige Generierung des JWT-Geheimnisses hinzugefügt. Wenn das JWT-Geheimnis nicht mit der Umgebungsvariable angegeben ist, wird es bei jedem Neustart der VM oder des physischen Servers neu generiert. Dies kann zu Integrationsproblemen führen. Um dieses Problem zu vermeiden, geben Sie Ihren eigenen Wert in -e JWT_SECRET=my_jwt_secret an.

Wenn Sie in Ihrer Installation kein JWT verwenden, verwenden Sie -e JWT_ENABLED=false.

Der Schlüssel --security-opt seccomp=unconfined ist erforderlich, um Sicherheitsprofile für den Container zu deaktivieren. Weitere Details finden Sie hier.

Sie können auch unser benutzerdefiniertes Sicherheitsprofil verwenden: kylin-seccomp7.json.

Standardmäßig überwacht ONLYOFFICE Docs eingehende Verbindungen über Port 80. Ab Version 4.3 können Sie den Port für ONLYOFFICE Docs ändern, wenn Sie ihn anstelle des Standardports verwenden möchten. Dies ist ganz einfach möglich, indem Sie den Zuordnungsport während der Installation ändern:
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Wobei <PORT_NUMBER> die Portnummer ist, die ONLYOFFICE Docs verwenden soll.

Dadurch werden ONLYOFFICE Docs und alle erforderlichen Abhängigkeiten installiert (die Liste der vom Skript ausgeführten Aktionen finden Sie hier).

Hinzufügen einer Firewall-Ausnahme

Sie müssen außerdem eine Ausnahme zum Dienst firewalld.service hinzufügen:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Sobald die Konfiguration abgeschlossen ist, können Sie http://localhost in die Adressleiste Ihres Browsers eingeben, um die Willkommensseite von ONLYOFFICE Docs zu öffnen. Dort finden Sie weitere Anweisungen zum Aktivieren von Dokumentbeispielen oder zum Integrieren von Online-Editoren in Ihre Webanwendung mithilfe der bereitgestellten API.

Daten außerhalb von Containern speichern

Alle Daten werden in speziell dafür vorgesehenen Verzeichnissen, d.h. den Datenträgern, an folgendem Ort gespeichert:

  • /var/log/onlyoffice für ONLYOFFICE Docs-Protokolle
  • /var/www/onlyoffice/Data für Zertifikate
  • /var/lib/onlyoffice für den Dateicache
  • /var/lib/postgresql für Datenbank
Wir empfehlen Wir empfehlen dringend, die Daten außerhalb der Docker-Container auf dem Hostcomputer zu speichern, da Sie so ONLYOFFICE Docs nach Veröffentlichung der neuen Version problemlos aktualisieren können, ohne dass Ihre Daten verloren gehen.

Um auf Ihre Daten außerhalb des Containers zugreifen zu können, müssen Sie die Volumes bereitstellen. Dies erfolgt durch Angabe der Option -v im Docker-Run-Befehl.

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Bitte beachten Sie: Wenn Sie versuchen, noch nicht erstellte Ordner bereitzustellen, werden diese zwar erstellt, der Zugriff darauf ist jedoch eingeschränkt. Sie müssen die Zugriffsrechte manuell ändern.

Normalerweise müssen Sie Containerdaten nicht speichern, da der Containerbetrieb nicht von seinem Status abhängt. Das Speichern von Daten ist nützlich:

  • für den einfachen Zugriff auf Containerdaten, z. B. Protokolle;
  • um die Beschränkung der Datengröße im Container aufzuheben;
  • wenn Sie Dienste verwenden, die außerhalb des Containers gestartet werden, wie z. B. PostgreSQL, Redis und RabbitMQ.

Ausführen von ONLYOFFICE Docs mit HTTPS

sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

Der Zugriff auf die ONLYOFFICE-Anwendung kann mit SSL gesichert werden, um unbefugten Zugriff zu verhindern. Ein CA-zertifiziertes SSL-Zertifikat ermöglicht die Überprüfung der Vertrauenswürdigkeit durch die Zertifizierungsstelle. Selbstsignierte Zertifikate bieten ebenfalls ein gleichwertiges Maß an Vertrauenswürdigkeit, sofern jeder Client zusätzliche Schritte zur Überprüfung der Identität Ihrer Website unternimmt. Die Anweisungen dazu finden Sie unten.

Um die Anwendung per SSL zu sichern, sind grundsätzlich zwei Dinge erforderlich:

  • Privater Schlüssel (.key)
  • SSL-Zertifikat (.crt)

Sie müssen also die folgenden Dateien erstellen und installieren:

/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Bei Verwendung von CA-zertifizierten Zertifikaten (z. B. Let's Encrypt) werden Ihnen diese Dateien von der Zertifizierungsstelle zur Verfügung gestellt. Bei Verwendung selbstsignierter Zertifikate müssen Sie diese Dateien selbst generieren.

Umstellung von ONLYOFFICE Docs auf HTTPS mithilfe von certbot

Der einfachste Weg, ONLYOFFICE Docs auf HTTPS umzustellen, besteht darin, automatisch Let’s Encrypt-SSL-Zertifikate mit certbot zu erhalten.

Führen Sie den Docker-Container ONLYOFFICE Docs aus, indem Sie die Ports 80 und 443 angeben und Ihre eigenen Werte für die Variablen festlegen:

sudo docker run -i -t -d -p 80:80 -p 443:443 --restart=always \
        -e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver:latest
        

Wobei:

  • LETS_ENCRYPT_DOMAIN - ein Domänenname, der für das Zertifikat verwendet werden soll.
  • LETS_ENCRYPT_MAIL - eine E-Mail, die für die Registrierung und den Wiederherstellungskontakt verwendet wird.

Das von der Zertifizierungsstelle (CA) von letsencrypt.org signierte Zertifikat wird automatisch generiert und auf Ihrem Server installiert. Jetzt sollten Ihre ONLYOFFICE Docs unter der Adresse https://yourdomain.com verfügbar sein.

Generierung selbstsignierter Zertifikate

Die Generierung selbstsignierter SSL-Zertifikate umfasst ein einfaches 3-Schritte-Verfahren:

SCHRITT 1: Erstellen Sie den privaten Serverschlüssel

openssl genrsa -out onlyoffice.key 2048

SCHRITT 2: Erstellen Sie die Zertifikatsignieranforderung (CSR)

openssl req -new -key onlyoffice.key -out onlyoffice.csr

SCHRITT 3: Signieren Sie das Zertifikat mit dem privaten Schlüssel und CSR

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Sie haben nun ein SSL-Zertifikat generiert, das 365 Tage gültig ist.

Stärkung der Serversicherheit

In diesem Abschnitt erhalten Sie Anweisungen zur Stärkung Ihrer Serversicherheit.

Um dies zu erreichen, müssen Sie stärkere DHE-Parameter generieren.

openssl dhparam -out dhparam.pem 2048
Installation der SSL-Zertifikate

Von den vier oben generierten Dateien müssen Sie die Dateien onlyoffice.key, onlyoffice.crt und dhparam.pem auf dem Onlyoffice-Server installieren. Die CSR-Datei wird nicht benötigt, Sie sollten sie jedoch unbedingt sichern (falls Sie sie jemals wieder benötigen).

Der Standardpfad, in dem die ONLYOFFICE-Anwendung nach SSL-Zertifikaten sucht, lautet /var/www/onlyoffice/Data/certs. Dies kann jedoch mit den Konfigurationsoptionen SSL_KEY_PATH, SSL_CERTIFICATE_PATH und SSL_DHPARAM_PATH geändert werden.

Der Pfad /var/www/onlyoffice/Data/ ist der Pfad des Datenspeichers. Dies bedeutet, dass Sie einen Ordner mit dem Namen „certs“ in /app/onlyoffice/DocumentServer/data/ erstellen und die Dateien dorthin kopieren müssen. Aus Sicherheitsgründen aktualisieren Sie die Berechtigung für die Datei onlyoffice.key, sodass sie nur vom Eigentümer gelesen werden kann.

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

Und starten Sie den Docker-Container neu:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Sie sind jetzt nur noch einen Schritt davon entfernt, unsere Anwendung abzusichern.

Verfügbare Konfigurationsparameter
Bitte beachten Sie die Optionen des Docker-Run-Befehls für das Flag --env-file. Dort können Sie alle erforderlichen Umgebungsvariablen in einer einzigen Datei angeben. Dies erspart Ihnen das Schreiben eines möglicherweise langen Docker-Run-Befehls.

Unten finden Sie die vollständige Liste der Parameter, die mithilfe von Umgebungsvariablen festgelegt werden können.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: Erweiterte Konfigurationsoption zum Deaktivieren der HSTS-Konfiguration. Gilt nur bei Verwendung von SSL. Standardmäßig ist true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: Erweiterte Konfigurationsoption zum Festlegen des HSTS-Maximalalters in der onlyoffice NGINX vHost-Konfiguration. Gilt nur bei Verwendung von SSL. Standardmäßig ist 31536000.
  • SSL_CERTIFICATE_PATH: Der Pfad zum zu verwendenden SSL-Zertifikat. Der Standardwert ist /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: Der Pfad zum privaten Schlüssel des SSL-Zertifikats. Der Standardwert ist /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: Der Pfad zum Diffie-Hellman-Parameter. Der Standardwert ist /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: Aktivieren Sie die Überprüfung von Client-Zertifikaten mithilfe der Datei CA_CERTIFICATES_PATH. Der Standardwert ist false.
  • DB_TYPE: Der Datenbanktyp. Unterstützte Werte sind postgres, mariadb oder mysql. Standardmäßig ist postgres.
  • DB_HOST: Die IP-Adresse oder der Name des Hosts, auf dem der Datenbankserver ausgeführt wird.
  • DB_PORT: Die Portnummer des Datenbankservers.
  • DB_NAME: Der Name einer Datenbank, die beim Start des Images erstellt werden soll.
  • DB_USER: Der neue Benutzername mit Superuser-Berechtigungen für das Datenbankkonto.
  • DB_PWD: Das für das Datenbankkonto festgelegte Kennwort.
  • AMQP_URI: Die AMQP-URI zum Verbinden mit dem Message Broker-Server.
  • AMQP_TYPE: Der Nachrichtenbrokertyp. Unterstützte Werte sind rabbitmq oder activemq. Der Standardwert ist rabbitmq.
  • REDIS_SERVER_HOST: Die IP-Adresse oder der Name des Hosts, auf dem der Redis-Server ausgeführt wird.
  • REDIS_SERVER_PORT: Die Portnummer des Redis-Servers.
  • NGINX_WORKER_PROCESSES: Definiert die Anzahl der NGINX-Arbeitsprozesse.
  • NGINX_WORKER_CONNECTIONS: Legt die maximale Anzahl gleichzeitiger Verbindungen fest, die von einem NGINX-Arbeitsprozess geöffnet werden können.
  • SECURE_LINK_SECRET: Definiert das Geheimnis für die Nginx-Konfigurationsdirektive secure_link_md5. Standardmäßig ist dies eine zufällige Zeichenfolge (random string).
  • JWT_ENABLED: Gibt die Aktivierung der JSON-Web-Token-Validierung durch ONLYOFFICE Docs an. Der Standardwert ist true.
  • JWT_SECRET: Definiert den geheimen Schlüssel zur Validierung des JSON-Web-Tokens in der Anfrage an ONLYOFFICE Docs. Standardmäßig wird ein zufälliger Wert verwendet.
  • JWT_HEADER: Definiert den HTTP-Header, der zum Senden des JSON-Web-Tokens verwendet wird. Der Standardwert ist Authorization.
  • JWT_IN_BODY: Gibt die Aktivierung der Token-Validierung im Anforderungstext für ONLYOFFICE Docs an. Der Standardwert ist false.
  • WOPI_ENABLED: Gibt die Aktivierung der WOPI-Handler an. Der Standardwert ist false.
  • USE_UNAUTHORIZED_STORAGE: Auf true setzen, wenn Sie selbstsignierte Zertifikate für Ihren Speicherserver verwenden, z. B. Nextcloud. Standardmäßig ist der Wert false.
  • GENERATE_FONTS: Wenn true, werden die Schriftartenliste und die Schriftarten-Miniaturansichten usw. bei jedem Start neu generiert. Standardmäßig ist true.
  • METRICS_ENABLED: Gibt die Aktivierung von StatsD für ONLYOFFICE Docs an. Der Standardwert ist false.
  • METRICS_HOST: Definiert den StatsD-Listening-Host. Standardmäßig ist localhost.
  • METRICS_PORT: Definiert den StatsD-Abhörport. Der Standardwert ist 8125.
  • METRICS_PREFIX: Definiert das StatsD-Metrikpräfix für Backend-Dienste. Der Standardwert ist ds.
  • LETS_ENCRYPT_DOMAIN: Definiert die Domäne für das Let’s Encrypt-Zertifikat.
  • LETS_ENCRYPT_MAIL: Definiert die E-Mail-Adresse des Domänenadministrators für das Let’s Encrypt-Zertifikat.

Hosten ONLYOFFICE Docs auf Ihrem eigenen Server oder nutzen Sie es in der Cloud

Artikel zum Thema:
Alle Schlagwörter