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

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster