Ṣiṣeto NextCloud + ONLYOFFICE lori olupin kanna pẹlu Docker

Hey Habr! Mo ṣafihan itumọ nkan naa si akiyesi rẹ "Ṣeto NextCloud ati ONLYOFFICE lori olupin kan pẹlu Docker".

O nira lati ṣe aibikita iye ti awọn suites ọfiisi ori ayelujara bii Google Docs ati ibi ipamọ awọsanma ni awọn igbesi aye ti awọn eniyan ti o ni imọ-ẹrọ. Imọ-ẹrọ ti di ibigbogbo pe paapaa Microsoft, eyiti o ti jẹ gaba lori ọja awọn ohun elo ọfiisi fun igba pipẹ, ti dojukọ laipẹ lori idagbasoke ohun elo wẹẹbu Office 365 ati yiyipada awọn olumulo lati yipada si awoṣe ṣiṣe alabapin fun lilo awọn iṣẹ tiwọn. A pe awọn ti o nifẹ si ilana fifi sori ẹrọ ati tunto ibi ipamọ tiwọn labẹ ologbo.

Ni akoko diẹ sẹyin a wo awọn solusan ibi ipamọ awọsanma ati awọn suites ọfiisi oju opo wẹẹbu orisun ṣiṣi ti o le ni irọrun gbe lọ fun lilo ninu ile-iṣẹ kekere kan. Iwuri akọkọ fun titọju gbogbo awọn iwe lori ayelujara ni lati tọju awọn iwe kikọ si o kere ju ati ṣe awọn iṣe iṣowo to dara laibikita iwọn kekere ti awọn iṣowo. Apa keji ti owo naa ni pe yiyalo olupin awọsanma lati pese iṣẹ yii ko ni aabo ju fifipamọ taara si agbegbe ile-iṣẹ, nitori o ko ni ọna eyikeyi ti iṣatunṣe iraye si ti ara si olupin tabi ijabọ. Nitorinaa, fifi ẹnọ kọ nkan ipari-si-opin ati sọfitiwia orisun ṣiṣi tun nilo.

Ni akiyesi gbogbo alaye ti o wa nipa awọn solusan orisun ṣiṣi, a rii awọn iṣẹ akanṣe meji ti nṣiṣe lọwọ (pẹlu awọn adehun ni ibi ipamọ git fun awọn oṣu 12 sẹhin) ti dagbasoke fun ibi ipamọ awọsanma: NextCloud ati OwnCloud, ati suite ọfiisi ONLYOFFICE ti nṣiṣe lọwọ nikan. Awọn irinṣẹ ibi ipamọ awọsanma mejeeji ni aijọju iṣẹ ṣiṣe kanna, ati pe ipinnu lati yan NextCloud da lori aye ti ẹri pe o le ṣepọ pẹlu ONLYOFFICE fun ibaraenisepo olumulo itunu pẹlu sọfitiwia naa. Sibẹsibẹ, nigba ti a bẹrẹ gbigbe awọn iṣẹ naa lọ, aini alaye lori iṣọpọ awọn iṣẹ ti o wa loke han gbangba. A rii awọn fidio ikẹkọ 3 lori bii o ṣe le ṣepọ:

Ko si ọkan ninu awọn fidio mẹta ti o dahun ibeere ti fifi sori ẹrọ iṣẹ iwe ONLYOFFICE sori olupin ti ara kanna bi NextCloud pẹlu nginx ti o pin. Dipo, wọn lo awọn ilana iyapa gẹgẹbi lilo awọn ebute oko oju omi lọtọ fun api iṣẹ iwe. Imọran miiran ni lati ran olupin lọtọ fun Iṣẹ Iwe-ipamọ, tunto pẹlu ọwọ ni atunto apẹẹrẹ nginx ti a ṣe sinu Iṣẹ Iwe-ipamọ lati fi sori ẹrọ bọtini iwọle kan (bọtini iwọle ti a ti mọ tẹlẹ ti o jẹrisi ẹtọ lati wọle si awọsanma data) ati awọn iwe-ẹri TLS. Awọn ọna ti o wa loke ni a gba pe ko ni aabo ati pe ko munadoko to, nitorinaa a ṣepọ NextCloud, ONLYOFFICE ati nginx ti o wọpọ ti o yapa awọn ibeere nipasẹ awọn orukọ ìkápá nipa lilo docker-compose. Eyi ni alaye igbese nipa igbese lori bi o ṣe le ṣe.

Igbesẹ 1: apoti nginx

Eyi jẹ iṣeto ti o rọrun pupọ, ṣugbọn igbesẹ yii nilo iṣẹ pupọ julọ lati tunto olupin aṣoju yiyipada. A kọkọ ṣẹda iṣeto docker-compose fun nginx: aworan iduroṣinṣin.

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

Eyi ṣẹda eiyan kan pẹlu awọn ibudo 80 ati 443 ti o ṣii si ita, maapu iṣeto ni nginx/nginx-vhost.conf, ati asọye ile-itaja kan fun awọn iwe-ẹri ti ipilẹṣẹ bi awọn iwe-ẹri ti o fowo si tabi lilo Let's encrypt's certbot in /nginx/certificates. Ipo yii yẹ ki o ni awọn folda fun office.yourdomain.com ati cloud.yourdomain.com, pẹlu fullchain1.pem ati awọn faili privkey1.pem ni ọkọọkan fun ẹwọn ijẹrisi ati bọtini ikọkọ olupin, lẹsẹsẹ. O le ka diẹ sii nipa bi o ṣe le ṣe ipilẹṣẹ ijẹrisi ti ara ẹni nibi. www.akadia.com/services/ssh_test_certificate.html (yiyipada .bọtini ati .crt si .pem ṣiṣẹ laisi yiyipada eto faili fun nginx).

Lẹhin iyẹn, a ṣalaye faili vhost naa. A kọkọ ṣalaye ihuwasi ti ibudo 80 bi àtúnjúwe ti o rọrun si https, nitori a ko fẹ lati gba eyikeyi http ijabọ

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

Lẹhinna a ṣẹda awọn olupin foju meji lori ibudo 443 fun awọn iṣẹ wa:

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

Igbesẹ 2: iṣẹ iwe aṣẹ

Bayi a nilo lati ṣafikun eiyan iṣẹ iwe si docker-compose.yml wa. Ko si ohun pataki lati tunto nibi.

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

Ṣugbọn maṣe gbagbe lati sopọ apoti nginx si iṣẹ iwe:

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

Igbesẹ 3: NextCloud

Ni akọkọ, ṣafikun awọn iṣẹ tuntun:

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

ati fi ọna asopọ kan kun si nginx:

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

Bayi o to akoko lati gbe awọn apoti naa.

docker-compose up -d  

Lẹhin igba diẹ, nginx yoo bẹrẹ atunṣe ọ si opin iwaju NextCloud, eyiti o jẹ oju-iwe iṣeto aiyipada. Iwọ yoo nilo lati tẹ orukọ olumulo ati ọrọ igbaniwọle sii fun olumulo alabojuto akọkọ rẹ ati awọn iwe eri data data ti o pese ni docker-compose.yml Ni kete ti iṣeto ba ti pari, iwọ yoo ni anfani lati buwolu wọle. Ninu ọran tiwa, idaduro naa gba to iṣẹju kan ati pe o nilo afikun isọdọtun ti oju-iwe iwọle ṣaaju ki a to wọle si iṣẹ awọsanma.

Window awọn eto iṣẹ NextCloudṢiṣeto NextCloud + ONLYOFFICE lori olupin kanna pẹlu Docker

Igbesẹ 4: Nsopọ NextCloud ati NIKAN

Ni igbesẹ yii, iwọ yoo nilo lati fi ohun elo sori ẹrọ fun NextCloud, eyiti o so iṣẹ ṣiṣe NIKAN. Jẹ ki a bẹrẹ pẹlu nronu iṣakoso ohun elo ni igun apa ọtun oke ti akojọ aṣayan. Wa ohun elo ONLYOFFICE (labẹ Office & ọrọ tabi lilo wiwa), fi sii ki o muu ṣiṣẹ.

Lẹhin ti ori si Eto nipasẹ akojọ aṣayan ni igun apa ọtun oke ati pe o yẹ ki o wa nkan ONLYOFFICE ni akojọ osi. Lọ sinu rẹ. Iwọ yoo nilo lati forukọsilẹ awọn adirẹsi bi a ti tọka si ni isalẹ.

Awọn eto ohun elo IntegrationṢiṣeto NextCloud + ONLYOFFICE lori olupin kanna pẹlu Docker

Adirẹsi akọkọ ni a lo lati sopọ si diẹ ninu awọn js ati awọn faili css taara lati ohun elo ti nṣiṣẹ ni ẹrọ aṣawakiri (eyi ni ohun ti a nilo lati ṣii iraye si iṣẹ ONLYOFFICE nipasẹ nginx). Ko ṣe lo bọtini aṣiri nitori a gbẹkẹle Layer ipinya Docker diẹ sii ju bọtini ijẹrisi itẹramọṣẹ lọ. Adirẹsi kẹta jẹ lilo nipasẹ apoti NextCloud lati sopọ taara si ONLYOFFICE API, ati pe o nlo orukọ olupin inu aiyipada lati Docker. O dara, aaye ti o kẹhin ni a lo ki ONLYOFFICE le ṣe awọn ibeere pada si NextCloud API nipa lilo adiresi IP ita tabi adirẹsi Docker inu ti o ba nlo awọn nẹtiwọọki Docker, ṣugbọn eyi ko lo ninu ọran wa. Rii daju pe awọn eto ogiriina rẹ gba iru awọn ibaraẹnisọrọ wọnyi laaye.

Lẹhin fifipamọ, NextCloud yoo ṣe idanwo asopọ ati pe, ti ohun gbogbo ba tọ, yoo fihan ọ awọn eto ti o ni ibatan si isọpọ - fun apẹẹrẹ, iru awọn faili wo ni o le ṣatunkọ nipasẹ iṣọpọ yii. Ṣe akanṣe bi o ṣe rii pe o yẹ.

Igbesẹ ikẹhin: nibo ni lati wa olootu

Ti o ba pada si awọn folda ibi ipamọ awọsanma rẹ ki o tẹ “+” lati ṣẹda faili tuntun, lẹhinna iwọ yoo ni aṣayan tuntun lati ṣẹda iwe-ipamọ, iwe kaakiri tabi igbejade. Pẹlu iranlọwọ wọn, iwọ yoo ṣẹda ati lẹsẹkẹsẹ ni anfani lati satunkọ awọn iru awọn faili ni lilo NIKAN.

Akojọ ẹda failiṢiṣeto NextCloud + ONLYOFFICE lori olupin kanna pẹlu Docker

Àfikún 1

Ni kikun akoonu ti docker-compose.yml le ṣee ri nibi: https://pastebin.com/z1Ti1fTZ

orisun: www.habr.com

Fi ọrọìwòye kun