NextCloudi + ONLYOFFICE seadistamine ĂŒhel serveril Dockeriga

Tere, Habr! Esitan teile artikli tĂ”lke „NextCloudi ja ONLYOFFICE'i seadistamine ĂŒhel serveril Dockeris“.

On keeruline alahinnata veebipĂ”histe kontorirakenduste, nagu Google Docs, ja pilveteenuste kasu tehniliselt suunatud inimeste elus. Tehnoloogiad on levinud nii laialdaselt, et isegi ettevĂ”te Microsoft, kes on juba pikka aega domineerinud kontorirakenduste turul, on hiljuti keskendunud veebirakenduse Office 365 arendamisele ja kasutajate veenmisele oma teenuste tellimismudelitele ĂŒleminekul. KĂ”iki, keda huvitab enda pilvesalvestuse seadistamine ja konfigureerimine, kutsume lugema edasi.

MĂ”ni aeg tagasi tutvusime pilvesalvestuslahenduste ja avatud lĂ€htekoodiga veebipĂ”histe kontorirakenduste paketiga, mida oleks piisavalt lihtne rakendada vĂ€ikestes ettevĂ”tetes. Peamine motivatsioon kogu dokumentatsiooni salvestamiseks veebis on paberimajanduse vĂ€hendamine ja positiivsete Ă€ripraktikate rakendamine, vaatamata vĂ€ikesele tehingute mahule. Teisest kĂŒljest on mureks, et pilveserveri rendimine selle teenuse pakkumiseks on vĂ€hem turvaline kui andmete hoidmine ettevĂ”tte territooriumil, kuna teil ei ole juurdepÀÀsu oma serverile vĂ”i liiklusele fĂŒĂŒsilise auditi lĂ€biviimiseks. SeetĂ”ttu on vajalik ka lĂ”pp-to-lĂ”pp krĂŒpteerimine ja avatud lĂ€htekoodiga tarkvara.

Arvesse vÔttes kogu kÀttekÀiv teavet avatud lÀhtekoodiga lahenduste kohta, leidsime kaks aktiivset projekti (hiljutiste git-reposiidi commit'idega viimase 12 kuu jooksul), mis on loodud pilvesalvestuseks: NextCloud ja OwnCloud, ning ainsa aktiivse kontorirakenduste paketi ONLYOFFICE. MÔlemas pilvesalvestuslahenduses on funktsionaalsus umbes sama ja NextCloudi valimise otsus pÔhines tÔenditel, et see vÔiks olla integreeritud ONLYOFFICE'iga, et tagada kasutajale mugav suhtlemine tarkvaraga. Siiski, kui me alustasime teenuste seadistamist, sai selgeks, et teavet nende teenuste integreerimise kohta on vÀhe. Leidsime 3 Ôpetlikku videot, kuidas integreerimist teostada:

Ükski kolmest videost ei vastanud kĂŒsimusele, kuidas installida ONLYOFFICE dokumentide teenust samasse fĂŒĂŒsilisse serverisse nagu NextCloud koos ĂŒhise nginx-iga. Selle asemel kasutasid nad selliseid lahendusi nagu eraldi portide kasutamine dokumentide teenuse API jaoks. Teine pakutud variant oli eraldi serveri kĂ€itamine dokumentide teenusele, kus oli kĂ€sitsi seadistatud konfiguratsioon sisseehitatud nginx'i instantsile dokumentide teenuste jaoks, et installida pÀÀsulĂŒĂŒsi vĂ”ti (eelnevalt teadaolev pÀÀsulĂŒĂŒsi vĂ”ti, mis kinnitab juurdepÀÀsu andmekoobastele) ja TLS-sertifikaadid. Üksikasjalikumalt kirjeldatud lĂ€henemisviise peeti ebaefektiivseks ja ebaturvaliseks, seetĂ”ttu integreerisime NextCloudi, ONLYOFFICE'i ja ĂŒhise nginx-i, mis jaotab pĂ€ringud domeeninimede jĂ€rgi, kasutades docker-compose'i. Siin on samm-sammult teave, kuidas seda teha.

Samm 1: nginx konteiner

See on vÀga lihtne installatsioon, kuid see samm vajab kÔige rohkem tööd, et konfigureerida tagurpidi proksiserverit. Esiteks lÔime docker-compose'i konfiguratsiooni nginx:stable pildile.

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 konteineri, mille portidel 80 ja 443 on avalik juurdepÀÀs, kaardistab konfiguratsiooni nginx/nginx-vhost.conf ja mÀÀratleb ladustamise iseseisvalt allkirjastatud sertifikaatide vĂ”i Let's Encrypt'i Certbot'i loodud sertifikaatide jaoks kaustas /nginx/certificates. Siin peaksid olema kaustad office.yourdomain.com ja cloud.yourdomain.com, kus igas on failid fullchain1.pem ja privkey1.pem sertifikaadi ja privaatse vĂ”tme ahela jaoks vastavalt. Rohkem teavet selle kohta, kuidas genereerida iseseisvalt allkirjastatud sertifikaate, leiate siit www.akadia.com/services/ssh_test_certificate.html (failide .key ja .crt ĂŒmbernimetamine .pem-iks töötab ilma nginx'i failistruktuuri konverteerimiseta).

SeejĂ€rel mÀÀrasime vhost-faili. Esiteks mÀÀrame port 80 kĂ€itumiseks lihtsa ĂŒmbersuunamise https-ile, kuna me ei soovi lubada ĂŒhtegi http liiklust.

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

SeejÀrel lÔime kaks virtuaalset serverit port 443 meie teenuste jaoks:

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

Samm 2: dokumenditeenus

NĂŒĂŒd peame lisama dokumenditeenuse konteineri meie docker-compose.yml. Siin ei ole midagi erilist seadistada.

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

Aga Àrge unustage siduda nginx konteinerit dokumenditeenusega:

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

Samm 3: NextCloud

Esiteks lisame 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=#lae siia mÔni parool
      - MYSQL_PASSWORD=#lae siia mÔni teine parool
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    depends_on:
      - db
      - onlyoffice
    restart: always

ja lisame lingi nginx-ile:

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

NĂŒĂŒd on aeg konteinerid alla laadida.

Vaatame lihtsat nÀidet.  

MÔne aja pÀrast hakkab nginx teid suunama NextCloudi vÀlissele interface'ile, mis on vaikimisi seadistuse leheke. Te peate sisestama oma esimese administraatori kasutajanime ja parooli ning andmed andmebaasi kohta, mille te mÀÀrasite docker-compose.yml. Kui seadistus on lÔpetatud, saate sisse logida. Meie puhul vÔttis ooteaeg peaaegu minuti ja nÔudis tÀiendavat sisselogimislehe uuendamist, enne kui saime pilveteenusesse sisse logida.

NextCloudi teenuse seadete akenNextCloudi + ONLYOFFICE seadistamine ĂŒhel serveril Dockeriga

Samm 4: NextCloudi ja ONLYOFFICE'i ĂŒhendamine

Selle sammu raames peate installima NextCloudi rakenduse, mis ĂŒhendab ONLYOFFICE funktsionaalsusega. Alustame rakenduste juhtpaneelilt, mis asub menĂŒĂŒ paremas ĂŒlanurgas. Leidke rakendus ONLYOFFICE (jaotisest „Kontor ja tekst” (Office & text) vĂ”i otsimise abil), installige see ja aktiveerige.

SeejĂ€rel liikuge menĂŒĂŒsse paremas ĂŒlanurgas ja valige Seaded (Settings), kus peaksite leidma vasakus menĂŒĂŒs elemendi ONLYOFFICE. Avage see. Teil on vajalik sisestada aadressid, nagu allpool on nĂ€idatud.

Integratsioonirakenduse seadedNextCloudi + ONLYOFFICE seadistamine ĂŒhel serveril Dockeriga

Esimene aadress on mĂ”eldud mĂ”nedest js ja css failidest otse juurdepÀÀsuks veebibrauseris kĂ€ivitatavale rakendusele (see on see, mida me peame tegema ONLYOFFICE teenuse juurdepÀÀsu avamiseks nginx kaudu). Salajane vĂ”ti ei ole vajalik, sest usaldame Dockerist tulevat isoleerimiskihte rohkem kui pĂŒsivat autentimisvĂ”tit. Kolmas aadress on vajalik NextCloudi konteineri jaoks otse ainult ONLYOFFICE API-le ĂŒhendamiseks, kasutades Dockeris vaikimisi sisemist hostinime. Ja viimane vĂ€li on vajalik selleks, et ONLYOFFICE saaks teha tagasikutsumise NextCloud API-le, kasutades vĂ€lisest IP-aadressist vĂ”i Dockerist, kui kasutate Dockerite vĂ”rgustikke, kuid meie juhul seda ei kasutata. Veenduge, et teie tulemĂŒĂŒriseaded vĂ”imaldavad selliseid interaktsioone.

PĂ€rast salvestamist testib NextCloud ĂŒhendust ning kui kĂ”ik on Ă”igesti seadistatud, nĂ€itab see teile integreerimisega seotud seadeid - nĂ€iteks, milliseid failitĂŒĂŒpe saab selle integreerimisega redigeerida. Kohandage vastavalt oma soovidele.

LÔppsamm: kust redaktorit leida

Kui naasete oma pilvehoidla kaustadesse ja klĂ”psate „+”, et luua uus fail, on teil saadaval uus vĂ”imalus luua dokument, tabel vĂ”i esitlus. Nende abiga loote ja saate kohe muuta neid failitĂŒĂŒpe, kasutades ONLYOFFICE’i.

Failide loomise menĂŒĂŒNextCloudi + ONLYOFFICE seadistamine ĂŒhel serveril Dockeriga

Lisa 1

TĂ€ieliku sisu docker-compose.yml leiate siit: https://pastebin.com/z1Ti1fTZ

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster