NextCloud + ONLYOFFICE Docker-ekin zerbitzari berean konfiguratzea

Aupa Habr! Artikuluaren itzulpena aurkezten dizuet "NextCloud eta ONLYOFFICE konfiguratu zerbitzari bakarrean Docker-ekin".

Zaila da Google Docs eta hodeiko biltegiratzea bezalako lineako bulegoko suiteen balioa gutxiestea teknologiara bideratutako pertsonen bizitzan. Teknologia hain hedatu da, Microsoft-ek ere, aspaldidanik bulegoko aplikazioen merkatuan nagusi izan dena, azkenaldian Office 365 web aplikazioa garatzen eta erabiltzaileak beren zerbitzuak erabiltzeko harpidetza-eredu batera aldatzeko konbentzitzen jarri du arreta. Cat azpian euren biltegiratze propioa instalatzeko eta konfiguratzeko prozesuan interesa dutenei gonbidatzen diegu.

Duela denbora pixka bat hodeiko biltegiratze irtenbideak eta kode irekiko web ofimatika-suiteak aztertu genituen, mikroenpresa batean erabiltzeko erraz inplementa daitezkeenak. Dokumentazio guztia sarean mantentzeko motibazio nagusia tramiteak gutxien izatea eta negozio-jardunbide egokiak ezartzea da, transakzio bolumen txikia izan arren. Txanponaren beste aldea da zerbitzu hau eskaintzeko hodeiko zerbitzari bat alokatzea enpresaren lokaletan zuzenean gordetzea baino seguruagoa dela, ez baituzu zure zerbitzarirako edo trafikorako sarbide fisikoa ikuskatzeko modurik. Hori dela eta, end-to-end enkriptatzea eta kode irekiko softwarea ere beharrezkoak dira.

Kode irekiko soluzioei buruz eskuragarri dagoen informazio guztia kontuan hartuta, hodeian biltegiratzeko garatutako bi proiektu aktibo aurkitu ditugu (azken 12 hilabeteetan git biltegian konpromisoak dituztenak): NextCloud eta OwnCloud, eta ONLYOFFICE bulegoko suite aktibo bakarra. Hodeiko biltegiratze-tresnek funtzionalitate bera dute gutxi gorabehera, eta NextCloud aukeratzeko erabakia ONLYOFFICE-rekin integra daitekeela frogatu zen, softwarearekin erabiltzailearen interakzio eroso bat izateko. Hala ere, zerbitzuak zabaltzen hasi ginenean, aurreko zerbitzuak integratzeko informazio falta nabaria zen. Integratzeko 3 bideo tutorial aurkitu ditugu:

Hiru bideoetako batek ere ez zion erantzun ONLYOFFICE dokumentu zerbitzua NextCloud-en zerbitzari fisiko berean nginx partekatu batekin instalatzeko galderari. Horren ordez, bereizteko teknikak erabili zituzten, esate baterako, dokumentu-zerbitzuaren APIrako ataka bereiziak erabiltzea. Iradokitako beste aukera bat Document Servicerako zerbitzari bereizia zabaltzea izan zen, Document Service-n integratutako nginx instantzia eskuz konfiguratuz sarbide-gako bat (aurrez ezagutzen den sarbide-gako bat, datu-hodeira sartzeko eskubidea baieztatzen duena) eta TLS ziurtagiriak instalatzeko. Goiko planteamenduak ez ziren seguruak eta nahikoa eraginkorrak ez zirela iritzita, beraz, NextCloud, ONLYOFFICE eta nginx arrunt bat, eskaerak domeinu-izenen arabera bereizten dituena, docker-compose erabiliz integratu genituen. Hona hemen nola egin jakiteko urratsez urrats.

1. urratsa: nginx edukiontzia

Konfigurazio oso erraza da, baina urrats honek alderantzizko proxy zerbitzaria konfiguratzeko lan gehien eskatzen du. Lehenengo docker-compose konfigurazioa sortu genuen nginx:stable irudirako.

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

Honek 80 eta 443 portuak publikoarentzat irekita dituen edukiontzi bat sortzen du, konfigurazioa nginx/nginx-vhost.conf mapeatzen du eta autosinatutako ziurtagiri gisa edo Let's encrypt's certbot erabiliz /nginx/certificates-en sortutako ziurtagirien biltegi bat definitzen du. Kokapen honek office.yourdomain.com eta cloud.yourdomain.com karpetak izan behar ditu, fullchain1.pem eta privkey1.pem fitxategiekin bakoitzean ziurtagiri-katearen eta zerbitzariaren gako pribatuaren, hurrenez hurren. Norberak sinatutako ziurtagiri bat sortzeko moduari buruzko informazio gehiago irakur dezakezu hemen. www.akadia.com/services/ssh_test_certificate.html (.key eta .crt .pem izendatzeak nginx-en fitxategi-egitura bihurtu gabe funtzionatzen du).

Horren ostean, vhost fitxategia definitu dugu. Lehenik eta behin 80 atakaren portaera https-ra birbideratzeko soil gisa definitzen dugu, zeren ez dugu http trafikorik onartu nahi

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

Ondoren, bi zerbitzari birtual sortu ditugu 443 atakan gure zerbitzuetarako:

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. urratsa: dokumentu-zerbitzua

Orain dokumentu zerbitzuaren edukiontzia gehitu behar dugu gure docker-compose.yml-ra. Hemen ez dago ezer berezirik konfiguratzeko.

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

Baina ez ahaztu nginx edukiontzia dokumentu-zerbitzuarekin lotzea:

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

3. urratsa: NextCloud

Lehenik eta behin, gehitu zerbitzu berriak:

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

eta gehitu esteka bat nginx-era:

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

Orain ontziak kargatzeko garaia da.

docker-compose up -d  

Pixka bat igaro ondoren, nginx-ek NextCloud frontend-era birbideratzen hasiko zaitu, hau da, lehenetsitako konfigurazio orrira. Zure lehen administratzailearen erabiltzaile-izena eta pasahitza eta docker-compose.yml-en emandako datu-basearen kredentzialak sartu beharko dituzu konfigurazioa amaitutakoan, saioa hasi ahal izango duzu. Gure kasuan, itxaronaldiak ia minutu bat behar izan zuen eta saio-orriaren freskatze gehigarria behar izan zuen hodeiko zerbitzuan saioa hasi aurretik.

NextCloud zerbitzuaren ezarpenen leihoaNextCloud + ONLYOFFICE Docker-ekin zerbitzari berean konfiguratzea

4. urratsa: NextCloud eta ONLYOFFICE konektatzea

Urrats honetan, ONLYOFFICE funtzionaltasuna konektatzen duen NextCloud-erako aplikazioa instalatu beharko duzu. Has gaitezen menuaren goiko eskuineko izkinan dagoen aplikazioaren kontrol panelarekin. Bilatu ONLYOFFICE aplikazioa (Office eta testua atalean edo bilaketa erabiliz), instalatu eta aktibatu.

Ondoren, joan Ezarpenetara goiko eskuineko izkinan dagoen menuaren bidez eta ONLYOFFICE elementua aurkitu beharko zenuke ezkerreko menuan. Sar zaitez. Helbideak erregistratu beharko dituzu behean adierazten den moduan.

Integrazio aplikazioaren ezarpenakNextCloud + ONLYOFFICE Docker-ekin zerbitzari berean konfiguratzea

Lehen helbidea arakatzailean exekutatzen ari den aplikaziotik js eta css fitxategi batzuetara zuzenean estekatzeko erabiltzen da (nginx bidez ONLYOFFICE zerbitzurako sarbidea ireki behar duguna da). Gako sekretua ez da erabiltzen Docker isolamendu-geruzarekin autentifikazio-gako iraunkorrarekin baino gehiago fidatzen dugulako. Hirugarren helbidea NextCloud edukiontziak erabiltzen du ONLYOFFICE APIra zuzenean konektatzeko, eta Docker-en barne-ostalari-izen lehenetsia erabiltzen du. Bada, azken eremua erabiltzen da ONLYOFFICE-k NextCloud APIra eskaerak egin ditzan kanpoko IP helbide bat edo barneko Docker helbide bat erabiliz Docker sareak erabiltzen ari bazara, baina hau ez da erabiltzen gure kasuan. Ziurtatu suebakiaren ezarpenek mota honetako elkarrekintzak onartzen dituztela.

Gorde ondoren, NextCloud-ek konexioa probatuko du eta, dena zuzena bada, integrazioari lotutako ezarpenak erakutsiko dizkizu; adibidez, integrazio honek zer fitxategi mota edita ditzakeen. Pertsonalizatu egoki ikusten duzun moduan.

Azken urratsa: non aurkitu editorea

Zure hodeiko biltegiratze karpetetara itzultzen bazara eta "+" sakatzen baduzu fitxategi berri bat sortzeko, orduan dokumentu, kalkulu orri edo aurkezpen bat sortzeko aukera berri bat izango duzu. Haien laguntzarekin, fitxategi mota hauek sortu eta berehala editatu ahal izango dituzu ONLYOFFICE erabiliz.

Fitxategiak sortzeko menuaNextCloud + ONLYOFFICE Docker-ekin zerbitzari berean konfiguratzea

1ko gehigarria

Docker-compose.yml-ren eduki osoa hemen aurki daiteke: https://pastebin.com/z1Ti1fTZ

Iturria: www.habr.com

Gehitu iruzkin berria