Hey Habr! Ich prĂ€sentiere Ihnen die Ăbersetzung des Artikels .
Es ist schwer, den Wert von Online-Office-Suiten wie Google Docs und Cloud-Speicher im Leben technikorientierter Menschen zu unterschĂ€tzen. Die Technologie ist so weit verbreitet, dass selbst Microsoft, das lange Zeit den Markt fĂŒr BĂŒroanwendungen dominiert hat, sich in letzter Zeit darauf konzentriert, die Webanwendung Office 365 zu entwickeln und Benutzer davon zu ĂŒberzeugen, auf ein Abonnementmodell fĂŒr die Nutzung ihrer eigenen Dienste umzusteigen. Wir laden diejenigen ein, die sich fĂŒr die Installation und Konfiguration ihres eigenen Speichers unter cat interessieren.
Vor einiger Zeit haben wir uns mit Cloud-Speicherlösungen und Open-Source-Web-Office-Suiten befasst, die sich problemlos fĂŒr den Einsatz in Kleinstunternehmen einsetzen lassen. Der Hauptgrund dafĂŒr, die gesamte Dokumentation online zu halten, besteht darin, den Papieraufwand auf ein Minimum zu beschrĂ€nken und trotz des geringen Transaktionsvolumens gute GeschĂ€ftspraktiken umzusetzen. Die Kehrseite der Medaille ist, dass die Anmietung eines Cloud-Servers zur Bereitstellung dieses Dienstes weniger sicher ist als die direkte Speicherung auf dem GelĂ€nde des Unternehmens, da Sie keine Möglichkeit haben, den physischen Zugriff auf Ihren Server oder den Datenverkehr zu ĂŒberprĂŒfen. Daher sind auch Ende-zu-Ende-VerschlĂŒsselung und Open-Source-Software erforderlich.
Unter BerĂŒcksichtigung aller verfĂŒgbaren Informationen zu Open-Source-Lösungen haben wir zwei aktive Projekte (mit Commits im Git-Repository der letzten 12 Monate) gefunden, die fĂŒr Cloud-Speicher entwickelt wurden: NextCloud und OwnCloud sowie die einzige aktive ONLYOFFICE-Office-Suite. Beide Cloud-Speichertools verfĂŒgen ĂŒber ungefĂ€hr die gleiche FunktionalitĂ€t, und die Entscheidung fĂŒr NextCloud basierte auf dem Vorliegen von Beweisen dafĂŒr, dass es fĂŒr eine komfortable Benutzerinteraktion mit der Software in ONLYOFFICE integriert werden kann. Als wir jedoch mit der Bereitstellung der Dienste begannen, wurde deutlich, dass es an Informationen zur Integration der oben genannten Dienste mangelte. Wir haben 3 Tutorial-Videos zur Integration gefunden:
Keines der drei Videos beantwortete die Frage der Installation des ONLYOFFICE-Dokumentendienstes auf demselben physischen Server wie NextCloud mit einem gemeinsam genutzten Nginx. Stattdessen verwendeten sie Trennungstechniken wie die Verwendung separater Ports fĂŒr die Dokumentendienst-API. Ein weiterer Vorschlag bestand darin, einen separaten Server fĂŒr Document Service bereitzustellen und die in Document Service integrierte Nginx-Instanz manuell zu konfigurieren, um einen ZugriffsschlĂŒssel (einen vorbekannten ZugriffsschlĂŒssel, der das Recht zum Zugriff auf die Datencloud bestĂ€tigt) und TLS-Zertifikate zu installieren. Die oben genannten AnsĂ€tze galten als nicht sicher und nicht effektiv genug, daher haben wir NextCloud, ONLYOFFICE und ein gemeinsames Nginx integriert, das Anfragen mithilfe von Docker-Compose nach DomĂ€nennamen trennt. Hier finden Sie Schritt-fĂŒr-Schritt-Informationen dazu.
Schritt 1: Nginx-Container
Dies ist eine sehr einfache Einrichtung, aber dieser Schritt erfordert die meiste Arbeit zur Konfiguration des Reverse-Proxy-Servers. Wir haben zunĂ€chst die Docker-Compose-Konfiguration fĂŒr das nginx:stable-Image erstellt.
version: '2'
services:
nginx:
image : nginx:stable
restart: always
volumes:
- ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro
- ./nginx/certificates:/mycerts
ports:
- 443:443
- 80:80
Dadurch wird ein Container mit öffentlich zugĂ€nglichen Ports 80 und 443 erstellt, die Konfiguration auf nginx/nginx-vhost.conf abgebildet und ein Speicher fĂŒr Zertifikate definiert, die als selbstsignierte Zertifikate oder mithilfe des Certbots von Let's encrypt in /nginx/certificates generiert wurden. Dieser Speicherort sollte Ordner fĂŒr office.yourdomain.com und cloud.yourdomain.com enthalten, jeweils mit den Dateien fullchain1.pem und privkey1.pem fĂŒr die Zertifikatskette bzw. den privaten SchlĂŒssel des Servers. Weitere Informationen zum Erstellen eines selbstsignierten Zertifikats finden Sie hier. (Das Umbenennen von .key und .crt in .pem funktioniert ohne Konvertierung der Dateistruktur fĂŒr Nginx).
Danach haben wir die vhost-Datei definiert. Wir definieren zunÀchst das Verhalten von Port 80 als einfache Weiterleitung zu https, weil Wir möchten keinen http-Verkehr zulassen
server {
listen 80;
location / {
return 301
https://$host$request_uri;
}
}
AnschlieĂend haben wir fĂŒr unsere Dienste zwei virtuelle Server auf Port 443 erstellt:
server {
listen 443 ssl;
server_name cloud.yourdomain.com ;
root /var/www/html;
ssl_certificate /mycerts/cloud.yourdomain.com/fullchain1.pem;
ssl_certificate_key /mycerts/cloud.yourdomain.com/privkey1.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app:80;
}
}
server {
listen 443 ssl;
server_name office.yourdomain.com;
root /var/www/html;
ssl_certificate /mycerts/office.yourdomain.com/fullchain1.pem;
ssl_certificate_key /mycerts/office.yourdomain.com/privkey1.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://onlyoffice:80;
}
}
Schritt 2: Dokumentenservice
Jetzt mĂŒssen wir den Document Service Container zu unserer docker-compose.yml hinzufĂŒgen. Hier gibt es nichts Besonderes zu konfigurieren.
services:
...
onlyoffice:
image: onlyoffice/documentserver
restart: always
Vergessen Sie jedoch nicht, den Nginx-Container mit dem Dokumentendienst zu verknĂŒpfen:
services:
...
nginx:
...
depends_on:
- onlyoffice
Schritt 3: NextCloud
FĂŒgen Sie zunĂ€chst neue Dienste hinzu:
services:
...
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- /data/nextcloud_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=#put some password here
- MYSQL_PASSWORD=#put some other password here
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
depends_on:
- db
- onlyoffice
restart: always
und fĂŒgen Sie einen Link zu Nginx hinzu:
services:
...
nginx:
...
depends_on:
- app
Jetzt geht es ans Beladen der Container.
docker-compose up -d
Nach einer Weile leitet Nginx Sie zum NextCloud-Frontend weiter, der Standardkonfigurationsseite. Sie mĂŒssen den Benutzernamen und das Passwort fĂŒr Ihren ersten Admin-Benutzer sowie die Datenbankanmeldeinformationen eingeben, die Sie in docker-compose.yml angegeben haben. Sobald die Einrichtung abgeschlossen ist, können Sie sich anmelden. In unserem Fall dauerte die Wartezeit fast eine Minute und erforderte eine zusĂ€tzliche Aktualisierung der Anmeldeseite, bevor wir uns beim Cloud-Dienst anmelden konnten.
NextCloud-Diensteinstellungsfenster
Schritt 4: NextCloud und ONLYOFFICE verbinden
In diesem Schritt mĂŒssen Sie die Anwendung fĂŒr NextCloud installieren, die die ONLYOFFICE-FunktionalitĂ€t verbindet. Beginnen wir mit der Anwendungssteuerung in der oberen rechten Ecke des MenĂŒs. Suchen Sie die ONLYOFFICE-App (unter Office & Text oder ĂŒber die Suche), installieren und aktivieren Sie sie.
Gehen Sie anschlieĂend ĂŒber das MenĂŒ in der oberen rechten Ecke zu Einstellungen. Im linken MenĂŒ sollten Sie den Eintrag ONLYOFFICE finden. Gehen Sie hinein. Sie mĂŒssen die Adressen wie unten angegeben registrieren.
Einstellungen der Integrationsanwendung
Die erste Adresse wird verwendet, um direkt von der im Browser ausgefĂŒhrten Anwendung aus auf einige JS- und CSS-Dateien zu verlinken (dies ist, was wir benötigen, um den Zugriff auf den ONLYOFFICE-Dienst ĂŒber nginx zu öffnen). Der geheime SchlĂŒssel wird nicht verwendet, da wir der Docker-Isolationsschicht mehr vertrauen als dem dauerhaften AuthentifizierungsschlĂŒssel. Die dritte Adresse wird vom NextCloud-Container verwendet, um eine direkte Verbindung zur ONLYOFFICE-API herzustellen, und verwendet den standardmĂ€Ăigen internen Hostnamen von Docker. Nun, das letzte Feld wird verwendet, damit ONLYOFFICE mithilfe einer externen IP-Adresse oder einer internen Docker-Adresse, wenn Sie Docker-Netzwerke verwenden, Anfragen an die NextCloud-API zurĂŒcksenden kann. In unserem Fall wird dies jedoch nicht verwendet. Stellen Sie sicher, dass Ihre Firewall-Einstellungen diese Art von Interaktionen zulassen.
Nach dem Speichern testet NextCloud die Verbindung und zeigt Ihnen, wenn alles korrekt ist, Einstellungen rund um die Integration an â zum Beispiel, welche Dateitypen von dieser Integration bearbeitet werden können. Passen Sie es an, wie Sie es fĂŒr richtig halten.
Der letzte Schritt: Wo finde ich den Editor?
Wenn Sie zu Ihren Cloud-Speicherordnern zurĂŒckkehren und auf das â+â klicken, um eine neue Datei zu erstellen, steht Ihnen eine neue Option zum Erstellen eines Dokuments, einer Tabelle oder einer PrĂ€sentation zur VerfĂŒgung. Mit ihrer Hilfe können Sie diese Art von Dateien mit ONLYOFFICE erstellen und sofort bearbeiten.
MenĂŒ zur Dateierstellung
1-Nachtrag
Den vollstÀndigen Inhalt von docker-compose.yml finden Sie hier:
Source: habr.com
