Teeb tsa NextCloud + ONLYOFFICE ntawm tib lub server nrog Docker

Hlo Habr! Kuv nthuav qhia rau koj mloog cov lus txhais ntawm tsab xov xwm "Tsim NextCloud thiab ONLYOFFICE ntawm ib lub server nrog Docker".

Nws yog ib qho nyuaj rau underestimate tus nqi ntawm online office suites xws li Google Docs thiab huab cia nyob rau hauv lub neej ntawm tech-oriented neeg. Kev siv tshuab tau dhau los ua qhov dav heev uas txawm tias Microsoft, uas tau ua tus thawj tswj hwm lub chaw ua haujlwm ua lag luam ntev ntev, tsis ntev los no tau tsom mus rau kev tsim Office 365 lub vev xaib thov thiab yaum cov neeg siv hloov mus rau tus qauv sau npe siv lawv tus kheej cov kev pabcuam. Peb caw cov neeg uas txaus siab rau cov txheej txheem ntawm kev txhim kho thiab teeb tsa lawv tus kheej cia hauv qab miv.

Qee lub sij hawm dhau los peb tau saib cov kev daws teeb meem huab cia thiab qhib qhov web chaw ua haujlwm suites uas tuaj yeem siv tau yooj yim rau kev siv hauv micro-kev lag luam. Lub hom phiaj tseem ceeb ntawm kev khaws tag nrho cov ntaub ntawv hauv online yog khaws cov ntaub ntawv kom tsawg thiab siv cov kev coj ua lag luam zoo txawm tias muaj kev lag luam tsawg. Lub flip sab ntawm lub npib yog tias xauj ib lub huab server los muab qhov kev pabcuam no tsis muaj kev nyab xeeb dua li khaws cia ncaj qha rau ntawm qhov chaw ntawm lub tuam txhab, vim tias koj tsis muaj ib txoj hauv kev tshawb xyuas lub cev nkag mus rau koj lub server lossis tsheb. Yog li ntawd, qhov kawg-rau-kawg encryption thiab qhib qhov software kuj yuav tsum tau.

Muab rau hauv tus account tag nrho cov ntaub ntawv muaj txog kev qhib qhov kev daws teeb meem, peb pom ob txoj haujlwm nquag (nrog kev cog lus hauv git repository rau 12 lub hlis dhau los) tsim rau huab cia: NextCloud thiab OwnCloud, thiab tsuas yog ONLYOFFICE chaw ua haujlwm suite. Ob lub huab cia cov cuab yeej muaj qhov ua haujlwm zoo ib yam, thiab qhov kev txiav txim siab xaiv NextCloud yog raws li cov pov thawj uas nws muaj peev xwm ua ke nrog ONLYOFFICE rau kev sib cuam tshuam nrog cov neeg siv software. Txawm li cas los xij, thaum peb pib xa cov kev pabcuam, qhov tsis muaj ntaub ntawv ntawm kev koom ua ke cov kev pabcuam saum toj no tau tshwm sim. Peb pom 3 cov yeeb yaj kiab qhia txog kev sib koom ua ke:

Tsis muaj ib qho ntawm peb cov vis dis aus teb cov lus nug ntawm kev txhim kho ONLYOFFICE cov ntaub ntawv kev pabcuam ntawm tib lub cev server li NextCloud nrog kev sib koom nginx. Hloov chaw, lawv siv cov txheej txheem sib cais xws li siv cov chaw nres nkoj cais rau cov ntaub ntawv pabcuam api. Lwm qhov kev xaiv tau pom zoo yog txhawm rau xa ib lub server cais rau Cov Ntaub Ntawv Kev Pabcuam, manually teeb tsa nginx piv txwv ua rau hauv Cov Ntaub Ntawv Kev Pabcuam rau nruab ib tus yuam sij nkag (tus yuam sij nkag mus ua ntej uas lees paub txoj cai nkag mus rau cov ntaub ntawv huab) thiab daim ntawv pov thawj TLS. Cov txheej txheem saum toj no tau suav tias tsis muaj kev nyab xeeb thiab tsis muaj txiaj ntsig txaus, yog li peb koom ua ke NextCloud, ONLYOFFICE thiab ib qho nginx, uas cais cov kev thov los ntawm cov npe sau npe, siv docker-compose. Ntawm no yog cov lus qhia ib kauj ruam ntawm yuav ua li cas.

Kauj ruam 1: nginx thawv

Qhov no yog ib qho kev teeb tsa yooj yim heev, tab sis cov kauj ruam no yuav tsum tau ua haujlwm tshaj plaws los teeb tsa tus neeg rau zaub mov rov qab. Peb xub tsim docker-compose configuration rau nginx: ruaj khov duab.

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

Qhov no tsim lub thawv nrog cov chaw nres nkoj 80 thiab 443 qhib rau pej xeem, kos duab teeb tsa rau nginx/nginx-vhost.conf , thiab txhais lub khw rau cov ntawv pov thawj tsim los ua daim ntawv pov thawj tus kheej lossis siv Let's encrypt's certbot hauv /nginx/certificates. Qhov chaw no yuav tsum muaj cov folders rau office.yourdomain.com thiab cloud.yourdomain.com, nrog fullchain1.pem thiab privkey1.pem cov ntaub ntawv nyob rau hauv txhua tus rau daim ntawv pov thawj saw thiab server ntiag tug yuam sij, feem. Koj tuaj yeem nyeem ntxiv txog yuav ua li cas tsim daim ntawv pov thawj tus kheej kos npe ntawm no. www.akadia.com/services/ssh_test_certificate.html (renaming .key thiab .crt rau .pem ua haujlwm yam tsis hloov cov qauv ntaub ntawv rau nginx).

Tom qab ntawd, peb txhais cov ntaub ntawv vhost. Peb thawj zaug txhais tus cwj pwm ntawm chaw nres nkoj 80 raws li ib qho yooj yim redirect rau https, vim peb tsis xav tso cai rau cov tsheb khiav http

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

Peb mam li tsim ob lub virtual servers ntawm chaw nres nkoj 443 rau peb cov kev pabcuam:

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

Kauj Ruam 2: Cov ntaub ntawv pabcuam

Tam sim no peb yuav tsum ntxiv cov ntaub ntawv kev pabcuam ntim rau peb lub docker-compose.yml. Tsis muaj dab tsi tshwj xeeb los teeb tsa ntawm no.

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

Tab sis tsis txhob hnov ​​​​qab txuas lub thawv nginx rau cov ntaub ntawv kev pabcuam:

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

Kauj ruam 3: NextCloud

Ua ntej, ntxiv cov kev pabcuam tshiab:

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

thiab ntxiv qhov txuas rau nginx:

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

Tam sim no nws yog lub sijhawm los thauj cov thawv.

docker-compose up -d  

Tom qab ib pliag, nginx yuav pib redirecting koj mus rau NextCloud pem hauv ntej kawg, uas yog lub neej ntawd configuration nplooj. Koj yuav tsum sau tus username thiab password rau koj thawj tus neeg siv kev tswj hwm thiab cov ntaub ntawv pov thawj koj tau muab rau hauv docker-compose.yml Thaum lub teeb tiav, koj yuav nkag mus. Hauv peb qhov xwm txheej, kev tos yuav luag ib feeb thiab xav tau qhov tshiab ntxiv ntawm nplooj ntawv nkag ua ntej peb tuaj yeem nkag mus rau hauv huab kev pabcuam.

NextCloud kev pab cuam qhov raisTeeb tsa NextCloud + ONLYOFFICE ntawm tib lub server nrog Docker

Kauj ruam 4: Txuas NextCloud thiab ONLYOFFICE

Ntawm cov kauj ruam no, koj yuav tsum tau nruab daim ntawv thov rau NextCloud, uas txuas rau ONLYOFFICE kev ua haujlwm. Cia peb pib nrog daim ntawv thov tswj vaj huam sib luag nyob rau sab xis sab xis ntawm cov ntawv qhia zaub mov. Nrhiav ONLYOFFICE app (hauv Chaw Haujlwm & ntawv nyeem lossis siv kev tshawb nrhiav), nruab thiab qhib nws.

Tom qab ntawd lub taub hau mus rau Chaw ntawm cov ntawv qhia zaub mov nyob rau sab xis sab xis thiab koj yuav tsum pom cov khoom ONLYOFFICE hauv cov ntawv qhia zaub mov sab laug. Mus rau hauv nws. Koj yuav tsum sau npe rau qhov chaw nyob raws li qhia hauv qab no.

Integration daim ntawv thov kev teeb tsaTeeb tsa NextCloud + ONLYOFFICE ntawm tib lub server nrog Docker

Thawj qhov chaw yog siv los txuas rau qee cov ntaub ntawv js thiab css ncaj qha los ntawm daim ntawv thov khiav hauv qhov browser (qhov no yog qhov peb yuav tsum qhib nkag mus rau ONLYOFFICE kev pabcuam los ntawm nginx). Tus yuam sij zais tsis raug siv vim peb ntseeg cov txheej txheem Docker cais ntau dua li tus yuam sij rau kev lees paub tsis tu ncua. Qhov chaw thib peb yog siv los ntawm NextCloud thawv los txuas ncaj qha mus rau ONLYOFFICE API, thiab nws siv lub neej ntawd hostname los ntawm Docker. Zoo, daim teb kawg yog siv kom ONLYOFFICE tuaj yeem thov rov qab mus rau NextCloud API siv qhov chaw nyob IP sab nraud lossis chaw nyob Docker sab hauv yog tias koj siv Docker tes hauj lwm, tab sis qhov no tsis siv rau hauv peb rooj plaub. Xyuas kom tseeb tias koj qhov chaw firewall tso cai rau cov kev sib cuam tshuam no.

Tom qab txuag, NextCloud yuav sim qhov kev sib txuas thiab, yog tias txhua yam yog lawm, yuav qhia koj cov chaw cuam tshuam nrog kev sib koom ua ke - piv txwv li, hom ntaub ntawv twg tuaj yeem hloov kho los ntawm kev sib koom ua ke no. Customize raws li koj pom haum.

Cov kauj ruam kawg: qhov twg mus nrhiav tus editor

Yog tias koj rov qab mus rau koj cov ntaub ntawv huab cia thiab nyem rau ntawm "+" los tsim cov ntaub ntawv tshiab, ces koj yuav muaj kev xaiv tshiab los tsim cov ntaub ntawv, daim ntawv nthuav qhia lossis kev nthuav qhia. Nrog lawv cov kev pab, koj yuav tsim thiab tam sim ntawd tuaj yeem hloov kho cov hom ntaub ntawv siv ONLYOFFICE.

Cov ntawv qhia zaub movTeeb tsa NextCloud + ONLYOFFICE ntawm tib lub server nrog Docker

Ntxiv 1

Cov ntsiab lus tag nrho ntawm docker-compose.yml tuaj yeem pom ntawm no: https://pastebin.com/z1Ti1fTZ

Tau qhov twg los: www.hab.com

Ntxiv ib saib