Konfigurimi i NextCloud + ONLYOFFICE në të njëjtin server me Docker

Hej Habr! Unë paraqes në vëmendjen tuaj përkthimin e artikullit "Konfigurimi i NextCloud dhe ONLYOFFICE në një server të vetëm me Docker".

Është e vështirë të nënvlerësohet vlera e paketave të zyrës në internet si Google Docs dhe ruajtja në renë kompjuterike në jetën e njerëzve të orientuar drejt teknologjisë. Teknologjia është bërë kaq e përhapur sa që edhe Microsoft, i cili ka dominuar prej kohësh tregun e aplikacioneve të zyrës, kohët e fundit është fokusuar në zhvillimin e aplikacionit në internet Office 365 dhe në bindjen e përdoruesve që të kalojnë në një model abonimi për përdorimin e shërbimeve të tyre. Ftojmë ata që janë të interesuar në procesin e instalimit dhe konfigurimit të ruajtjes së tyre nën cat.

Disa kohë më parë ne shikuam zgjidhjet e ruajtjes së resë kompjuterike dhe paketat e zyrave në ueb me burim të hapur që mund të vendoseshin lehtësisht për t'u përdorur në një mikro-ndërmarrje. Motivimi kryesor për mbajtjen e të gjithë dokumentacionit në internet është mbajtja e dokumentacionit në minimum dhe zbatimi i praktikave të mira të biznesit pavarësisht vëllimit të ulët të transaksioneve. Ana tjetër e medaljes është se marrja me qira e një serveri cloud për të ofruar këtë shërbim është më pak e sigurt sesa ruajtja e tij direkt në ambientet e ndërmarrjes, pasi nuk keni asnjë mjet për të kontrolluar aksesin fizik në serverin ose trafikun tuaj. Prandaj, kërkohet edhe kriptimi nga fundi në fund dhe softueri me burim të hapur.

Duke marrë parasysh të gjithë informacionin e disponueshëm në lidhje me zgjidhjet me burim të hapur, gjetëm dy projekte aktive (me angazhime në depon e git për 12 muajt e fundit) të zhvilluara për ruajtjen në renë kompjuterike: NextCloud dhe OwnCloud, dhe paketa e vetme aktive e zyrës ONLYOFFICE. Të dy mjetet e ruajtjes së cloud kanë afërsisht të njëjtin funksionalitet, dhe vendimi për të zgjedhur NextCloud u bazua në ekzistencën e provave që mund të integrohet me ONLYOFFICE për një ndërveprim të rehatshëm të përdoruesit me softuerin. Megjithatë, kur filluam vendosjen e shërbimeve, u bë e dukshme mungesa e informacionit për integrimin e shërbimeve të mësipërme. Ne gjetëm 3 video mësimore se si të integrohemi:

Asnjë nga tre videot nuk iu përgjigj pyetjes së instalimit të shërbimit të dokumenteve ONLYOFFICE në të njëjtin server fizik si NextCloud me një nginx të përbashkët. Në vend të kësaj, ata përdorën teknika të ndarjes, si p.sh. përdorimi i porteve të veçanta për api të shërbimit të dokumenteve. Një sugjerim tjetër ishte vendosja e një serveri të veçantë për Shërbimin e Dokumentit, duke konfiguruar manualisht instancën nginx të integruar në Shërbimin e Dokumentit për të instaluar një çelës aksesi (një çelës i njohur i hyrjes që konfirmon të drejtën për të hyrë në renë e të dhënave) dhe certifikatat TLS. Qasjet e mësipërme u konsideruan jo të sigurta dhe jo mjaft efektive, kështu që ne integruam NextCloud, ONLYOFFICE dhe një nginx të zakonshëm që ndan kërkesat sipas emrave të domeneve duke përdorur docker-compose. Këtu keni informacion hap pas hapi se si ta bëni atë.

Hapi 1: enë nginx

Ky është një konfigurim shumë i thjeshtë, por ky hap kërkon më shumë punë për të konfiguruar serverin proxy të kundërt. Fillimisht krijuam konfigurimin docker-compose për imazhin nginx:stable.

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

Kjo krijon një kontejner me portet 80 dhe 443 të hapura për publikun, harton konfigurimin në nginx/nginx-vhost.conf dhe përcakton një dyqan për certifikatat e krijuara si certifikata të vetë-nënshkruara ose duke përdorur certbotin Let's encrypt në /nginx/certificates. Ky vend duhet të përmbajë dosje për office.yourdomain.com dhe cloud.yourdomain.com, me skedarë fullchain1.pem dhe privkey1.pem në secilin për zinxhirin e certifikatave dhe çelësin privat të serverit, përkatësisht. Mund të lexoni më shumë se si të krijoni një certifikatë të vetë-nënshkruar këtu. www.akadia.com/services/ssh_test_certificate.html (riemërtimi i .key dhe .crt në .pem funksionon pa konvertuar strukturën e skedarit për nginx).

Pas kësaj, ne përcaktuam skedarin vhost. Së pari përcaktojmë sjelljen e portit 80 si një ridrejtim të thjeshtë në https, sepse ne nuk duam të lejojmë asnjë trafik http

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

Më pas krijuam dy serverë virtualë në portin 443 për shërbimet tona:

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

Hapi 2: Shërbimi i dokumenteve

Tani duhet të shtojmë kontejnerin e shërbimit të dokumentit në docker-compose.yml tonë. Nuk ka asgjë të veçantë për të konfiguruar këtu.

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

Por mos harroni të lidhni kontejnerin nginx me shërbimin e dokumenteve:

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

Hapi 3: NextCloud

Së pari, shtoni shërbime të reja:

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

dhe shtoni një lidhje në nginx:

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

Tani është koha për të ngarkuar kontejnerët.

docker-compose up -d  

Pas një kohe, nginx do të fillojë t'ju ridrejtojë në frontin e NextCloud, që është faqja e konfigurimit të paracaktuar. Do t'ju duhet të vendosni emrin e përdoruesit dhe fjalëkalimin për përdoruesin tuaj të parë të administratorit dhe kredencialet e bazës së të dhënave që keni dhënë në docker-compose.yml Pasi të përfundojë konfigurimi, do të jeni në gjendje të identifikoheni. Në rastin tonë, pritja zgjati pothuajse një minutë dhe kërkoi një rifreskim shtesë të faqes së hyrjes përpara se të mund të hynim në shërbimin cloud.

Dritarja tjetër e cilësimeve të shërbimit CloudKonfigurimi i NextCloud + ONLYOFFICE në të njëjtin server me Docker

Hapi 4: Lidhja e NextCloud dhe ONLYOFFICE

Në këtë hap, do t'ju duhet të instaloni aplikacionin për NextCloud, i cili lidh funksionalitetin ONLYOFFICE. Le të fillojmë me panelin e kontrollit të aplikacionit në këndin e sipërm të djathtë të menusë. Gjeni aplikacionin ONLYOFFICE (nën Office & tekst ose duke përdorur kërkimin), instaloni dhe aktivizoni atë.

Pas kësaj, shkoni te "Cilësimet" përmes menysë në këndin e sipërm djathtas dhe duhet të gjeni artikullin ONLYOFFICE në menynë e majtë. Shkoni në të. Ju do të duhet të regjistroni adresat siç tregohet më poshtë.

Cilësimet e aplikacionit të integrimitKonfigurimi i NextCloud + ONLYOFFICE në të njëjtin server me Docker

Adresa e parë përdoret për t'u lidhur me disa skedarë js dhe css direkt nga aplikacioni që funksionon në shfletues (kjo është ajo që na duhet për të hapur aksesin në shërbimin ONLYOFFICE përmes nginx). Çelësi sekret nuk përdoret sepse ne i besojmë shtresës së izolimit Docker më shumë sesa çelësit të vazhdueshëm të vërtetimit. Adresa e tretë përdoret nga kontejneri NextCloud për t'u lidhur drejtpërdrejt me ONLYOFFICE API dhe përdor emrin e brendshëm të paracaktuar të hostit nga Docker. Epo, fusha e fundit përdoret në mënyrë që ONLYOFFICE të mund të bëjë kërkesa përsëri në API të NextCloud duke përdorur një adresë IP të jashtme ose një adresë të brendshme Docker nëse jeni duke përdorur rrjetet Docker, por kjo nuk përdoret në rastin tonë. Sigurohuni që cilësimet e murit të zjarrit të lejojnë këto lloj ndërveprimesh.

Pas ruajtjes, NextCloud do të testojë lidhjen dhe, nëse gjithçka është e saktë, do t'ju tregojë cilësimet që lidhen me integrimin - për shembull, çfarë lloje skedarësh mund të modifikohen nga ky integrim. Personalizojeni siç e shihni të arsyeshme.

Hapi i fundit: ku të gjeni redaktorin

Nëse ktheheni te dosjet tuaja të ruajtjes në renë kompjuterike dhe klikoni në "+" për të krijuar një skedar të ri, atëherë do të keni një mundësi të re për të krijuar një dokument, fletëllogaritëse ose prezantim. Me ndihmën e tyre, ju do të krijoni dhe menjëherë do të jeni në gjendje t'i modifikoni këto lloje skedarësh duke përdorur ONLYOFFICE.

Menuja e krijimit të skedaritKonfigurimi i NextCloud + ONLYOFFICE në të njëjtin server me Docker

Suplement 1

Përmbajtja e plotë e docker-compose.yml mund të gjendet këtu: https://pastebin.com/z1Ti1fTZ

Burimi: www.habr.com

Shto një koment