Ukusetha i-NextCloud + ONLYOFFICE kuseva efanayo ne-Docker

Sawubona Habr! Ngethula ekunakeni kwakho ukuhunyushwa kwalesi sihloko "Ukusetha i-NextCloud kanye ne-ONLYOFFICE kuseva eyodwa nge-Docker".

Kunzima ukubukela phansi ukubaluleka kwama-office office aku-inthanethi afana ne-Google Amadokhumenti nesitoreji samafu ezimpilweni zabantu abagxile kwezobuchwepheshe. Ubuchwepheshe sebusakazeke kakhulu kangangokuthi ngisho neMicrosoft, osekunesikhathi eside ibusa imakethe yezicelo zamahhovisi, isanda kugxila ekuthuthukiseni uhlelo lwewebhu lwe-Office 365 kanye nokunxenxa abasebenzisi ukuthi bashintshele kumodeli yokubhalisa ukuze basebenzise izinsiza zabo. Simema labo abathanda inqubo yokufaka nokulungisa isitoreji sabo ngaphansi kwekati.

Esikhathini esidlule sibheke izixazululo zesitoreji samafu kanye namasudi ehhovisi lewebhu lomthombo ovulekile angasatshalaliswa kalula ukuze asetshenziswe ebhizinisini elincane. Isisusa esikhulu sokugcina wonke amadokhumenti ku-inthanethi ukugcina amaphepha amancane futhi usebenzise imikhuba emihle yebhizinisi naphezu komthamo ophansi wokuthengiselana. Uhlangothi olungaphenduki lohlamvu lwemali ukuthi ukuqasha iseva yefu ukuze inikeze le sevisi kuvikeleke kancane kunokuyigcina ngokuqondile emagcekeni ebhizinisi, njengoba ungenayo indlela yokuhlola ukufinyelela ngokomzimba kuseva yakho noma ithrafikhi. Ngakho-ke, ukubethela ngasekugcineni kanye nesofthiwe yomthombo ovulekile nayo iyadingeka.

Ngokucabangela lonke ulwazi olutholakalayo mayelana nezixazululo zemithombo evulekile, sithole amaphrojekthi amabili asebenzayo (anezibophezelo endaweni ye-git yezinyanga ezingu-12 ezedlule) enzelwe isitoreji samafu: I-NextCloud ne-OwnCloud, kanye nehhovisi elisebenzayo le-ONLYOFFICE kuphela. Womabili amathuluzi okugcina amafu anokusebenza cishe okufanayo, futhi isinqumo sokukhetha i-NextCloud sasisekelwe ebukhoneni bobufakazi bokuthi ingahlanganiswa ne-ONLYOFFICE ukuze kube nokusebenzisana okunethezekile komsebenzisi nesofthiwe. Kodwa-ke, lapho siqala ukuthumela izinsizakalo, ukuntuleka kolwazi ekuhlanganiseni lezi zinsizakalo ezingenhla kwabonakala. Sithole amavidiyo wokufundisa angu-3 okuthi ungahlanganisa kanjani:

Awekho kulawa mavidiyo amathathu aphendule umbuzo wokufaka isevisi yedokhumenti ye-ONLYOFFICE kuseva ebonakalayo efana ne-NextCloud nge-nginx eyabiwe. Esikhundleni salokho, basebenzise amasu okuhlukanisa afana nokusebenzisa izimbobo ezihlukene zesevisi yedokhumenti api. Enye inketho ephakanyisiwe bekuwukuphaka iseva ehlukile Yesevisi Yedokhumenti, ukulungisa mathupha isibonelo se-nginx esakhelwe ku-Document Service ukuze kufakwe ukhiye wokufinyelela (ukhiye wokufinyelela owaziwa ngaphambilini oqinisekisa ilungelo lokufinyelela ifu ledatha) nezitifiketi ze-TLS. Lezi zindlela ezingenhla bezibhekwa njengeziphephile futhi zingasebenzi ngokwanele, ngakho-ke sihlanganise i-NextCloud, ONLYOFFICE kanye ne-nginx evamile, ehlukanisa izicelo ngamagama wesizinda, sisebenzisa i-docker-compose. Nansi imininingwane yesinyathelo ngesinyathelo sendlela yokwenza.

Isinyathelo 1: isitsha se-nginx

Lokhu ukusetha okulula, kodwa lesi sinyathelo sidinga umsebenzi omningi ukulungisa iseva elibamba ehlanekezelwe. Siqale sakha ukucushwa kwe-docker-compose ye-nginx:isithombe esizinzile.

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

Lokhu kudala isiqukathi esinezimbobo ezingu-80 nezingu-443 ezivulekele umphakathi, kwenze imephu yokucushwa kokuthi nginx/nginx-vhost.conf , futhi kuchaze isitolo sezitifiketi ezikhiqizwa njengezitifiketi ezizisayinele noma kusetshenziswa i-Let's encrypt's certbot ku/nginx/certificates. Le ndawo kufanele ibe namafolda e-office.yourdomain.com kanye ne-cloud.yourdomain.com, anamafayela e-fullchain1.pem nawe-privkey1.pem kuchungechunge lwesitifiketi nokhiye oyimfihlo weseva, ngokulandelana. Ungafunda kabanzi mayelana nokuthi usenza kanjani isitifiketi esizisayinele lapha. www.akadia.com/services/ssh_test_certificate.html (ukuqamba kabusha .key kanye .crt to .pem isebenza ngaphandle kokuguqula isakhiwo sefayela se-nginx).

Ngemva kwalokho, sichaze ifayela le-vhost. Okokuqala sichaza ukuziphatha kwe-port 80 njengendlela elula yokuqondisa kabusha ku-https, ngoba asifuni ukuvumela noma iyiphi ithrafikhi ye-http

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

Sibe sesidala amaseva amabili abonakalayo ku-port 443 ngezinsizakalo zethu:

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

Isinyathelo sesi-2: isevisi yedokhumenti

Manje sidinga ukwengeza isitsha sesevisi yedokhumenti ku-docker-compose.yml yethu. Akukho okukhethekile ongakumisa lapha.

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

Kodwa ungakhohlwa ukuxhuma isitsha se-nginx kusevisi yedokhumenti:

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

Isinyathelo sesi-3: NextCloud

Okokuqala, engeza amasevisi amasha:

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

bese wengeza isixhumanisi ku-nginx:

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

Manje sekuyisikhathi sokulayisha izitsha.

docker-compose up -d  

Ngemuva kwesikhashana, i-nginx izoqala ukukuqondisa kabusha ekugcineni kwe-NextCloud, okuyikhasi lokumisa elizenzakalelayo. Uzodinga ukufaka igama lomsebenzisi nephasiwedi yomsebenzisi wakho wokuqala wokuphatha kanye nemininingwane yedatha egciniwe oyinikeze ku-docker-compose.yml Uma ukusetha sekuqedile, uzokwazi ukungena ngemvume. Esimweni sethu, ukulinda kuthathe cishe iminithi futhi kudinga ukuvuselelwa okwengeziwe kwekhasi lokungena ngaphambi kokuthi singene kusevisi yefu.

Iwindi lezilungiselelo zesevisi ye-NextCloudUkusetha i-NextCloud + ONLYOFFICE kuseva efanayo ne-Docker

Isinyathelo sesi-4: Ukuxhuma i-NextCloud ne-ONLYOFFICE

Kulesi sinyathelo, uzodinga ukufaka isicelo se-NextCloud, esixhuma ukusebenza kwe-ONLYOFFICE. Ake siqale ngephaneli yokulawula yohlelo lokusebenza ekhoneni eliphezulu kwesokudla semenyu. Thola uhlelo lokusebenza lwe-ONLYOFFICE (ngaphansi kwe-Office & umbhalo noma usebenzisa ukusesha), lufake futhi ulusebenze.

Ngemva kwalokho bhekisa ku-Izilungiselelo usebenzisa imenyu ekhoneni eliphezulu kwesokudla futhi kufanele uthole into ethi ONLYOFFICE kumenyu engakwesokunxele. Ngena kuyo. Uzodinga ukubhalisa amakheli njengoba kukhonjisiwe ngezansi.

Izilungiselelo zohlelo lokusebenza lokuhlanganisaUkusetha i-NextCloud + ONLYOFFICE kuseva efanayo ne-Docker

Ikheli lokuqala lisetshenziselwa ukuxhuma kwamanye amafayela e-js nawe-css ngokuqondile kuhlelo lokusebenza olusebenza esipheqululini (yilokhu esikudingayo ukuze sivule ukufinyelela kusevisi ye-ONLYOFFICE nge-nginx). Ukhiye oyimfihlo awusetshenziswa ngoba sithemba isendlalelo sokuhlukaniswa se-Docker ngaphezu kokhiye wokuqinisekisa oqhubekayo. Ikheli lesithathu lisetshenziswa isiqukathi se-NextCloud ukuxhuma ngqo ku-ONLYOFFICE API, futhi lisebenzisa igama lomethuleli langaphakathi elizenzakalelayo elisuka ku-Docker. Yebo, inkambu yokugcina isetshenziswa ukuze I-ONLYOFFICE ikwazi ukwenza izicelo ibuyele ku-NextCloud API isebenzisa ikheli le-IP langaphandle noma ikheli langaphakathi le-Docker uma usebenzisa amanethiwekhi e-Docker, kodwa lokhu akusetshenziswa kithi. Qiniseka ukuthi izilungiselelo zakho zohlelo lokuvikela zivumela lezi zinhlobo zokusebenzisana.

Ngemva kokulondoloza, i-NextCloud izohlola uxhumano futhi, uma konke kulungile, izokubonisa izilungiselelo ezihlobene nokuhlanganiswa - isibonelo, yiziphi izinhlobo zamafayela ezingahlelwa yilokhu kuhlanganiswa. Yenza ngokwezifiso njengoba ubona kufanelekile.

Isinyathelo sokugcina: ungamthola kuphi umhleli

Uma ubuyela emuva kumafolda akho esitoreji samafu bese uchofoza u-β€œ+” ukuze udale ifayela elisha, uzoba nenketho entsha yokwakha idokhumenti, isipredishithi noma isethulo. Ngosizo lwabo, uzodala futhi ngokushesha ukwazi ukuhlela lezi zinhlobo zamafayela usebenzisa i-ONLYOFFICE.

Imenyu yokudala ifayelaUkusetha i-NextCloud + ONLYOFFICE kuseva efanayo ne-Docker

Isengezo sango-1

Okuqukethwe okugcwele kwe-docker-compose.yml kungatholakala lapha: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Engeza amazwana