Tere, Habr! Tutvustan teile artikli tõlget .
On raske alahinnata veebipõhiste kontorirakenduste, nagu Google Docs, ja pilvehoidlate kasu tehniliselt suunatud inimeste (tech-oriented people) elus. Tehnoloogiad on saanud nii laialdase leviku, et isegi Microsoft, kes on juba pikka aega valitsenud kontorirakenduste turul, on hiljuti keskendunud veebirakenduse Office 365 arendamisele ja kasutajate veenmisele oma teenuste tellimismudelile ülemiseks. Kõiki, keda huvitab oma salvestusruumi seadistamise ja konfigureerimise protsess, kutsume lõppu.
Mõni aeg tagasi tutvusime pilvesalvestuse lahenduste ja avatud koodiga veebirakenduste paketiga, mis võiksid olla piisavalt lihtsad, et neid saaks rakendada mikroettevõttes. Kogu dokumentatsiooni veebis hoidmise peamine motiiv on paberdokumendi käibe mahtude vähendamine ning positiivsete äritavade rakendamine, vaatamata tegevuste väiksele mahule. Teisest küljest on see, et pilveserveri rentimine selle teenuse osutamiseks on vähem turvaline kui andmete hoidmine ettevõtte territooriumil, kuna teil puudub füüsilise juurdepääsu ja liiklusega seotud auditivahend. Seega on vajalik ka lõpp-otsal olev krüptimine ja avatud koodiga tarkvara.
Arvestades kogu saadaval olevat teavet avatud lähtekoodiga lahenduste kohta, leidsime kaks aktiivset projekti (git-repositooriumites on olnud komiteed viimase 12 kuu jooksul), mis on arendatud pilvepõhiseks salvestamiseks: NextCloud ja OwnCloud, ning ainus aktiivne büroorakenduste pakett ONLYOFFICE. Mõlema pilve salvestamise lahenduse funktsionaalsus on umbes sama, ning NextCloud'i valik põhines tõendite olemasolul, et seda saab integreerida ONLYOFFICE'iga, et kasutajanähtavus oleks mugavam. Kuid kui alustasime teenuste käivitamist, sai selgeks, et teave nende teenuste integreerimise kohta on puudulik. Leidsime 3 õpetavat videot selle kohta, kuidas integreerimist teostada:
Ükski kolmest videost ei vastanud küsimusele, kuidas installida ONLYOFFICE dokumenditeenust samale füüsilisele serverile, kus asub NextCloud üldise nginx-iga. Selle asemel kasutati võrguühenduse eristamiseks selliseid tehnoloogiaid nagu eraldi portide kasutamine dokumenditeenuse API jaoks. Teine pakutud variant oli dokumentide teenuse jaoks eraldi serveri seadistamine, kus tuli käsitsi konfigureerida nginx, mis on integreeritud dokumenditeenuse instantsiga, et seadistada juurdepääsuvõti (varem teadaolev juurdepääsuvõti, mis tõendab õigust juurdepääsuks andmete pilve) ja TLS-sertifikaadid. Ülaltoodud lähenemisi peeti ebasoodsaks ja mitte piisavalt tõhusaks, seetõttu korraldasime integreerimise NextCloudi, ONLYOFFICE'i ja üldise nginx-iga, mis suunab päringud domeeninimede järgi, kasutades docker-compose'i. Siin on samm-sammult teave selle teostamiseks.
Samm 1: nginx konteiner
See on väga lihtne seadistus, kuid see samm nõuab kõige rohkem tööd tagurpidi proksiserveri konfigureerimiseks. Esiteks lõime docker-compose'i seadistuse nginx:stable pildi jaoks.
versioon: '2'
s teenused:
nginx:
pilt: nginx:stable
taaskäivita: alati
mahtusid:
- ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro
- ./nginx/certificates:/mycerts
sadamad:
- 443:443
- 80:80
See loob konteineri, kus sadamad 80 ja 443 on avalikuks ligipääsuks avatud, määratleb konfigureerimise nginx/nginx-vhost.conf ja määratleb sertifikaatide ladustamise, mis genereeritakse enesepöördussertifikaatide või Let’s Encrypti Certboti abil kaustas /nginx/certificates. Siin peaksid olema kaustad office.yourdomain.com ja cloud.yourdomain.com, kus kummaski on failid fullchain1.pem ja privkey1.pem sertifikaadi ahela ja serveri privaatvõtme jaoks vastavalt. Rohkem teavet enesepöördussertifikaadi genereerimise kohta leiate siit. (failide .key ja .crt ümbernimetamine .pem-iks töötab ilma failistruktuuri konverteerimiseta nginx-ile).
Pärast seda määratlesime vhost-faili. Esiteks määratleme sadama 80 käitumise lihtsana ümbersuunamisena https-ile, kuna me ei soovi lubada mingit http liiklust.
server {
listen 80;
location / {
return 301
https://$host$request_uri;
}
}
Seejärel lõime kaks virtuaalserverit sadamal 443 meie teenustele:
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: dokumentide teenus
Nüüd peame lisama dokumentide teenuse konteineri meie docker-compose.yml. Siin pole eriti midagi konfigureerida.
teenused:
...
onlyoffice:
image: onlyoffice/documentserver
restart: always
Aga ärge unustage siduda nginx konteinerit dokumentide teenusega:
teenused:
...
nginx:
...
depends_on:
- onlyoffice
Samm 3: NextCloud
Alustame uute teenuste lisamisega:
teenused:
...
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- /data/nextcloud_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=#siia mõned paroolid siia
- MYSQL_PASSWORD=#siia mõni teine parool
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
depends_on:
- db
- onlyoffice
restart: always
ja lisame lingi nginxile:
teenused:
...
nginx:
...
depends_on:
- app
Nüüd on aeg konteinerid üles laadida.
docker-compose up -d
Mõne aja pärast hakkab nginx suunama sind NextCloudi väliskeskkonda, mis on vaikimisi seadistuse leht. Pead sisestama oma esimese administraatori kasutajanime ja parooli ning andmed andmebaasi, mille sa määrasid docker-compose.yml-s. Pärast seadistamise lõpetamist saad sisse logida. Meie puhul kulus ooteaeg peaaegu minut ja vajalik oli ka lehe laadimise uuendamine, enne kui me suutsime pilveteenusesse sisse logida.
NextCloudi teenuse seadmise aken
Samm 4: NextCloudi ja ONLYOFFICE ühendamine
Sellel sammul on teil vaja installida NextCloudi rakendus, mis ühendab ONLYOFFICE'i funktsionaalsuse. Alustame rakenduste juhtpaneelilt menüü paremas ülanurgas. Leidke rakendus ONLYOFFICE (jaotises „Akont ja tekst” (Office & text) või kasutades otsingut), installige ja aktiveerige see.
Pärast seda minge menüüsse paremas ülanurgas ja valige Seaded (Settings), kus peaksite vasakpoolses menüüs leidma elemendi ONLYOFFICE. Klõpsake sellele. Teil on vaja sisestada aadresse nagu allpool näidatud.
Integratsioonirakenduse seaded
Esimene aadress kasutatakse otse brauseris käivitatavast rakendusest mõnede js ja css failide lingimiseks (see on põhjus, miks peame avama juurdepääsu ONLYOFFICE teenusele nginx-i kaudu). Salajast võtme ei kasutata, sest usaldame Docker'i isolatsioonikihti rohkem kui püsivat autentimise võtit. Kolmandat aadressi kasutab NextCloud konteiner ONLYOFFICE API-ga otseühenduseks ning see kasutab vaikimisi Docker'i sisemist hostinime. Viimane väli on vajalik selleks, et ONLYOFFICE saaks teha tagasikutsumise NextCloud API-le, kasutades välist IP-aadressi või Docker'i sisemist aadressi, kui kasutate Docker'i võrke, kuid meie puhul seda ei kasutata. Veenduge, et teie tulemüür seaded lubavad need tüüpi suhtlused.
Pärast salvestamist testib NextCloud ühendust ja kui kõik on õige, näitab see teile integreerimisega seotud seadeid — näiteks, milliseid failitüüpe saab selle integreerimisega redigeerida. Seadistage vastavalt oma soovidele.
Viimane samm: kust otsida redigeerijat
Kui tagastute oma pilvesalvestuse kaustadesse ja vajutate „+”, et luua uus fail, siis on teil saadaval uus dokumentide, tabelite või esitlustega dokumendi loomise valik. Nende abil saate luua ja kohe redigeerida selle tüüpi faile, kasutades ONLYOFFICE.
Failide loomise menüü
Täiend 1
Kogu docker-compose.yml sisu leiate siit:
Allikas: habr.com
