Kukhazikitsa NextCloud + ONLYOFFICE pa seva yomweyo ndi Docker

Pa Habr! Ndikupereka kwa inu kumasulira kwa nkhaniyi "Kukhazikitsa NextCloud ndi ONLYOFFICE pa seva imodzi yokhala ndi Docker".

Ndizovuta kupeputsa kufunikira kwa maofesi apaintaneti monga Google Docs ndi kusungirako mitambo m'miyoyo ya anthu okonda zaukadaulo. Zipangizo zamakono zafala kwambiri moti ngakhale Microsoft, yomwe yakhala ikulamulira msika wa maofesi a maofesi, yakhala ikuyang'ana kwambiri pakupanga maofesi a Office 365 ndi kukopa ogwiritsa ntchito kuti asinthe njira yolembetsa kuti agwiritse ntchito ntchito zawo. Tikuyitanitsa iwo omwe ali ndi chidwi ndi njira yokhazikitsira ndikusintha zosungira zawo pansi pa mphaka.

Kale tidayang'ana njira zosungiramo mitambo ndi maofesi otsegulira mawebusayiti omwe atha kugwiritsidwa ntchito mosavuta pamabizinesi ang'onoang'ono. Cholinga chachikulu chosungira zolemba zonse pa intaneti ndikusunga zolemba zochepa ndikugwiritsa ntchito njira zabwino zamabizinesi ngakhale kutsika kwazomwe zimachitika. Mbali ina ya ndalamayi ndikuti kubwereka seva yamtambo kuti ipereke ntchitoyi sikutetezeka kwenikweni kuposa kuyisunga molunjika pamalo abizinesi, chifukwa mulibe njira yowunikira momwe mungagwiritsire ntchito seva yanu kapena magalimoto. Choncho, mapeto-to-mapeto encryption ndi lotseguka gwero mapulogalamu amafunikanso.

Poganizira zonse zomwe zilipo zokhuza mayankho otseguka, tapeza mapulojekiti awiri omwe akugwira ntchito (omwe adachita mu git repository kwa miyezi 12 yapitayi) opangidwa kuti asungidwe pamtambo: NextCloud ndi OwnCloud, komanso ofesi yokhayo ya ONLYOFFICE. Zida zonse ziwiri zosungira mitambo zili ndi magwiridwe antchito ofanana, ndipo lingaliro losankha NextCloud lidatengera kukhalapo kwa umboni kuti itha kuphatikizidwa ndi ONLYOFFICE kuti ogwiritsa ntchito athe kugwiritsa ntchito bwino pulogalamuyi. Komabe, pamene tinayamba kutumiza mautumiki, kusowa kwa chidziwitso chophatikiza mautumiki omwe ali pamwambawa kunaonekera. Tapeza mavidiyo atatu amomwe mungaphatikizire:

Palibe mavidiyo atatuwa omwe adayankha funso lakuyika zolemba za ONLYOFFICE pa seva yofanana ndi NextCloud yokhala ndi nginx yogawana. M'malo mwake, adagwiritsa ntchito njira zolekanitsa monga kugwiritsa ntchito madoko osiyana a api service service. Lingaliro lina linali kuyika seva yosiyana ya Document Service, kukonza pamanja chitsanzo cha nginx chomangidwa mu Document Service kuti muyike kiyi yolowera (kiyi yodziwika kale yomwe imatsimikizira ufulu wopeza mtambo wa data) ndi ziphaso za TLS. Njira zomwe zili pamwambazi zinkaonedwa kuti sizotetezeka komanso zosagwira ntchito mokwanira, choncho tinaphatikiza NextCloud, ONLYOFFICE ndi nginx wamba yomwe imalekanitsa zopempha ndi mayina a mayina pogwiritsa ntchito docker-compose. Apa pali sitepe ndi sitepe zambiri mmene angachitire izo.

Khwerero 1: chidebe cha nginx

Uku ndikukhazikitsa kophweka, koma sitepe iyi imafuna ntchito yambiri yokonza seva ya proxy reverse. Tidayamba kupanga masinthidwe a docker-compose a nginx: chithunzi chokhazikika.

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

Izi zimapanga chidebe chokhala ndi ma doko 80 ndi 443 otsegulidwa kwa anthu, mapu a kasinthidwe nginx/nginx-vhost.conf , ndikutanthauzira sitolo ya ziphaso zopangidwa ngati ziphaso zodzilembera zokha kapena kugwiritsa ntchito Let's encrypt's certbot mu /nginx/certificates. Malowa akuyenera kukhala ndi zikwatu za office.yourdomain.com ndi cloud.yourdomain.com, zokhala ndi mafayilo a fullchain1.pem ndi privkey1.pem pagawo lililonse la unyolo wa satifiketi ndi kiyi yachinsinsi ya seva, motsatana. Mutha kuwerenga zambiri za momwe mungapangire satifiketi yodzisainira pano. www.akadia.com/services/ssh_test_certificate.html (kutchulanso .key ndi .crt ku .pem imagwira ntchito popanda kutembenuza fayilo ya nginx).

Pambuyo pake, tidafotokozera fayilo ya vhost. Choyamba timatanthauzira machitidwe a doko 80 ngati njira yosavuta yolozera ku https, chifukwa sitikufuna kulola magalimoto aliwonse a http

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

Kenako tidapanga ma seva awiri padoko 443 pazantchito zathu:

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

Gawo 2: ntchito zolemba

Tsopano tikuyenera kuwonjezera chidebe chothandizira zikalata ku docker-compose.yml yathu. Palibe chapadera chokonzekera apa.

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

Koma musaiwale kulumikiza chidebe cha nginx ku ntchito zolembera:

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

Gawo 3: NextCloud

Choyamba, onjezani mautumiki atsopano:

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

ndikuwonjezera ulalo ku nginx:

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

Tsopano ndi nthawi yokweza zotengerazo.

docker-compose up -d  

Patapita kanthawi, nginx iyamba kukulozerani kutsogolo kwa NextCloud, lomwe ndi tsamba lokhazikika lokhazikika. Muyenera kuyika dzina lolowera ndi mawu achinsinsi kwa wogwiritsa ntchito woyamba admin ndi zidziwitso za database zomwe mudapereka mu docker-compose.yml Kukhazikitsa kukamaliza, mudzatha kulowa. Kwa ife, kudikirira kunatenga pafupifupi mphindi imodzi ndipo kumafuna kutsitsimula kwina kwa tsamba lolowera tisanalowe muutumiki wamtambo.

NextCloud zoikamo service zeneraKukhazikitsa NextCloud + ONLYOFFICE pa seva yomweyo ndi Docker

Khwerero 4: Kulumikiza NextCloud ndi ONLYOFFICE

Pakadali pano, muyenera kukhazikitsa pulogalamu ya NextCloud, yomwe imalumikiza magwiridwe antchito a ONLYOFFICE. Tiyeni tiyambe ndi gulu lolamulira la ntchito pakona yakumanja kwa menyu. Pezani pulogalamu ya ONLYOFFICE (pansi pa Office & mawu kapena kugwiritsa ntchito kusaka), yikani ndikuyiyambitsa.

Pambuyo pake kupita ku Zikhazikiko kudzera pamenyu yomwe ili pakona yakumanja yakumanja ndipo muyenera kupeza chinthu cha ONLYOFFICE kumanzere. Lowani mu izo. Muyenera kulembetsa ma adilesi monga momwe zasonyezedwera pansipa.

Zokonda kugwiritsa ntchito kuphatikizaKukhazikitsa NextCloud + ONLYOFFICE pa seva yomweyo ndi Docker

Adilesi yoyamba imagwiritsidwa ntchito kulumikiza mafayilo a js ndi css mwachindunji kuchokera pa pulogalamu yomwe ikuyenda mu msakatuli (izi ndizomwe tikufunika kuti titsegule mwayi wopita ku ONLYOFFICE kudzera mu nginx). Chinsinsi chachinsinsi sichimagwiritsidwa ntchito chifukwa timakhulupirira gawo lapadera la Docker kuposa kiyi yotsimikizira mosalekeza. Adilesi yachitatu imagwiritsidwa ntchito ndi chotengera cha NextCloud kuti ilumikizane mwachindunji ndi ONLYOFFICE API, ndipo imagwiritsa ntchito dzina lamkati lamkati la Docker. Chabwino, gawo lomaliza likugwiritsidwa ntchito kuti ONLYOFFICE ipemphe kubwerera ku NextCloud API pogwiritsa ntchito adilesi yakunja ya IP kapena adilesi yamkati ya Docker ngati mukugwiritsa ntchito maukonde a Docker, koma izi sizikugwiritsidwa ntchito kwa ife. Onetsetsani kuti zokonda zanu za firewall zimalola kuyanjana kwamtunduwu.

Pambuyo populumutsa, NextCloud idzayesa kugwirizanitsa ndipo, ngati zonse ziri zolondola, zidzakuwonetsani zokonda zokhudzana ndi kuphatikiza - mwachitsanzo, ndi mitundu yanji ya mafayilo omwe angasinthidwe ndi kuphatikiza uku. Sinthani mwamakonda momwe mukuwonera.

Gawo lomaliza: komwe mungapeze mkonzi

Ngati mubwerera kumafoda anu osungira mitambo ndikudina "+" kuti mupange fayilo yatsopano, ndiye kuti mudzakhala ndi njira yatsopano yopangira chikalata, spreadsheet kapena chiwonetsero. Ndi chithandizo chawo, mupanga ndipo nthawi yomweyo mutha kusintha mafayilo amtundu uwu pogwiritsa ntchito ONLYOFFICE.

Menyu yopanga mafayiloKukhazikitsa NextCloud + ONLYOFFICE pa seva yomweyo ndi Docker

Zowonjezera 1

Zomwe zili mu docker-compose.yml zitha kupezeka apa: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Kuwonjezera ndemanga