Mete kanpe NextCloud + ONLYOFFICE sou menm sèvè a ak Docker

Hey Habr! Mwen prezante nan atansyon ou tradiksyon an nan atik la "Enstale NextCloud ak ONLYOFFICE sou yon sèl sèvè ak Docker".

Li difisil pou underestimate valè swit biwo sou entènèt tankou Google Docs ak depo nwaj nan lavi moun ki oryante teknoloji. Teknoloji vin tèlman gaye ke menm Microsoft, ki te domine depi lontan mache aplikasyon biwo a, dènyèman te konsantre sou devlope aplikasyon entènèt Office 365 la ak konvenk itilizatè yo chanje nan yon modèl abònman pou itilize pwòp sèvis yo. Nou envite moun ki enterese nan pwosesis pou enstale ak konfigirasyon pwòp depo yo anba chat.

Kèk tan de sa nou te gade solisyon depo nwaj yo ak swit biwo entènèt sous louvri ki te kapab fasilman deplwaye pou itilize nan yon mikwo-antrepriz. Motivasyon prensipal la pou kenbe tout dokiman sou entènèt se kenbe dokiman yo nan yon minimòm epi aplike bon pratik biznis malgre volim nan ba nan tranzaksyon yo. Bò kote pyès monnen an se ke lwe yon sèvè nwaj pou bay sèvis sa a se mwens sekirite pase estoke li dirèkteman sou lokal antrepriz la, paske ou pa gen okenn mwayen pou odit aksè fizik nan sèvè ou oswa trafik ou. Se poutèt sa, fen-a-fen chifreman ak lojisyèl sous louvri yo tou obligatwa.

Lè nou pran an kont tout enfòmasyon ki disponib sou solisyon sous louvri, nou te jwenn de pwojè aktif (ak komèt nan depo git la pou 12 mwa ki sot pase yo) devlope pou depo nwaj: NextCloud ak OwnCloud, ak sèlman aktif ONLYOFFICE biwo suite. Tou de zouti depo nwaj yo gen apeprè menm fonksyonalite a, epi desizyon an pou chwazi NextCloud te baze sou egzistans prèv ki montre li ka entegre ak ONLYOFFICE pou yon entèraksyon itilizatè konfòtab ak lojisyèl an. Sepandan, lè nou te kòmanse deplwaye sèvis yo, mank de enfòmasyon sou entegre sèvis ki anwo yo te vin aparan. Nou jwenn 3 videyo leson patikilye sou kòman yo entegre:

Okenn nan twa videyo yo pa reponn kesyon enstale sèvis dokiman ONLYOFFICE sou menm sèvè fizik NextCloud ak yon nginx pataje. Olye de sa, yo te itilize teknik separasyon tankou lè l sèvi avèk pò separe pou api sèvis dokiman an. Yon lòt opsyon sijere se te deplwaye yon sèvè separe pou Sèvis Dokiman, manyèlman konfigirasyon egzanp nginx ki te bati nan Sèvis Dokiman pou enstale yon kle aksè (yon kle aksè pre-li te ye ki konfime dwa pou jwenn aksè nan nwaj la done) ak sètifika TLS. Apwòch ki anwo yo te konsidere kòm pa an sekirite epi yo pa efikas ase, kidonk nou entegre NextCloud, ONLYOFFICE ak yon nginx komen, ki separe demann pa non domèn, lè l sèvi avèk docker-compose. Isit la se enfòmasyon etap pa etap sou kòman yo fè li.

Etap 1: veso nginx

Sa a se yon konfigirasyon trè senp, men etap sa a mande pou plis travay la konfigirasyon sèvè proxy ranvèse la. Premye nou te kreye konfigirasyon docker-compose pou nginx:stable imaj la.

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

Sa a kreye yon veso ki gen pò 80 ak 443 ouvè a piblik la, kat konfigirasyon an nan nginx/nginx-vhost.conf , epi li defini yon magazen pou sètifika ki te pwodwi kòm sètifika oto-siyen oswa lè l sèvi avèk Let's encrypt's certbot nan /nginx/certificates. Kote sa a ta dwe genyen dosye pou office.yourdomain.com ak cloud.yourdomain.com, ak dosye fullchain1.pem ak privkey1.pem nan chak pou chèn sètifika ak kle prive sèvè, respektivman. Ou ka li plis enfòmasyon sou fason pou jenere yon sètifika oto-siyen isit la. www.akadia.com/services/ssh_test_certificate.html (chanje non .key ak .crt pou .pem travay san konvèti estrikti dosye a pou nginx).

Apre sa, nou defini fichye vhost la. Nou premye defini konpòtman pò 80 kòm yon senp redireksyon nan https, paske nou pa vle pèmèt okenn trafik http

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

Lè sa a, nou te kreye de sèvè vityèl sou pò 443 pou sèvis nou yo:

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

Etap 2: sèvis dokiman

Koulye a, nou bezwen ajoute veso sèvis dokiman an nan docker-compose.yml nou an. Pa gen anyen espesyal pou configure isit la.

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

Men, pa bliye konekte veso nginx a ak sèvis dokiman an:

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

Etap 3: NextCloud

Premyèman, ajoute nouvo sèvis:

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

epi ajoute yon lyen nan nginx:

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

Koulye a, li lè yo chaje resipyan yo.

docker-compose up -d  

Apre yon ti tan, nginx pral kòmanse redireksyon ou nan fen devan NextCloud, ki se paj konfigirasyon default la. W ap bezwen antre non itilizatè a ak modpas pou premye itilizatè administratif ou a ak kalifikasyon baz done ou bay nan docker-compose.yml Yon fwa konfigirasyon an fini, ou pral kapab konekte. Nan ka nou an, rete tann nan te pran prèske yon minit epi li te mande yon rafrechisman adisyonèl nan paj la konekte anvan nou te kapab konekte nan sèvis nwaj la.

NextCloud sèvis anviwònman fenètMete kanpe NextCloud + ONLYOFFICE sou menm sèvè a ak Docker

Etap 4: Konekte NextCloud ak ONLYOFFICE

Nan etap sa a, w ap bezwen enstale aplikasyon an pou NextCloud, ki konekte fonksyonalite ONLYOFFICE la. Ann kòmanse ak panèl kontwòl aplikasyon an nan kwen anwo dwat nan meni an. Jwenn aplikasyon ONLYOFFICE (anba Biwo & tèks oswa lè l sèvi avèk rechèch), enstale li ak aktive li.

Apre sa, ale nan Anviwònman atravè meni an nan kwen an tèt dwat epi ou ta dwe jwenn atik la ONLYOFFICE nan meni gòch la. Antre ladanl. W ap bezwen anrejistre adrès yo jan sa endike anba a.

Anviwònman aplikasyon entegrasyonMete kanpe NextCloud + ONLYOFFICE sou menm sèvè a ak Docker

Premye adrès la itilize pou lyen ak kèk fichye js ak css ki sòti dirèkteman nan aplikasyon an k ap kouri nan navigatè a (sa a se sa nou bezwen pou louvri aksè a sèvis ONLYOFFICE atravè nginx). Kle sekrè a pa itilize paske nou fè plis konfyans nan kouch izolasyon Docker pase kle otantifikasyon ki pèsistan an. Twazyèm adrès la itilize pa veso NextCloud la pou konekte dirèkteman ak API ONLYOFFICE, epi li itilize non host entèn defo ki soti nan Docker. Oke, yo itilize dènye jaden an pou ONLYOFFICE ka fè demann tounen nan NextCloud API lè l sèvi avèk yon adrès IP ekstèn oswa yon adrès Docker entèn si w ap itilize rezo Docker, men sa a pa itilize nan ka nou an. Asire w ke paramèt pare-feu ou pèmèt kalite entèraksyon sa yo.

Apre ou fin sove, NextCloud pral teste koneksyon an epi, si tout bagay kòrèk, pral montre w paramèt ki gen rapò ak entegrasyon an - pou egzanp, ki kalite fichye ka modifye pa entegrasyon sa a. Customize jan ou wè anfòm.

Etap final la: ki kote yo jwenn editè a

Si w retounen nan dosye depo nwaj ou yo epi klike sou "+" pou kreye yon nouvo dosye, Lè sa a, w ap gen yon nouvo opsyon pou kreye yon dokiman, yon calcul oswa yon prezantasyon. Avèk èd yo, ou pral kreye epi imedyatman kapab edite kalite fichye sa yo lè l sèvi avèk ONLYOFFICE.

Meni pou kreye dosyeMete kanpe NextCloud + ONLYOFFICE sou menm sèvè a ak Docker

Sipleman 1

Ou ka jwenn kontni konplè docker-compose.yml isit la: https://pastebin.com/z1Ti1fTZ

Sous: www.habr.com

Add nouvo kòmantè