Agordante NextCloud + ONLYOFFICE sur la sama servilo kun Docker

Hej Habr! Mi prezentas al via atento la tradukon de la artikolo "Agordi NextCloud kaj ONLYOFFICE sur ununura servilo kun Docker".

Estas malfacile subtaksi la valoron de interretaj oficejaj serioj kiel Google Docs kaj nuba stokado en la vivo de teknologi-orientitaj homoj. Teknologio tiom disvastiĝis, ke eĉ Mikrosofto, kiu longe regis la oficejan aplikaĵon, lastatempe koncentriĝis pri evoluigado de la retejo de Office 365 kaj persvadado de uzantoj ŝanĝi al abonmodelo por uzi siajn proprajn servojn. Ni invitas tiujn, kiuj interesiĝas pri la procezo de instalo kaj agordo de sia propra stokado sub kato.

Antaŭ iom da tempo ni rigardis nubajn stokadsolvojn kaj malfermfontajn retajn oficejajn arojn kiuj povus facile esti deplojitaj por uzo en mikro-entrepreno. La ĉefa instigo por konservi la tutan dokumentaron interrete estas minimumigi paperojn kaj efektivigi bonajn komercajn praktikojn malgraŭ la malalta volumo de transakcioj. La alia flanko de la monero estas, ke luado de nuba servilo por provizi ĉi tiun servon estas malpli sekura ol stoki ĝin rekte en la loko de la entrepreno, ĉar vi ne havas ajnan rimedon por kontroli fizikan aliron al via servilo aŭ trafiko. Tial, fin-al-fina ĉifrado kaj malfermfonta programaro ankaŭ estas postulataj.

Konsiderante ĉiujn disponeblajn informojn pri malfermfontaj solvoj, ni trovis du aktivajn projektojn (kun kommitaĵoj en la git-deponejo dum la pasintaj 12 monatoj) evoluigitaj por nuba stokado: NextCloud kaj OwnCloud, kaj la sola aktiva oficeja aro de ONLYOFFICE. Ambaŭ nuba stokado iloj havas proksimume la saman funkciecon, kaj la decido elekti NextCloud baziĝis sur la ekzisto de indico ke ĝi povas esti integrita kun ONLYOFFICE por komforta uzantinterago kun la programaro. Tamen, kiam ni komencis disfaldi la servojn, evidentiĝis la manko de informoj pri integriĝo de ĉi-supraj servoj. Ni trovis 3 lernilojn pri kiel integri:

Neniu el la tri filmetoj respondis la demandon pri instalo de la dokumentservo de ONLYOFFICE sur la sama fizika servilo kiel NextCloud kun komuna nginx. Anstataŭe, ili uzis apartigteknikojn kiel ekzemple uzado de apartaj havenoj por la dokumenta servo api. Alia sugesto estis disfaldi apartan servilon por Dokumentservo, mane agordante la nginx-instancon enkonstruitan en Dokumentservon por instali alirŝlosilon (antaŭkonata alirŝlosilo, kiu konfirmas la rajton aliri la datumnubon) kaj TLS-atestilojn. La supraj aliroj estis konsideritaj ne sekuraj kaj ne sufiĉe efikaj, do ni integris NextCloud, ONLYOFFICE kaj komunan nginx, kiu apartigas petojn per domajnaj nomoj uzante docker-compose. Jen paŝo post paŝo informoj pri kiel fari ĝin.

Paŝo 1: nginx-ujo

Ĉi tio estas tre simpla agordo, sed ĉi tiu paŝo postulas plej multe da laboro por agordi la inversan prokurilon. Ni unue kreis la docker-compose agordon por la nginx:stable bildo.

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

Ĉi tio kreas ujon kun havenoj 80 kaj 443 malfermitaj al publiko, mapas la agordon al nginx/nginx-vhost.conf , kaj difinas butikon por atestiloj generitaj kiel memsubskribitaj atestiloj aŭ uzante la certbot de Ni ĉifri en /nginx/certificates. Ĉi tiu loko devus enhavi dosierujojn por office.yourdomain.com kaj cloud.yourdomain.com, kun fullchain1.pem kaj privkey1.pem dosieroj en ĉiu por la atestilĉeno kaj servila privata ŝlosilo, respektive. Vi povas legi pli pri kiel generi memsubskribitan atestilon ĉi tie. www.akadia.com/services/ssh_test_certificate.html (Renomi .key kaj .crt al .pem funkcias sen konverti la dosierstrukturon por nginx).

Post tio, ni difinis la vhost-dosieron. Ni unue difinas la konduton de haveno 80 kiel simplan alidirektilon al https, ĉar ni ne volas permesi ajnan http-trafikon

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

Ni tiam kreis du virtualajn servilojn sur la haveno 443 por niaj servoj:

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

Paŝo 2: dokumenta servo

Nun ni devas aldoni la ujon de dokumenta servo al nia docker-compose.yml. Estas nenio speciala por agordi ĉi tie.

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

Sed ne forgesu ligi la nginx-ujon al la dokumenta servo:

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

Paŝo 3: Sekva Nubo

Unue, aldonu novajn servojn:

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

kaj aldonu ligon al nginx:

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

Nun estas tempo ŝarĝi la ujojn.

docker-compose up -d  

Post iom da tempo, nginx komencos redirekti vin al la antaŭa fino de NextCloud, kiu estas la defaŭlta agorda paĝo. Vi devos enigi la uzantnomon kaj pasvorton por via unua administra uzanto kaj la datumbazajn akreditaĵojn, kiujn vi disponigis en docker-compose.yml Post kiam la agordo estos kompleta, vi povos ensaluti. En nia kazo, la atendado daŭris preskaŭ unu minuton kaj postulis plian refreŝigon de la ensaluta paĝo antaŭ ol ni povis ensaluti en la nuba servo.

Fenestro de agordoj de NextCloud-servoAgordante NextCloud + ONLYOFFICE sur la sama servilo kun Docker

Paŝo 4: Konekti NextCloud kaj ONLYOFFICE

Je ĉi tiu paŝo, vi devos instali la aplikaĵon por NextCloud, kiu konektas la funkcion de ONLYOFFICE. Ni komencu per la aplika kontrolpanelo en la supra dekstra angulo de la menuo. Trovu la ONLYOFFICE-apon (sub Oficejo kaj teksto aŭ uzante serĉon), instalu kaj aktivigu ĝin.

Post tio iru al Agordoj per la menuo en la supra dekstra angulo kaj vi devus trovi la eron de ONLYOFFICE en la maldekstra menuo. Eniru ĝin. Vi devos registri la adresojn kiel indikite sube.

Agordoj pri integriĝoAgordante NextCloud + ONLYOFFICE sur la sama servilo kun Docker

La unua adreso estas uzata por ligi al iuj js kaj css-dosieroj rekte de la aplikaĵo funkcianta en la retumilo (tio estas kion ni bezonas por malfermi aliron al la servo ONLYOFFICE per nginx). La sekreta ŝlosilo ne estas uzata ĉar ni fidas la izolan tavolon de Docker pli ol la konstantan aŭtentikigŝlosilon. La tria adreso estas uzata de la NextCloud-ujo por konekti rekte al la ONLYOFFICE API, kaj ĝi uzas la defaŭltan internan gastigan nomon de Docker. Nu, la lasta kampo estas uzata por ke ONLYOFFICE povu fari petojn reen al la NextCloud API uzante eksteran IP-adreson aŭ internan Docker-adreson se vi uzas Docker-retojn, sed ĉi tio ne estas uzata en nia kazo. Certigu, ke viaj fajroŝirmilaj agordoj permesas ĉi tiajn interagojn.

Post konservado, NextCloud testos la konekton kaj, se ĉio estas ĝusta, montros al vi agordojn rilatajn al la integriĝo - ekzemple, kiajn dosierojn povas redakti ĉi tiu integriĝo. Agordu laŭplaĉe.

La fina paŝo: kie trovi la redaktilon

Se vi reiras al viaj nubaj stokado dosierujoj kaj alklakas la "+" por krei novan dosieron, tiam vi havos novan opcion por krei dokumenton, kalkultabelon aŭ prezenton. Kun ilia helpo, vi kreos kaj tuj povos redakti ĉi tiujn tipojn de dosieroj uzante ONLYOFFICE.

Menuo pri kreado de dosierojAgordante NextCloud + ONLYOFFICE sur la sama servilo kun Docker

Suplemento 1

La plena enhavo de docker-compose.yml troveblas ĉi tie: https://pastebin.com/z1Ti1fTZ

fonto: www.habr.com

Aldoni komenton