Sefydlu NextCloud + ONLYOFFICE ar yr un gweinydd â Docker

Hei Habr! Cyflwynaf i'ch sylw gyfieithiad yr erthygl "Sefydlu NextCloud ac ONLYOFFICE ar weinydd sengl gyda Docker".

Mae'n anodd tanamcangyfrif gwerth ystafelloedd swyddfa ar-lein fel Google Docs a storfa cwmwl ym mywydau pobl sy'n canolbwyntio ar dechnoleg. Mae technoleg wedi dod mor gyffredin fel bod hyd yn oed Microsoft, sydd wedi bod yn flaenllaw yn y farchnad cymwysiadau swyddfa ers amser maith, wedi canolbwyntio'n ddiweddar ar ddatblygu cymhwysiad gwe Office 365 a pherswadio defnyddwyr i newid i fodel tanysgrifio ar gyfer defnyddio eu gwasanaethau eu hunain. Rydym yn gwahodd y rhai sydd â diddordeb yn y broses o osod a ffurfweddu eu storfa eu hunain o dan cath.

Beth amser yn ôl buom yn edrych ar ddatrysiadau storio cwmwl ac ystafelloedd swyddfa gwe ffynhonnell agored y gellid yn hawdd eu defnyddio mewn micro-fenter. Y prif gymhelliant dros gadw'r holl ddogfennaeth ar-lein yw cadw gwaith papur i'r lleiafswm a gweithredu arferion busnes da er gwaethaf y nifer isel o drafodion. Ochr fflip y darn arian yw bod rhentu gweinydd cwmwl i ddarparu'r gwasanaeth hwn yn llai diogel na'i storio'n uniongyrchol ar safle'r fenter, gan nad oes gennych unrhyw fodd o archwilio mynediad corfforol i'ch gweinydd neu draffig. Felly, mae angen amgryptio pen-i-ddiwedd a meddalwedd ffynhonnell agored hefyd.

Gan ystyried yr holl wybodaeth sydd ar gael am atebion ffynhonnell agored, canfuom ddau brosiect gweithredol (gydag ymrwymiadau yn y storfa git am y 12 mis diwethaf) a ddatblygwyd ar gyfer storio cwmwl: NextCloud ac OwnCloud, a'r unig gyfres swyddfa weithredol ONLYOFFICE. Mae gan y ddau offer storio cwmwl yr un ymarferoldeb yn fras, ac roedd y penderfyniad i ddewis NextCloud yn seiliedig ar fodolaeth tystiolaeth y gellir ei integreiddio ag ONLYOFFICE ar gyfer rhyngweithio defnyddiwr cyfforddus gyda'r meddalwedd. Fodd bynnag, pan ddechreuasom ddefnyddio'r gwasanaethau, daeth y diffyg gwybodaeth am integreiddio'r gwasanaethau uchod i'r amlwg. Gwelsom 3 fideo tiwtorial ar sut i integreiddio:

Ni atebodd yr un o'r tri fideo y cwestiwn o osod gwasanaeth dogfen ONLYOFFICE ar yr un gweinydd corfforol â NextCloud gyda nginx a rennir. Yn lle hynny, fe wnaethant ddefnyddio technegau gwahanu fel defnyddio porthladdoedd ar wahân ar gyfer yr ap gwasanaeth dogfennau. Awgrym arall oedd defnyddio gweinydd ar wahân ar gyfer Gwasanaeth Dogfennau, gan ffurfweddu â llaw yr enghraifft nginx sydd wedi'i gynnwys yn y Gwasanaeth Dogfennau i osod allwedd mynediad (allwedd mynediad hysbys sy'n cadarnhau'r hawl i gael mynediad i'r cwmwl data) a thystysgrifau TLS. Ystyriwyd nad oedd y dulliau uchod yn ddiogel ac nad oeddent yn ddigon effeithiol, felly fe wnaethom integreiddio NextCloud, ONLYOFFICE a nginx cyffredin sy'n gwahanu ceisiadau yn ôl enwau parth gan ddefnyddio docker-compose. Dyma wybodaeth cam wrth gam ar sut i wneud hynny.

Cam 1: cynhwysydd nginx

Mae hwn yn osodiad syml iawn, ond mae'r cam hwn yn gofyn am y gwaith mwyaf i ffurfweddu'r gweinydd dirprwy wrth gefn. Yn gyntaf fe wnaethon ni greu'r cyfluniad cyfansoddi docwr ar gyfer y nginx: delwedd sefydlog.

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

Mae hyn yn creu cynhwysydd gyda phorthladdoedd 80 a 443 yn agored i'r cyhoedd, yn mapio'r ffurfweddiad i nginx/nginx-vhost.conf , ac yn diffinio storfa ar gyfer tystysgrifau a gynhyrchir fel tystysgrifau hunan-lofnodedig neu gan ddefnyddio certbot amgryptio Let's in / nginx/certificates. Dylai'r lleoliad hwn gynnwys ffolderi ar gyfer office.yourdomain.com a cloud.yourdomain.com, gyda ffeiliau fullchain1.pem a privkey1.pem ym mhob un ar gyfer cadwyn y dystysgrif ac allwedd breifat y gweinydd, yn y drefn honno. Gallwch ddarllen mwy am sut i gynhyrchu tystysgrif hunan-lofnodedig yma. www.akadia.com/services/ssh_test_certificate.html (mae ailenwi .key a .crt i .pem yn gweithio heb drosi'r strwythur ffeil ar gyfer nginx).

Ar ôl hynny, fe wnaethom ddiffinio'r ffeil vhost. Yn gyntaf, rydym yn diffinio ymddygiad porthladd 80 fel ailgyfeiriad syml i https, oherwydd nid ydym am ganiatáu unrhyw draffig http

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

Yna fe wnaethon ni greu dau weinydd rhithwir ar borthladd 443 ar gyfer ein gwasanaethau:

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

Cam 2: gwasanaeth dogfennau

Nawr mae angen inni ychwanegu'r cynhwysydd gwasanaeth dogfen i'n docker-compose.yml. Nid oes dim byd arbennig i'w ffurfweddu yma.

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

Ond peidiwch ag anghofio cysylltu'r cynhwysydd nginx â'r gwasanaeth dogfennau:

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

Cam 3: NextCloud

Yn gyntaf, ychwanegwch wasanaethau newydd:

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

ac ychwanegu dolen i nginx:

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

Nawr mae'n bryd llwytho'r cynwysyddion.

docker-compose up -d  

Ar ôl ychydig, bydd nginx yn dechrau eich ailgyfeirio i ben blaen NextCloud, sef y dudalen ffurfweddu ddiofyn. Bydd angen i chi nodi enw defnyddiwr a chyfrinair eich defnyddiwr gweinyddol cyntaf a manylion y gronfa ddata a ddarparwyd gennych yn docker-compose.yml Unwaith y bydd y gosodiad wedi'i gwblhau, byddwch yn gallu mewngofnodi. Yn ein hachos ni, cymerodd yr aros bron i funud ac roedd angen adnewyddiad ychwanegol o'r dudalen mewngofnodi cyn y gallem fewngofnodi i'r gwasanaeth cwmwl.

Ffenestr gosodiadau gwasanaeth NextCloudSefydlu NextCloud + ONLYOFFICE ar yr un gweinydd â Docker

Cam 4: Cysylltu NextCloud ac ONLYOFFICE

Ar y cam hwn, bydd angen i chi osod y cymhwysiad ar gyfer NextCloud, sy'n cysylltu ymarferoldeb ONLYOFFICE. Gadewch i ni ddechrau gyda'r panel rheoli cais yng nghornel dde uchaf y ddewislen. Dewch o hyd i'r ap ONLYOFFICE (o dan Office & text neu ddefnyddio chwiliad), ei osod a'i actifadu.

Ar ôl hynny ewch i Gosodiadau trwy'r ddewislen yn y gornel dde uchaf a dylech ddod o hyd i'r eitem ONLYOFFICE yn y ddewislen chwith. Ewch i mewn iddo. Bydd angen i chi gofrestru'r cyfeiriadau a nodir isod.

Gosodiadau cymhwysiad integreiddioSefydlu NextCloud + ONLYOFFICE ar yr un gweinydd â Docker

Defnyddir y cyfeiriad cyntaf i gysylltu â rhai ffeiliau js a css yn uniongyrchol o'r rhaglen sy'n rhedeg yn y porwr (dyma sydd ei angen arnom i agor mynediad i wasanaeth ONLYOFFICE trwy nginx). Ni ddefnyddir yr allwedd gyfrinachol oherwydd ein bod yn ymddiried yn haen ynysu Docker yn fwy na'r allwedd dilysu parhaus. Defnyddir y trydydd cyfeiriad gan y cynhwysydd NextCloud i gysylltu'n uniongyrchol â'r API ONLYOFFICE, ac mae'n defnyddio'r enw gwesteiwr mewnol rhagosodedig o Docker. Wel, defnyddir y maes olaf fel y gall ONLYOFFICE wneud ceisiadau yn ôl i'r API NextCloud gan ddefnyddio cyfeiriad IP allanol neu gyfeiriad Docker mewnol os ydych chi'n defnyddio rhwydweithiau Docker, ond ni ddefnyddir hyn yn ein hachos ni. Sicrhewch fod eich gosodiadau wal dân yn caniatáu'r mathau hyn o ryngweithio.

Ar ôl arbed, bydd NextCloud yn profi'r cysylltiad ac, os yw popeth yn gywir, bydd yn dangos gosodiadau sy'n ymwneud â'r integreiddio i chi - er enghraifft, pa fathau o ffeiliau y gellir eu golygu gan yr integreiddio hwn. Addaswch fel y gwelwch yn dda.

Y cam olaf: ble i ddod o hyd i'r golygydd

Os ewch yn ôl i'ch ffolderi storio cwmwl a chlicio ar y "+" i greu ffeil newydd, yna bydd gennych opsiwn newydd i greu dogfen, taenlen neu gyflwyniad. Gyda'u cymorth, byddwch yn creu ac yn gallu golygu'r mathau hyn o ffeiliau ar unwaith gan ddefnyddio ONLYOFFICE.

Dewislen creu ffeilSefydlu NextCloud + ONLYOFFICE ar yr un gweinydd â Docker

Atodiad 1

Mae cynnwys llawn docker-compose.yml i'w weld yma: https://pastebin.com/z1Ti1fTZ

Ffynhonnell: hab.com

Ychwanegu sylw