NextCloud + ONLYOFFICE iestatīŔana tajā paŔā serverī ar Docker

Čau Habr! Piedāvāju jÅ«su uzmanÄ«bai raksta tulkojumu "NextCloud un ONLYOFFICE iestatÄ«Å”ana vienā serverÄ« ar Docker".

Ir grÅ«ti nenovērtēt tādu tieÅ”saistes biroja komplektu kā Google dokumenti un mākoņkrātuves vērtÄ«bu uz tehnoloÄ£ijām orientētu cilvēku dzÄ«vē. TehnoloÄ£ijas ir kļuvuÅ”as tik plaÅ”i izplatÄ«tas, ka pat Microsoft, kas ilgstoÅ”i dominē biroja aplikāciju tirgÅ«, pēdējā laikā ir pievērsusies Office 365 tÄ«mekļa lietojumprogrammas izstrādei un lietotāju pārliecināŔanai pāriet uz abonÄ“Å”anas modeli savu pakalpojumu lietoÅ”anai. Aicinām tos, kurus interesē savas krātuves uzstādÄ«Å”anas un konfigurÄ“Å”anas process zem kat.

Pirms kāda laika mēs apskatÄ«jām mākoņu krātuves risinājumus un atvērtā pirmkoda tÄ«mekļa biroja komplektus, kurus varētu viegli izvietot lietoÅ”anai mikrouzņēmumā. Galvenā motivācija, lai saglabātu visu dokumentāciju tieÅ”saistē, ir lÄ«dz minimumam samazināt dokumentu apstrādi un ieviest labu uzņēmējdarbÄ«bas praksi, neskatoties uz zemo darÄ«jumu apjomu. Otra medaļas puse ir tāda, ka mākoņservera noma Ŕī pakalpojuma sniegÅ”anai ir mazāk droÅ”a nekā tā glabāŔana tieÅ”i uzņēmuma telpās, jo jums nav iespēju pārbaudÄ«t fizisko piekļuvi savam serverim vai trafiku. Tāpēc ir nepiecieÅ”ama arÄ« pilnÄ«ga Å”ifrÄ“Å”ana un atvērtā pirmkoda programmatÅ«ra.

Ņemot vērā visu pieejamo informāciju par atvērtā pirmkoda risinājumiem, mēs atradām divus aktÄ«vus projektus (ar saistÄ«bām git repozitorijā pēdējo 12 mēneÅ”u laikā), kas izstrādāti mākoņkrātuvei: NextCloud un OwnCloud, kā arÄ« vienÄ«go aktÄ«vo ONLYOFFICE biroja komplektu. Abiem mākoņa krātuves rÄ«kiem ir aptuveni vienāda funkcionalitāte, un lēmums izvēlēties NextCloud tika pieņemts, pamatojoties uz pierādÄ«jumiem, ka to var integrēt ar ONLYOFFICE, lai lietotājs varētu ērti mijiedarboties ar programmatÅ«ru. Taču, uzsākot pakalpojumu izvietoÅ”anu, atklājās informācijas trÅ«kums par minēto pakalpojumu integrÄ“Å”anu. Mēs atradām 3 apmācÄ«bas video par to, kā integrēt:

Neviens no trim videoklipiem neatbildēja uz jautājumu par ONLYOFFICE dokumentu pakalpojuma instalÄ“Å”anu tajā paŔā fiziskajā serverÄ«, kur NextCloud ar koplietotu nginx. Tā vietā viņi izmantoja atdalÄ«Å”anas metodes, piemēram, atseviŔķu portu izmantoÅ”anu dokumentu apkalpoÅ”anas api. Vēl viens ieteikums bija izvietot atseviŔķu serveri Document Service, manuāli konfigurējot nginx instanci, kas iebÅ«vēta Document Service, lai instalētu piekļuves atslēgu (iepriekÅ” zināmu piekļuves atslēgu, kas apstiprina tiesÄ«bas piekļūt datu mākonim) un TLS sertifikātus. IepriekÅ” minētās pieejas tika uzskatÄ«tas par nedroŔām un pietiekami efektÄ«vām, tāpēc mēs integrējām NextCloud, ONLYOFFICE un parasto nginx, kas atdala pieprasÄ«jumus pēc domēna nosaukumiem, izmantojot docker-compose. Å eit ir soli pa solim informācija par to, kā to izdarÄ«t.

1. darbÄ«ba: nginx konteiners

Å Ä« ir ļoti vienkārÅ”a iestatÄ«Å”ana, taču Ŕī darbÄ«ba prasa visvairāk darba, lai konfigurētu reverso starpniekserveri. Vispirms mēs izveidojām docker-compose konfigurāciju nginx: stabilam attēlam.

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

Tādējādi tiek izveidots konteiners ar 80. un 443. portiem, kas ir atvērti publiski, konfigurācija tiek kartēta uz nginx/nginx-vhost.conf un tiek definēts sertifikātu veikals, kas Ä£enerēts kā paÅ”parakstÄ«ti sertifikāti vai izmantojot Let's encrypt's certbot mapē /nginx/certificates. Å ajā atraÅ”anās vietā ir jāietver mapes office.yourdomain.com un cloud.yourdomain.com ar failiem fullchain1.pem un privkey1.pem attiecÄ«gi sertifikātu ķēdei un servera privātajai atslēgai. Vairāk par to, kā izveidot paÅ”parakstÄ«tu sertifikātu, varat lasÄ«t Å”eit. www.akadia.com/services/ssh_test_certificate.html (.key un .crt pārdēvÄ“Å”ana par .pem darbojas bez faila struktÅ«ras konvertÄ“Å”anas priekÅ” nginx).

Pēc tam mēs definējām vhost failu. Vispirms mēs definējam 80. porta darbÄ«bu kā vienkārÅ”u novirzÄ«Å”anu uz https, jo mēs nevēlamies atļaut nekādu http trafiku

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

Pēc tam mÅ«su pakalpojumiem mēs izveidojām divus virtuālos serverus 443. portā:

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

2. darbÄ«ba: dokumentu apkalpoÅ”ana

Tagad mums ir jāpievieno dokumentu apkalpoÅ”anas konteiners mÅ«su docker-compose.yml. Å eit nav nekas Ä«paÅ”s, ko konfigurēt.

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

Bet neaizmirstiet saistīt nginx konteineru ar dokumentu pakalpojumu:

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

3. darbÄ«ba. Nākamais mākonis

Vispirms pievienojiet jaunus pakalpojumus:

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

un pievienojiet saiti uz nginx:

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

Tagad ir pienācis laiks iekraut konteinerus.

docker-compose up -d  

Pēc kāda laika nginx sāks jÅ«s novirzÄ«t uz NextCloud priekŔējo daļu, kas ir noklusējuma konfigurācijas lapa. Jums bÅ«s jāievada sava pirmā administratora lietotājvārds un parole, kā arÄ« datu bāzes akreditācijas dati, ko norādÄ«jāt docker-compose.yml Kad iestatÄ«Å”ana bÅ«s pabeigta, varēsiet pieteikties. MÅ«su gadÄ«jumā gaidÄ«Å”ana aizņēma gandrÄ«z minÅ«ti un prasÄ«ja papildu pieteikÅ”anās lapas atsvaidzināŔanu, pirms mēs varējām pieteikties mākoņpakalpojumā.

NextCloud pakalpojuma iestatījumu logsNextCloud + ONLYOFFICE iestatīŔana tajā paŔā serverī ar Docker

4. darbība: savienojiet NextCloud un ONLYOFFICE

Å ajā darbÄ«bā jums bÅ«s jāinstalē lietojumprogramma NextCloud, kas savieno ONLYOFFICE funkcionalitāti. Sāksim ar lietojumprogrammas vadÄ«bas paneli izvēlnes augŔējā labajā stÅ«rÄ«. Atrodiet lietotni ONLYOFFICE (sadaļā Office & text vai izmantojot meklÄ“Å”anu), instalējiet un aktivizējiet to.

Pēc tam dodieties uz IestatÄ«jumi, izmantojot izvēlni augŔējā labajā stÅ«rÄ«, un kreisajā izvēlnē jāatrod vienums ONLYOFFICE. Iedziļinieties tajā. Jums bÅ«s jāreÄ£istrē adreses, kā norādÄ«ts tālāk.

Integrācijas lietojumprogrammu iestatījumiNextCloud + ONLYOFFICE iestatīŔana tajā paŔā serverī ar Docker

Pirmā adrese tiek izmantota, lai izveidotu saiti uz dažiem js un css failiem tieÅ”i no lietojumprogrammas, kas darbojas pārlÅ«kprogrammā (tas ir nepiecieÅ”ams, lai atvērtu piekļuvi pakalpojumam ONLYOFFICE, izmantojot nginx). Slepenā atslēga netiek izmantota, jo mēs ticam Docker izolācijas slānim vairāk nekā pastāvÄ«gajai autentifikācijas atslēgai. TreÅ”o adresi izmanto NextCloud konteiners, lai izveidotu tieÅ”u savienojumu ar ONLYOFFICE API, un tā izmanto noklusējuma iekŔējo resursdatora nosaukumu no Docker. Pēdējais lauks tiek izmantots, lai ONLYOFFICE varētu veikt pieprasÄ«jumus atpakaļ uz NextCloud API, izmantojot ārējo IP adresi vai iekŔējo Docker adresi, ja izmantojat Docker tÄ«klus, taču mÅ«su gadÄ«jumā tas netiek izmantots. Pārliecinieties, vai jÅ«su ugunsmÅ«ra iestatÄ«jumi atļauj Ŕāda veida mijiedarbÄ«bu.

Pēc saglabāŔanas NextCloud pārbaudÄ«s savienojumu un, ja viss ir pareizi, parādÄ«s ar integrāciju saistÄ«tos iestatÄ«jumus ā€“ piemēram, kāda veida failus var rediģēt Ŕī integrācija. Pielāgojiet pēc saviem ieskatiem.

Pēdējais solis: kur atrast redaktoru

Ja atgriezÄ«sities mākoņa krātuves mapēs un noklikŔķiniet uz ā€œ+ā€, lai izveidotu jaunu failu, jums bÅ«s jauna iespēja izveidot dokumentu, izklājlapu vai prezentāciju. Ar viņu palÄ«dzÄ«bu jÅ«s izveidosit un uzreiz varēsiet rediģēt Ŕāda veida failus, izmantojot ONLYOFFICE.

Failu izveides izvēlneNextCloud + ONLYOFFICE iestatÄ«Å”ana tajā paŔā serverÄ« ar Docker

Papildinājums 1. gadam

Pilnu docker-compose.yml saturu var atrast Ŕeit: https://pastebin.com/z1Ti1fTZ

Avots: www.habr.com

Pievieno komentāru