NextCloud + ONLYOFFICE seadistamine Dockeriga samas serveris

Tere Habr! Esitan teie tähelepanu artikli tõlkele "NextCloudi ja ONLYOFFICE'i seadistamine Dockeriga ühes serveris".

On raske alahinnata veebipõhise kontorikomplekti, nagu Google Docs ja pilvesalvestus, väärtust tehnoloogiale orienteeritud inimeste elus. Tehnoloogia on nii laialt levinud, et isegi kontorirakenduste turgu pikka aega domineerinud Microsoft on viimasel ajal keskendunud Office 365 veebirakenduse arendamisele ja kasutajate veenmisele oma teenuste kasutamiseks liitumismudelile üle minema. Kutsume neid, kes on huvitatud oma hoiupaiga paigaldamise ja seadistamise protsessist cat.

Mõni aeg tagasi vaatlesime pilvesalvestuslahendusi ja avatud lähtekoodiga veebikontorikomplekte, mida saaks hõlpsasti mikroettevõttes kasutamiseks juurutada. Peamine ajend kogu dokumentatsiooni veebis hoidmiseks on hoida paberimajandust minimaalsena ja rakendada häid äritavasid vaatamata tehingute väikesele mahule. Mündi tagumine külg on see, et selle teenuse pakkumiseks pilveserveri rentimine on vähem turvaline kui otse ettevõtte territooriumil hoidmine, kuna teil pole vahendeid oma serverile füüsilise juurdepääsu või liikluse auditeerimiseks. Seetõttu on vaja ka täielikku krüptimist ja avatud lähtekoodiga tarkvara.

Võttes arvesse kogu olemasolevat teavet avatud lähtekoodiga lahenduste kohta, leidsime kaks aktiivset projekti (viimase 12 kuu jooksul git-hoidlas tehtud kohustustega), mis on välja töötatud pilvesalvestuseks: NextCloud ja OwnCloud ning ainsa aktiivse ONLYOFFICE kontorikomplekti. Mõlemal pilvesalvestustööriistal on ligikaudu samad funktsioonid ja otsus NextCloudi kasuks põhines tõendite olemasolul, et seda saab integreerida ONLYOFFICE-ga, et kasutaja saaks tarkvaraga mugavalt suhelda. Teenuste juurutamist alustades ilmnes aga teabe puudumine ülaltoodud teenuste integreerimise kohta. Leidsime 3 õpetusvideot, kuidas integreerida:

Ükski kolmest videost ei vastanud küsimusele ONLYOFFICE dokumenditeenuse installimise kohta jagatud nginxiga samasse füüsilisse serverisse nagu NextCloud. Selle asemel kasutasid nad eraldamistehnikaid, näiteks dokumenditeenuse API jaoks eraldi portide kasutamist. Teiseks soovitatud võimaluseks oli Document Service'i jaoks eraldi serveri juurutamine, konfigureerides käsitsi Document Service'i sisseehitatud nginxi eksemplari, et installida pääsuvõti (eelteada pääsuvõti, mis kinnitab andmepilvele juurdepääsu õigust) ja TLS-i sertifikaadid. Ülaltoodud lähenemisviise ei peetud ohutuks ja piisavalt tõhusaks, seetõttu integreerisime NextCloudi, ONLYOFFICE'i ja tavalise nginxi, mis eraldab päringud domeeninimede järgi, kasutades docker-compose'i. Siin on samm-sammult teave selle kohta, kuidas seda teha.

1. samm: nginxi konteiner

See on väga lihtne seadistus, kuid see samm nõuab pöördpuhverserveri konfigureerimiseks kõige rohkem tööd. Esmalt lõime nginx: stabiilse pildi jaoks dockeri koostamise konfiguratsiooni.

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

See loob avalikkusele avatud portidega 80 ja 443 konteineri, kaardistab konfiguratsiooni failiga nginx/nginx-vhost.conf ja määratleb sertifikaatide poe, mis on genereeritud iseallkirjastatud sertifikaatidena või kasutades Let's encrypt sertbotit kaustas /nginx/certificates. See asukoht peaks sisaldama aadresside office.yourdomain.com ja cloud.yourdomain.com kaustu, milles on failid fullchain1.pem ja privkey1.pem vastavalt sertifikaadiahela ja serveri privaatvõtme jaoks. Iseallkirjastatud sertifikaadi genereerimise kohta saate täpsemalt lugeda siit. www.akadia.com/services/ssh_test_certificate.html (Key ja .crt ümbernimetamine .pem-iks toimib ilma nginxi failistruktuuri teisendamata).

Pärast seda määratlesime vhost-faili. Esmalt määratleme pordi 80 käitumise lihtsa ümbersuunamisena https-ile, kuna me ei taha lubada mingit http-liiklust

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

Seejärel lõime oma teenuste jaoks kaks virtuaalset serverit pordis 443:

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

2. samm: dokumenditeenus

Nüüd peame lisama dokumenditeenuse konteineri faili docker-compose.yml. Siin pole midagi erilist seadistada.

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

Kuid ärge unustage linkida nginxi konteinerit dokumenditeenusega:

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

3. samm: NextCloud

Esmalt lisage uued teenused:

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

ja lisage link nginxile:

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

Nüüd on aeg konteinerid laadida.

docker-compose up -d  

Mõne aja pärast hakkab nginx teid suunama NextCloudi esiotsa, mis on vaikekonfiguratsioonileht. Peate sisestama oma esimese administraatorikasutaja kasutajanime ja parooli ning saidil docker-compose.yml sisestatud andmebaasi mandaadid. Kui häälestus on lõpule viidud, saate sisse logida. Meie puhul võttis ootamine aega peaaegu minuti ja nõudis sisselogimislehe täiendavat värskendamist, enne kui saime pilveteenusesse sisse logida.

NextCloudi teenuse seadete akenNextCloud + ONLYOFFICE seadistamine Dockeriga samas serveris

4. samm: ühendage NextCloud ja ONLYOFFICE

Selles etapis peate installima NextCloudi rakenduse, mis ühendab funktsiooni ONLYOFFICE. Alustame menüü paremas ülanurgas oleva rakenduse juhtpaneeliga. Otsige üles rakendus ONLYOFFICE (jaotises Office & text või kasutades otsingut), installige ja aktiveerige see.

Pärast seda minge paremas ülanurgas oleva menüü kaudu menüüsse Seaded ja vasakpoolsest menüüst peaksite leidma üksuse ONLYOFFICE. Minge sellesse. Peate registreerima aadressid, nagu allpool näidatud.

Integratsioonirakenduse sättedNextCloud + ONLYOFFICE seadistamine Dockeriga samas serveris

Esimest aadressi kasutatakse mõne js- ja css-faili linkimiseks otse brauseris töötavast rakendusest (see on see, mida me vajame, et avada juurdepääs teenusele ONLYOFFICE nginxi kaudu). Salavõtit ei kasutata, kuna me usaldame Dockeri isolatsioonikihti rohkem kui püsivat autentimisvõtit. Kolmandat aadressi kasutab NextCloudi konteiner ONLYOFFICE API-ga otse ühenduse loomiseks ja see kasutab Dockeri sisemist vaikehostinime. Noh, viimast välja kasutatakse selleks, et ONLYOFFICE saaks teha taotlusi NextCloud API-le, kasutades välist IP-aadressi või sisemist Dockeri aadressi, kui kasutate Dockeri võrke, kuid meie puhul seda ei kasutata. Veenduge, et teie tulemüüri seaded lubaksid seda tüüpi interaktsioone.

Pärast salvestamist testib NextCloud ühendust ja kui kõik on õige, siis näitab integratsiooniga seotud sätteid – näiteks mis tüüpi faile saab selle integratsiooniga redigeerida. Kohandage oma äranägemise järgi.

Viimane samm: kust leida toimetaja

Kui lähete tagasi oma pilvesalvestuskaustadesse ja klõpsate uue faili loomiseks plussmärgil, avaneb teil uus võimalus dokumendi, arvutustabeli või esitluse loomiseks. Nende abiga saate luua ja koheselt redigeerida seda tüüpi faile ONLYOFFICE abil.

Faili loomise menüüNextCloud + ONLYOFFICE seadistamine Dockeriga samas serveris

Täiendus 1

Docker-compose.yml täieliku sisu leiate siit: https://pastebin.com/z1Ti1fTZ

Allikas: www.habr.com

Lisa kommentaar