Tere, Habr! Esitan teile artikli tõlke .
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 (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 aken
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 seaded
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üü
Lisa 1
Täieliku sisu docker-compose.yml leiate siit:
Allikas: habr.com
