Twaqqif ta 'NextCloud + ONLYOFFICE fuq l-istess server ma' Docker

Ħej Habr! Nippreżenta għall-attenzjoni tiegħek it-traduzzjoni tal-artiklu "Twaqqif ta' NextCloud u ONLYOFFICE fuq server wieħed ma' Docker".

Huwa diffiċli li tissottovaluta l-valur ta 'suites ta' uffiċċji onlajn bħal Google Docs u l-ħażna tal-cloud fil-ħajja ta 'nies orjentati lejn it-teknoloġija. It-teknoloġija tant saret mifruxa li anke Microsoft, li ilha ddominat is-suq tal-applikazzjonijiet tal-uffiċċju, reċentement iffokat fuq l-iżvilupp tal-applikazzjoni tal-web Office 365 u tipperswadi lill-utenti biex jaqilbu għal mudell ta’ abbonament biex jużaw is-servizzi tagħhom stess. Aħna nistiednu lil dawk li huma interessati fil-proċess ta 'installazzjoni u konfigurazzjoni tal-ħażna tagħhom stess taħt cat.

Ftit tal-ħin ilu ħares lejn is-soluzzjonijiet tal-ħażna tal-cloud u l-suites tal-uffiċċju tal-web ta’ sors miftuħ li jistgħu faċilment jiġu skjerati għall-użu f’mikrointrapriża. Il-motivazzjoni ewlenija biex id-dokumentazzjoni kollha tinżamm onlajn hija li l-burokrazija tinżamm għall-minimu u li jiġu implimentati prattiki kummerċjali tajbin minkejja l-volum baxx ta’ tranżazzjonijiet. In-naħa l-oħra tal-munita hija li l-kiri ta' cloud server biex jipprovdi dan is-servizz huwa inqas sigur milli taħżen direttament fil-bini tal-intrapriża, peress li m'għandek l-ebda mezz ta' verifika tal-aċċess fiżiku għas-server jew it-traffiku tiegħek. Għalhekk, encryption end-to-end u softwer open source huma meħtieġa wkoll.

B'kont meħud tal-informazzjoni kollha disponibbli dwar is-soluzzjonijiet ta' sors miftuħ, sibna żewġ proġetti attivi (b'commits fir-repożitorju tal-git għall-aħħar 12-il xahar) żviluppati għall-ħażna tal-cloud: NextCloud u OwnCloud, u l-unika suite tal-uffiċċju ONLYOFFICE attiva. Il-funzjonalità taż-żewġ għodod tal-ħażna tas-sħab hija bejn wieħed u ieħor l-istess, u d-deċiżjoni li tagħżel NextCloud kienet ibbażata fuq l-eżistenza ta 'evidenza li tista' tiġi integrata ma 'ONLYOFFICE għal interazzjoni komda tal-utent mas-softwer. Madankollu, meta bdejna nużaw is-servizzi, in-nuqqas ta' informazzjoni dwar l-integrazzjoni tas-servizzi ta' hawn fuq deher evidenti. Sibna 3 videos tutorials dwar kif nintegraw:

L-ebda wieħed mit-tliet vidjows ma wieġeb il-mistoqsija dwar l-installazzjoni tas-servizz tad-dokumenti ONLYOFFICE fuq l-istess server fiżiku bħal NextCloud b'nginx kondiviż. Minflok, użaw tekniki ta 'separazzjoni bħall-użu ta' portijiet separati għall-api tas-servizz tad-dokumenti. Suġġeriment ieħor kien li jiġi skjerat server separat għas-Servizz tad-Dokument, billi tikkonfigura manwalment l-istanza nginx mibnija fis-Servizz tad-Dokument biex tinstalla ċavetta ta 'aċċess (ċavetta ta' aċċess magħrufa minn qabel li tikkonferma d-dritt ta 'aċċess għas-sħaba tad-dejta) u ċertifikati TLS. L-approċċi ta 'hawn fuq tqiesu mhux sikuri u mhux effettivi biżżejjed, għalhekk integrajna NextCloud, ONLYOFFICE u nginx komuni li tissepara t-talbiet mill-ismijiet tad-dominju bl-użu ta' docker-compose. Hawnhekk hawn informazzjoni pass pass dwar kif tagħmel dan.

Pass 1: kontenitur nginx

Din hija setup sempliċi ħafna, iżda dan il-pass jeħtieġ l-aktar xogħol biex jiġi kkonfigurat is-server proxy invers. L-ewwel ħloqna l-konfigurazzjoni docker-compose għall-immaġni nginx:stabbli.

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

Dan joħloq kontenitur bil-portijiet 80 u 443 miftuħa għall-pubbliku, immappja l-konfigurazzjoni għal nginx/nginx-vhost.conf , u jiddefinixxi maħżen għal ċertifikati ġġenerati bħala ċertifikati ffirmati lilhom infushom jew bl-użu ta' Ejja encrypt's certbot f' /nginx/certificates. Dan il-post għandu jkun fih folders għal office.yourdomain.com u cloud.yourdomain.com, b'fajls fullchain1.pem u privkey1.pem f'kull wieħed għall-katina taċ-ċertifikat u ċ-ċavetta privata tas-server, rispettivament. Tista' taqra aktar dwar kif tiġġenera ċertifikat iffirmat minnha stess hawn. www.akadia.com/services/ssh_test_certificate.html (Tibdil .key u .crt għal .pem taħdem mingħajr ma tikkonverti l-istruttura tal-fajl għal nginx).

Wara dan, iddefinijna l-fajl vhost. Aħna l-ewwel niddefinixxu l-imġieba tal-port 80 bħala redirect sempliċi għal https, għaliex ma rridux inħallu l-ebda traffiku http

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

Imbagħad ħloqna żewġ servers virtwali fuq il-port 443 għas-servizzi tagħna:

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

Pass 2: servizz tad-dokumenti

Issa rridu nżidu l-kontenitur tas-servizz tad-dokumenti mad-docker-compose.yml tagħna. M'hemm xejn speċjali biex jiġi kkonfigurat hawn.

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

Imma tinsiex torbot il-kontenitur nginx mas-servizz tad-dokumenti:

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

Pass 3: Cloud Li jmiss

L-ewwel, żid servizzi ġodda:

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

u żid link għal nginx:

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

Issa wasal iż-żmien biex jgħabbi l-kontenituri.

docker-compose up -d  

Wara xi żmien, nginx jibda jidderieġik lejn il-front end NextCloud, li hija l-paġna tal-konfigurazzjoni default. Ikollok bżonn li ddaħħal l-isem tal-utent u l-password għall-ewwel utent admin tiegħek u l-kredenzjali tad-database li pprovdejt f'docker-compose.yml Ladarba s-setup tkun lesta, tkun tista' tidħol. Fil-każ tagħna, l-istennija ħadet kważi minuta u kienet teħtieġ aġġornament addizzjonali tal-paġna tal-login qabel ma nkunu nistgħu nilloggjaw fis-servizz tal-cloud.

Tieqa tas-settings tas-servizz NextCloudTwaqqif ta 'NextCloud + ONLYOFFICE fuq l-istess server ma' Docker

Pass 4: Tqabbad NextCloud u ONLYOFFICE

F'dan il-pass, ser ikollok bżonn tinstalla l-applikazzjoni għal NextCloud, li tgħaqqad il-funzjonalità ONLYOFFICE. Nibdew bil-pannell tal-kontroll tal-applikazzjoni fir-rokna ta' fuq tal-lemin tal-menu. Sib l-app ONLYOFFICE (taħt Office & test jew billi tuża t-tfittxija), installa u attivaha.

Wara dan, mur Settings permezz tal-menu fir-rokna ta 'fuq tal-lemin u għandek issib l-oġġett ONLYOFFICE fil-menu tax-xellug. Mur fiha. Ikollok bżonn tirreġistra l-indirizzi kif indikat hawn taħt.

Settings ta 'applikazzjoni ta' integrazzjoniTwaqqif ta 'NextCloud + ONLYOFFICE fuq l-istess server ma' Docker

L-ewwel indirizz jintuża biex jgħaqqad ma 'xi fajls js u css direttament mill-applikazzjoni li taħdem fil-browser (dan huwa dak li għandna bżonn biex niftħu aċċess għas-servizz ONLYOFFICE permezz ta' nginx). Iċ-ċavetta sigrieta ma tintużax għaliex aħna nafdaw is-saff ta 'iżolament Docker aktar milli ċ-ċavetta ta' awtentikazzjoni persistenti. It-tielet indirizz jintuża mill-kontenitur NextCloud biex jikkonnettja direttament mal-API ONLYOFFICE, u juża l-hostname intern default minn Docker. Ukoll, l-aħħar qasam jintuża sabiex ONLYOFFICE jista 'jagħmel talbiet lura lill-API NextCloud billi juża indirizz IP estern jew indirizz intern Docker jekk qed tuża netwerks Docker, iżda dan ma jintużax fil-każ tagħna. Kun żgur li s-settings tal-firewall tiegħek jippermettu dawn it-tipi ta' interazzjonijiet.

Wara li tissejvja, NextCloud se jittestja l-konnessjoni u, jekk kollox huwa korrett, jurik is-settings relatati mal-integrazzjoni - per eżempju, liema tipi ta 'fajls jistgħu jiġu editjati minn din l-integrazzjoni. Ippersonalizza kif tara xieraq.

L-aħħar pass: fejn issib l-editur

Jekk tmur lura għall-folders tal-ħażna tas-sħab tiegħek u tikklikkja fuq il-“+” biex toħloq fajl ġdid, allura jkollok għażla ġdida biex toħloq dokument, spreadsheet jew preżentazzjoni. Bl-għajnuna tagħhom, inti se toħloq u immedjatament tkun tista 'teditja dawn it-tipi ta' fajls billi tuża ONLYOFFICE.

Menu tal-ħolqien tal-fajlTwaqqif ta 'NextCloud + ONLYOFFICE fuq l-istess server ma' Docker

Suppliment 1

Il-kontenut sħiħ ta' docker-compose.yml jista' jinstab hawn: https://pastebin.com/z1Ti1fTZ

Sors: www.habr.com

Żid kumment