Setja upp NextCloud + ONLYOFFICE á sama netþjóni með Docker

Hæ Habr! Ég kynni þér þýðingu greinarinnar „Setja upp NextCloud og ONLYOFFICE á einum netþjóni með Docker“.

Það er erfitt að vanmeta gildi skrifstofusvíta á netinu eins og Google Docs og skýjageymslu í lífi tæknisinnaðs fólks. Tæknin er orðin svo útbreidd að meira að segja Microsoft, sem lengi hefur verið ráðandi á markaðnum fyrir skrifstofuforrit, hefur nýlega einbeitt sér að þróun Office 365 vefforritsins og að fá notendur til að skipta yfir í áskriftarlíkan til að nota sína eigin þjónustu. Við bjóðum þeim sem hafa áhuga á því að setja upp og stilla eigin geymslu undir kött.

Fyrir nokkru síðan skoðuðum við skýjageymslulausnir og opinn uppspretta vefskrifstofusvíta sem auðvelt var að nota til notkunar í örfyrirtæki. Helsta hvatningin fyrir því að halda öllum skjölum á netinu er að halda pappírsvinnu í lágmarki og innleiða góða viðskiptahætti þrátt fyrir lítið magn viðskipta. Hin hliðin á peningnum er sú að leigja skýjaþjónn til að veita þessa þjónustu er óöruggari en að geyma hana beint á húsnæði fyrirtækisins, þar sem þú hefur enga möguleika til að endurskoða líkamlegan aðgang að netþjóninum þínum eða umferð. Þess vegna er einnig krafist end-til-enda dulkóðunar og opins hugbúnaðar.

Að teknu tilliti til allra tiltækra upplýsinga um opna lausnir fundum við tvö virk verkefni (með skuldbindingum í git geymslunni undanfarna 12 mánuði) þróuð fyrir skýjageymslu: NextCloud og OwnCloud, og eina virka ONLYOFFICE skrifstofupakkann. Bæði skýjageymsluverkfærin hafa nokkurn veginn sömu virkni og ákvörðunin um að velja NextCloud var byggð á tilvist sönnunargagna um að hægt sé að samþætta það við ONLYOFFICE fyrir þægileg samskipti notenda við hugbúnaðinn. Hins vegar, þegar við byrjuðum að dreifa þjónustunni, kom í ljós skortur á upplýsingum um samþættingu ofangreindra þjónustu. Við fundum 3 kennslumyndbönd um hvernig á að samþætta:

Ekkert af myndböndunum þremur svaraði spurningunni um að setja upp ONLYOFFICE skjalaþjónustuna á sama netþjóni og NextCloud með sameiginlegu nginx. Þess í stað notuðu þeir aðskilnaðaraðferðir eins og að nota aðskildar hafnir fyrir skjalaþjónustuforritið. Annar leiðbeinandi valkostur var að setja upp sérstakan netþjón fyrir skjalaþjónustu, stilla handvirkt nginx tilvikið sem er innbyggt í skjalaþjónustu til að setja upp aðgangslykil (forþekktur aðgangslykill sem staðfestir réttinn til að fá aðgang að gagnaskýinu) og TLS vottorð. Ofangreindar aðferðir voru taldar ekki öruggar og ekki nógu árangursríkar, þannig að við samþættum NextCloud, ONLYOFFICE og sameiginlegt nginx, sem aðskilur beiðnir eftir lén, með því að nota docker-compose. Hér eru skref fyrir skref upplýsingar um hvernig á að gera það.

Skref 1: nginx ílát

Þetta er mjög einföld uppsetning, en þetta skref krefst mestrar vinnu til að stilla öfuga proxy-þjóninn. Við bjuggum fyrst til docker-compose stillinguna fyrir nginx:stable myndina.

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

Þetta býr til gám með höfnum 80 og 443 opnum almenningi, kortleggur uppsetninguna á nginx/nginx-vhost.conf og skilgreinir geymslu fyrir vottorð sem eru búin til sem sjálfundirrituð vottorð eða með því að nota Let's dulkóða certbot í /nginx/certificates. Þessi staðsetning ætti að innihalda möppur fyrir office.yourdomain.com og cloud.yourdomain.com, með fullchain1.pem og privkey1.pem skrám í hverri fyrir vottorðakeðjuna og einkalykil netþjónsins, í sömu röð. Þú getur lesið meira um hvernig á að búa til sjálfstætt undirritað vottorð hér. www.akadia.com/services/ssh_test_certificate.html (að nefna .key og .crt í .pem virkar án þess að breyta skráarskipaninni fyrir nginx).

Eftir það skilgreindum við vhost skrána. Við skilgreinum fyrst hegðun hafnar 80 sem einfalda tilvísun á https, vegna þess við viljum ekki leyfa neina http umferð

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

Við bjuggum síðan til tvo sýndarþjóna á höfn 443 fyrir þjónustu okkar:

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

Skref 2: skjalaþjónusta

Nú þurfum við að bæta skjalaþjónustuílátinu við okkar docker-compose.yml. Það er ekkert sérstakt að stilla hér.

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

En ekki gleyma að tengja nginx ílátið við skjalaþjónustuna:

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

Skref 3: NextCloud

Fyrst skaltu bæta við nýjum þjónustum:

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

og bættu tengli við nginx:

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

Nú er komið að því að hlaða gámunum.

docker-compose up -d  

Eftir smá stund mun nginx byrja að vísa þér á NextCloud framenda, sem er sjálfgefna stillingarsíðan. Þú þarft að slá inn notandanafn og lykilorð fyrir fyrsta stjórnunarnotandann þinn og gagnagrunnsskilríkin sem þú gafst upp í docker-compose.yml Þegar uppsetningunni er lokið muntu geta skráð þig inn. Í okkar tilviki tók biðin næstum eina mínútu og krafðist viðbótaruppfærslu á innskráningarsíðunni áður en við gátum skráð okkur inn í skýjaþjónustuna.

NextCloud þjónustustillingagluggiSetja upp NextCloud + ONLYOFFICE á sama netþjóni með Docker

Skref 4: Tengdu NextCloud og ONLYOFFICE

Í þessu skrefi þarftu að setja upp forritið fyrir NextCloud, sem tengir ONLYOFFICE virknina. Byrjum á stjórnborði forritsins í efra hægra horninu á valmyndinni. Finndu ONLYOFFICE appið (undir Skrifstofu og texta eða notaðu leit), settu upp og virkjaðu það.

Eftir það skaltu fara í Stillingar í gegnum valmyndina efst í hægra horninu og þú ættir að finna ONLYOFFICE hlutinn í vinstri valmyndinni. Farðu í það. Þú þarft að skrá heimilisföngin eins og tilgreint er hér að neðan.

Stillingar samþættingarforritaSetja upp NextCloud + ONLYOFFICE á sama netþjóni með Docker

Fyrsta heimilisfangið er notað til að tengja við sumar js og css skrár beint úr forritinu sem keyrir í vafranum (þetta er það sem við þurfum til að opna aðgang að ONLYOFFICE þjónustunni í gegnum nginx). Leynilykillinn er ekki notaður vegna þess að við treystum Docker einangrunarlaginu meira en viðvarandi auðkenningarlyklinum. Þriðja heimilisfangið er notað af NextCloud gámnum til að tengjast beint við ONLYOFFICE API og það notar sjálfgefið innra hýsilnafn frá Docker. Jæja, síðasti reiturinn er notaður svo að ONLYOFFICE geti lagt fram beiðnir aftur í NextCloud API með ytri IP tölu eða innri Docker vistfangi ef þú ert að nota Docker net, en þetta er ekki notað í okkar tilviki. Gakktu úr skugga um að eldveggstillingarnar þínar leyfi þessa tegund af samskiptum.

Eftir vistun mun NextCloud prófa tenginguna og, ef allt er rétt, sýnir þér stillingar sem tengjast samþættingunni - til dæmis hvaða gerðir skráa er hægt að breyta með þessari samþættingu. Sérsníða eins og þér sýnist.

Lokaskrefið: hvar á að finna ritstjórann

Ef þú ferð aftur í skýjageymslumöppurnar þínar og smellir á „+“ til að búa til nýja skrá, þá færðu nýjan möguleika til að búa til skjal, töflureikni eða kynningu. Með hjálp þeirra muntu búa til og strax geta breytt þessum tegundum skráa með því að nota ONLYOFFICE.

SkráagerðarvalmyndSetja upp NextCloud + ONLYOFFICE á sama netþjóni með Docker

Viðbót 1

Allt innihald docker-compose.yml má finna hér: https://pastebin.com/z1Ti1fTZ

Heimild: www.habr.com

Bæta við athugasemd