NextCloud + ONLYOFFICE ynstelle op deselde server mei Docker

Hallo, Habr! Ik presintearje jo oandacht de oersetting fan it artikel "NextCloud en ONLYOFFICE ynstelle op ien server mei Docker".

It is lestich om de foardielen fan online kantoarsuites lykas Google Docs en wolk opslach te ûnderskatten yn it libben fan tech-oriïntearre minsken. Technologies binne sa wiidferspraat wurden dat sels Microsoft, dy't de merk foar kantoarapplikaasjes lang dominearre hat, har koartlyn rjochte op it ûntwikkeljen fan 'e Office 365-webapplikaasje en it oertsjûgjen fan brûkers om te wikseljen nei in abonnemintsmodel foar it brûken fan har eigen tsjinsten. Wy noegje dyjingen dy't ynteressearre binne yn it proses fan it ynstallearjen en konfigurearjen fan har eigen opslach ûnder kat.

In skoft lyn binne wy ​​bekend wurden mei oplossingen foar wolk opslach en iepen boarne kantoarwebapplikaasjepakketten dy't frij maklik kinne wurde ymplementearre foar gebrûk yn in mikro-ûndernimming. De wichtichste motivaasje foar it opslaan fan alle dokumintaasje online is om it folume fan papierwurk ta in minimum te ferminderjen, en positive saaklike praktiken út te fieren, nettsjinsteande it lytse folume fan transaksjes. De oare kant fan 'e munt is dat it hieren fan in wolktsjinner om dizze tsjinst te leverjen minder feilich is as it direkt opslaan op it terrein fan' e ûndernimming, om't jo gjin middel hawwe om fysike tagong ta jo server of ferkear te kontrolearjen. Dêrom binne end-to-end fersifering en iepen boarne software ek fereaske.

Mei rekkening mei alle beskikbere ynformaasje oer oplossings foar iepen boarnen, fûnen wy twa aktive projekten (mei commits yn it git-repository yn 'e ôfrûne 12 moannen) ûntwikkele foar wolkopslach: NextCloud en OwnCloud, en de ienige aktive kantoarsuite ONLYOFFICE. Beide ark foar wolkopslach hawwe sawat deselde funksjonaliteit, en it beslút om NextCloud te kiezen wie basearre op bewiis dat it kin wurde yntegrearre mei ONLYOFFICE foar in noflike brûkersynteraksje mei de software. Doe't wy lykwols begûnen de tsjinsten yn te setten, waard in gebrek oan ynformaasje oer it yntegrearjen fan de boppesteande tsjinsten dúdlik. Wy hawwe 3 trainingsfideo's fûn oer hoe't jo kinne yntegrearje:

Gjin fan 'e trije fideo's beantwurde de fraach fan it ynstallearjen fan de ONLYOFFICE-dokuminttsjinst op deselde fysike server as NextCloud mei in dielde nginx. Ynstee brûkten se skiedingstechnologyen lykas it brûken fan aparte havens foar de dokuminttsjinst API. In oare foarstelde opsje wie om in aparte tsjinner foar de dokuminttsjinst yn te setten mei manuele konfiguraasje fan 'e nginx-eksimplaar ynboud yn' e dokuminttsjinst om in tagongskaai te ynstallearjen (in foarôf bekende tagongskaai dy't it rjocht befestiget om tagong te krijen ta de gegevenswolk) en TLS-sertifikaten . De boppesteande oanpak waarden beskôge as ûnfeilich en net effektyf genôch, dus wy yntegrearre NextCloud, ONLYOFFICE en de mienskiplike nginx, dy't fersiken skiedt troch domeinnammen, mei help fan docker-compose. Hjir is stap-foar-stap ynformaasje oer hoe't jo dit dwaan.

Stap 1: nginx container

Dit is in heul ienfâldige opset, mar dizze stap fereasket it measte wurk om de reverse proxy-tsjinner te konfigurearjen. Earst hawwe wy in docker-compose-konfiguraasje makke foar de nginx: stabile ôfbylding.

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

Dit makket in kontener mei havens 80 en 443 iepen foar iepenbiere tagong, mapt de konfiguraasje nei nginx/nginx-vhost.conf en definiearret in winkel foar sertifikaten generearre as sels-ûndertekene sertifikaten of mei help fan Let's fersiferje's Certbot yn /nginx/sertifikaten. Dizze lokaasje moat mappen befetsje foar office.yourdomain.com en cloud.yourdomain.com mei triemmen fullchain1.pem en privkey1.pem yn elk foar respektivelik de sertifikaatketen en tsjinner priveekaai. Jo kinne hjir mear lêze oer hoe't jo in sels-ûndertekene sertifikaat kinne generearje www.akadia.com/services/ssh_test_certificate.html (de namme fan .key en .crt nei .pem wurket sûnder de triemstruktuer foar nginx te konvertearjen).

Dêrnei definieare wy it vhost-bestân. Earst definiearje wy it gedrach fan poarte 80 as in ienfâldige trochferwizing nei https, om't wy wolle gjin http-ferkear tastean

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

Wy makken doe twa firtuele servers op poarte 443 foar ús tsjinsten:

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

Stap 2: dokumint tsjinst

No moatte wy de kontener foar dokuminttsjinst tafoegje oan ús docker-compose.yml. D'r is hjir net folle te konfigurearjen.

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

Mar ferjit net de nginx-container te assosjearjen mei de dokuminttsjinst:

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

Stap 3: NextCloud

Earst foegje wy nije tsjinsten ta:

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

en foegje in keppeling ta oan nginx:

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

No is it tiid om de konteners te laden.

docker-compose up -d  

Nei in skoft sil nginx begjinne om jo troch te lieden nei de NextCloud-frontend, dat is standert de konfiguraasjeside. Jo moatte de brûkersnamme en wachtwurd ynfiere foar jo earste admin-brûker en de databankbewizen dy't jo hawwe levere yn docker-compose.yml As de opset klear is, kinne jo ynlogge. Yn ús gefal duorre it wachtsjen hast in minút en easke in ekstra ferfarsking fan 'e oanmeldside foardat wy koene oanmelde by de wolktsjinst.

NextCloud-tsjinstynstellingsfinsterNextCloud + ONLYOFFICE ynstelle op deselde server mei Docker

Stap 4: Ferbine NextCloud en ONLYOFFICE

Op dizze stap moatte jo in applikaasje foar NextCloud ynstallearje, dy't de ONLYOFFICE-funksjonaliteit ferbynt. Litte wy begjinne mei it applikaasjekontrôlepaniel yn 'e rjochter boppeste hoeke fan it menu. Fyn de ONLYOFFICE-applikaasje (yn 'e seksje "Kantoor en tekst" as mei sykjen), ynstallearje en aktivearje it.

Gean dan nei Ynstellings fia it menu yn 'e rjochter boppeste hoeke en jo moatte it item ONLYOFFICE fine yn it linkermenu. Fier it yn. Jo moatte de adressen ynfiere lykas hjirûnder oanjûn.

Yntegraasje applikaasje ynstellingsNextCloud + ONLYOFFICE ynstelle op deselde server mei Docker

It earste adres wurdt brûkt om te keppeljen nei guon js- en css-bestannen direkt fan 'e applikaasje dy't yn' e browser rint (dit is wat wy moatte iepenje tagong ta de ONLYOFFICE-tsjinst fia nginx). De geheime kaai wurdt net brûkt om't wy de Docker-isolaasjelaach mear fertrouwe as de oanhâldende autentikaasjekaai. It tredde adres wurdt brûkt troch de NextCloud-kontener om direkt te ferbinen mei de ONLYOFFICE API, en it brûkt de standert ynterne hostnamme fan Docker. No, it lêste fjild wurdt brûkt sadat ONLYOFFICE oanfragen werom kin meitsje nei de NextCloud API mei in ekstern IP-adres as in ynterne Docker-adres as jo Docker-netwurken brûke, mar yn ús gefal wurdt dit net brûkt. Soargje derfoar dat jo firewall-ynstellingen dizze soarten ynteraksjes tastean.

Ienris bewarre, sil NextCloud de ferbining testen en, as alles goed is, jo ynstellingen sjen litte relatearre oan de yntegraasje - bygelyks hokker soarten bestannen kinne wurde bewurke troch dizze yntegraasje. Konfigurearje as jo goed fine.

De lêste stap: wêr te sykjen foar de bewurker

As jo ​​weromgean nei jo wolkopslachmappen en klikje op de "+" om in nij bestân te meitsjen, sille jo in nije opsje krije om in dokumint, spreadsheet of presintaasje te meitsjen. Mei har help sille jo dizze soarten bestannen oanmeitsje en fuortendaliks kinne bewurkje mei ONLYOFFICE.

Triem oanmeitsjen menuNextCloud + ONLYOFFICE ynstelle op deselde server mei Docker

Oanfolling 1

De folsleine ynhâld fan docker-compose.yml is hjir te finen: https://pastebin.com/z1Ti1fTZ

Boarne: www.habr.com

Add a comment