Astelle NextCloud + ONLYOFFICE um selwechte Server mat Docker

Hey Habr! Ech presentéieren Iech d'Iwwersetzung vum Artikel "NextCloud an ONLYOFFICE op engem eenzegen Server mat Docker opsetzen".

Et ass schwéier de Wäert vun Online Büro Suiten wéi Google Docs a Cloud Storage am Liewen vun tech-orientéierte Leit ze ënnerschätzen. D'Technologie ass sou verbreet ginn datt souguer Microsoft, déi laang den Büroapplikatiounsmaart dominéiert huet, sech viru kuerzem op d'Entwécklung vun der Office 365 Webapplikatioun konzentréiert huet an d'Benotzer ze iwwerzeegen op en Abonnementsmodell ze wiesselen fir hir eege Servicer ze benotzen. Mir invitéieren déi, déi am Prozess vun Installatioun an Configuratioun vun hiren eegene Stockage ënner Kaz interesséiert sinn.

Virun enger Zäit hu mir Cloud Storage-Léisungen an Open Source Web Office Suiten gekuckt, déi einfach kënne benotzt ginn fir an enger Mikro-Entreprise ze benotzen. D'Haaptmotivatioun fir all Dokumentatioun online ze halen ass d'Dokumentatioun op e Minimum ze halen a gutt Geschäftspraktiken trotz dem niddrege Volumen vun Transaktiounen ëmzesetzen. D'Säit vun der Mënz ass datt d'Locatioun vun engem Cloud-Server fir dëse Service ze bidden ass manner sécher wéi et direkt an de Raimlechkeete vun der Entreprise ze späicheren, well Dir kee Mëttel hutt fir de kierperlechen Zougang zu Ärem Server oder Traffic ze iwwerpréiwen. Dofir sinn end-to-end Verschlësselung an Open Source Software och erfuerderlech.

Wann Dir all verfügbar Informatioun iwwer Open Source Léisunge berücksichtegt, hu mir zwee aktive Projete fonnt (mat Verpflichtungen am Git Repository fir déi lescht 12 Méint) entwéckelt fir Cloud Storage: NextCloud an OwnCloud, an déi eenzeg aktiv ONLYOFFICE Büro Suite. Béid Cloud Storage Tools hunn ongeféier déiselwecht Funktionalitéit, an d'Entscheedung NextCloud ze wielen baséiert op der Existenz vu Beweiser datt et mat ONLYOFFICE integréiert ka ginn fir eng komfortabel Benotzerinteraktioun mat der Software. Wéi och ëmmer, wéi mir ugefaang hunn d'Servicer z'installéieren, gouf de Mangel un Informatioun iwwer d'Integratioun vun den uewe genannte Servicer offensichtlech. Mir hunn 3 Tutorialvideoen fonnt wéi een integréiert:

Keen vun den dräi Videoen huet d'Fro geäntwert fir den ONLYOFFICE Dokumentservice op deemselwechte physikalesche Server wéi NextCloud mat engem gemeinsame nginx z'installéieren. Amplaz hunn se Trennungstechnike benotzt wéi se separat Ports fir den Dokumentservice API benotzen. En anere Virschlag war e separaten Server fir Document Service z'installéieren, manuell d'nginx Instanz konfiguréiert, déi an Document Service gebaut ass, fir en Zougangsschlëssel z'installéieren (e virbekannten Zougangsschlëssel deen d'Recht op Zougang zu den Datewollek bestätegt) an TLS Certificaten. Déi uewe genannte Approche goufen als net sécher an net effektiv genuch ugesinn, sou datt mir NextCloud, ONLYOFFICE an e gemeinsame nginx integréiert hunn, deen Ufroe vun Domain Nimm mat Docker-compose trennt. Hei ass Schrëtt fir Schrëtt Informatioun iwwer wéi Dir et maacht.

Schrëtt 1: nginx Container

Dëst ass e ganz einfache Setup, awer dëse Schrëtt erfuerdert déi meescht Aarbecht fir de Reverse Proxy Server ze konfiguréieren. Mir hunn fir d'éischt d'Docker-Compose Konfiguratioun fir den nginx: stabile Bild erstallt.

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

Dëst erstellt e Container mat Ports 80 an 443 fir de Public op, kartéiert d'Konfiguratioun op nginx/nginx-vhost.conf , an definéiert e Buttek fir Certificaten generéiert als selbst ënnerschriwwene Certificaten oder benotzt Let's encrypt's certbot in /nginx/certificates. Dës Plaz soll Classeure fir office.yourdomain.com an cloud.yourdomain.com enthalen, mat fullchain1.pem an privkey1.pem Fichieren an all fir d'Zertifikat Kette an Server private Schlëssel, respektiv. Dir kënnt méi liesen wéi Dir e selbst ënnerschriwwenen Zertifika generéiert hei. www.akadia.com/services/ssh_test_certificate.html (Nummen .key an .crt op .pem funktionnéiert ouni d'Dateistruktur fir nginx ze konvertéieren).

Duerno hu mir d'vhost Datei definéiert. Mir definéieren als éischt d'Behuele vum Port 80 als einfache Viruleedung op https, well mir wëllen keen http Traffic erlaben

server {
    listen 80;
    location / {
        return 301
            https://$host$request_uri;
    }
}

Mir hunn dunn zwee virtuelle Serveren um Port 443 fir eis Servicer erstallt:

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;
    }
}

Schrëtt 2: Dokument Service

Elo musse mir den Dokumentservice Container op eise docker-compose.yml addéieren. Et gëtt näischt Besonnesches hei ze konfiguréieren.

services:
...
  onlyoffice:
    image: onlyoffice/documentserver
    restart: always

Awer vergiesst net den nginx Container mam Dokumentservice ze verbannen:

services:
...
  nginx:
    ...
    depends_on:
      - onlyoffice

Schrëtt 3: NextCloud

Als éischt, füügt nei Servicer derbäi:

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

a füügt e Link op nginx:

services:
...
  nginx:
    ...
    depends_on:
      - app 

Elo ass et Zäit d'Container ze lueden.

docker-compose up -d  

No enger Zäit fänkt nginx Iech un de NextCloud Frontend zréck, wat d'Standardkonfiguratiounssäit ass. Dir musst de Benotzernumm a Passwuert fir Ären éischten administrativen Benotzer an d'Datebank-Umeldungsinformatioun aginn, déi Dir an docker-compose.yml uginn hutt Wann d'Setup fäerdeg ass, kënnt Dir Iech aloggen. An eisem Fall huet d'Waarde bal eng Minutt gedauert an eng zousätzlech Erfrëschung vun der Login Säit erfuerdert, ier mir an de Cloud Service aloggen.

NextCloud Service AstellungsfensterAstelle NextCloud + ONLYOFFICE um selwechte Server mat Docker

Schrëtt 4: NextCloud an ONLYOFFICE verbannen

Op dësem Schrëtt musst Dir d'Applikatioun fir NextCloud installéieren, déi d'ONLYOFFICE Funktionalitéit verbënnt. Loosst eis mat der Applikatiounskontrollpanel an der oberer rechter Ecke vum Menü ufänken. Fannt d'ONLYOFFICE App (ënner Office & Text oder benotzt Sich), installéieren an aktivéieren se.

Duerno gitt op d'Astellungen iwwer de Menü am Eck uewe riets an Dir sollt den ONLYOFFICE Element am lénksen Menü fannen. Gitt an et. Dir musst d'Adressen registréieren wéi hei ënnendrënner.

Integratioun Applikatioun AstellungeAstelle NextCloud + ONLYOFFICE um selwechte Server mat Docker

Déi éischt Adress gëtt benotzt fir op e puer js- an css-Dateien direkt vun der Applikatioun déi am Browser leeft ze verbannen (dat ass wat mir brauchen fir den Zougang zum ONLYOFFICE Service duerch nginx opzemaachen). De geheime Schlëssel gëtt net benotzt well mir d'Docker Isolatiounsschicht méi vertrauen wéi de persistent Authentifikatiounsschlëssel. Déi drëtt Adress gëtt vum NextCloud Container benotzt fir direkt mat der ONLYOFFICE API ze verbannen, an et benotzt den Standard internen Hostnumm vum Docker. Gutt, dat lescht Feld gëtt benotzt sou datt ONLYOFFICE Ufroe kann zréck an d'NextCloud API mat enger externer IP Adress oder enger interner Docker Adress maachen wann Dir Docker Netzwierker benotzt, awer dëst gëtt net an eisem Fall benotzt. Vergewëssert Iech datt Är Firewall-Astellungen dës Aarte vun Interaktiounen erlaben.

No späicheren wäert NextCloud d'Verbindung testen an, wann alles richteg ass, weist Iech Astellungen am Zesummenhang mat der Integratioun - zum Beispill, wéi eng Aarte vu Dateie kënnen duerch dës Integratioun geännert ginn. Personnaliséiert wéi Dir passt.

De leschte Schrëtt: Wou fannt Dir den Editeur

Wann Dir zréck an Är Cloud Storage Classeure gitt a klickt op de "+" fir eng nei Datei ze kreéieren, dann hutt Dir eng nei Optioun fir en Dokument, Spreadsheet oder Presentatioun ze kreéieren. Mat hirer Hëllef wäert Dir dës Aarte vu Dateien erstellen an direkt mat ONLYOFFICE änneren.

Fichier Kreatioun MenüAstelle NextCloud + ONLYOFFICE um selwechte Server mat Docker

Supplement 1

De ganzen Inhalt vun docker-compose.yml kann hei fonnt ginn: https://pastebin.com/z1Ti1fTZ

Source: will.com

Setzt e Commentaire