Ho theha NextCloud + ONLYOFFICE ho seva se le seng le Docker

Hey Habr! Ke fana ka tlhokomelo ea hau phetolelo ea sehlooho "Ho theha NextCloud le ONLYOFFICE ho seva se le seng se nang le Docker".

Ho thata ho nyenyefatsa boleng ba liofisi tsa marang-rang tse kang Google Docs le polokelo ea leru maphelong a batho ba sekametseng theknoloji. Theknoloji e se e atile hoo le Microsoft, eo e leng khale e laola 'maraka oa likopo tsa ofisi, e sa tsoa shebana le ho nts'etsapele ts'ebeliso ea webo ea Office 365 le ho susumetsa basebelisi ho fetohela ho mofuta oa peeletso bakeng sa ho sebelisa lits'ebeletso tsa bona. Re mema ba thahasellang mokhoa oa ho kenya le ho lokisa polokelo ea bona tlas'a katse.

Nakong e fetileng re ile ra sheba litharollo tsa polokelo ea maru le li-suite tsa liofisi tsa marang-rang tse bulehileng tse ka sebelisoang habonolo bakeng sa tšebeliso ea likhoebo tse nyane. Sepheo se seholo sa ho boloka litokomane tsohle inthaneteng ke ho boloka lipampiri bonyane le ho kenya ts'ebetsong mekhoa e metle ea khoebo ho sa tsotellehe palo e tlaase ea litšebelisano. Lehlakore le leng la chelete ea tšepe ke hore ho hira seva sa leru ho fana ka ts'ebeletso ena ha ho sireletseha ho feta ho e boloka ka kotloloho sebakeng sa khoebo, kaha ha u na mokhoa oa ho hlahloba phihlello ea 'mele ho seva kapa sephethephethe sa hau. Ka hona, li-encryption tsa ho qetela le software e bulehileng ea mohloli le tsona lia hlokahala.

Ha re ela hloko lintlha tsohle tse teng mabapi le tharollo ea mohloli o bulehileng, re fumane merero e 'meli e sebetsang (e nang le boitlamo sebakeng sa polokelo ea git bakeng sa likhoeli tse 12 tse fetileng) e etselitsoeng polokelo ea leru: NextCloud le OwnCloud, le eona feela ofisi e sebetsang ea ONLYOFFICE. Lisebelisoa ka bobeli tsa polokelo ea leru li na le ts'ebetso e batlang e tšoana, 'me qeto ea ho khetha NextCloud e ne e ipapisitse le boteng ba bopaki ba hore e ka kopanngoa le ONLYOFFICE bakeng sa tšebelisano e ntle ea mosebelisi le software. Leha ho le joalo, ha re qala ho tsamaisa lits'ebeletso, ho hloka tlhahisoleseding mabapi le ho kopanya litšebeletso tse ka holimo ho ile ha bonahala. Re fumane livideo tse 3 tsa thuto mabapi le mokhoa oa ho kopanya:

Ha ho le e 'ngoe ea livideo tse tharo e arabileng potso ea ho kenya ts'ebeletso ea tokomane ea ONLYOFFICE ho seva se tšoanang sa' mele joalo ka NextCloud e nang le nginx e arolelanoang. Sebakeng seo, ba sebelisitse mekhoa ea karohano joalo ka ho sebelisa likou tse arohaneng bakeng sa litšebeletso tsa tokomane api. Tlhahiso e 'ngoe e ne e le ho sebelisa seva e arohaneng bakeng sa Tšebeletso ea Tokomane, ho lokisa ka letsoho mohlala oa nginx o hahiloeng ho Tokomane ea Tšebeletso ho kenya senotlolo sa ho kena (senotlolo se tsejoang esale pele se tiisang tokelo ea ho fumana leru la data) le litifikeiti tsa TLS. Mekhoa e ka holimo e ne e nkoa e sa sireletseha ebile e sa sebetse ka ho lekaneng, kahoo re ile ra kopanya NextCloud, ONLYOFFICE le nginx e tloaelehileng e arolang likōpo ka mabitso a marang-rang a sebelisa docker-compose. Mona ke mohato ka mohato tlhahisoleseding ea hore na u ka e etsa joang.

Mohato oa 1: setshelo sa nginx

Ena ke tlhophiso e bonolo haholo, empa mohato ona o hloka mosebetsi o mongata ho lokisa seva ea proxy e ka morao. Re qalile ka ho theha tlhophiso ea "docker-compose" bakeng sa nginx: setšoantšo se tsitsitseng.

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

Sena se theha setshelo se nang le likou tsa 80 le 443 tse bulehileng ho sechaba, 'mapa oa tlhophiso ho nginx/nginx-vhost.conf, mme o hlalosa lebenkele la litifikeiti tse hlahisitsoeng e le litifikeiti tse ingoletseng kapa ho sebelisa Let's encrypt's certbot ho /nginx/certificates. Sebaka sena se tlameha ho ba le lifoldara tsa office.yourdomain.com le cloud.yourdomain.com, tse nang le lifaele tsa fullchain1.pem le privkey1.pem ho e 'ngoe le e 'ngoe bakeng sa ketane ea setifikeiti le senotlolo sa lekunutu sa seva, ka ho latellana. U ka bala haholoanyane mabapi le mokhoa oa ho etsa setifikeiti se ingoletseng mona. www.akadia.com/services/ssh_test_certificate.html (ho reha .key le .crt ho .pem e sebetsa ntle le ho fetola sebopeho sa faele bakeng sa nginx).

Ka mor'a moo, re hlalositse faele ea vhost. Re qala ka ho hlalosa boits'oaro ba port 80 e le mokhoa o bonolo oa ho tsamaisa https, hobane ha re batle ho lumella sephethephethe sefe kapa sefe sa http

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

Joale re thehile li-server tse peli tse fumanehang boema-kepeng ba 443 bakeng sa lits'ebeletso tsa rona:

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

Mohato oa 2: tšebeletso ea litokomane

Joale re hloka ho kenyelletsa setshelo sa ts'ebeletso ea tokomane ho docker-compose.yml ea rona. Ha ho letho le ikhethang le ka lokisoang mona.

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

Empa u seke oa lebala ho hokahanya setshelo sa nginx le ts'ebeletso ea tokomane:

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

Mohato oa 3: NextCloud

Pele, eketsa litšebeletso tse ncha:

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

'me u kenye sehokelo ho nginx:

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

Joale ke nako ea ho kenya linkho.

docker-compose up -d  

Kamora nakoana, nginx e tla qala ho u fetisetsa pheletsong e ka pele ea NextCloud, e leng leqephe la tlhophiso ea kamehla. U tla hloka ho kenya lebitso la mosebelisi le phasewete bakeng sa mosebelisi oa hau oa pele le lintlha tsa database tseo u faneng ka tsona ho docker-compose.yml Hang ha seta e felile, u tla khona ho kena. Tabeng ea rona, ho ema ho ile ha nka nako e ka etsang motsotso mme ho ne ho hloka hore re hlaphoheloe leqephe la ho kena pele re ka kena tšebeletsong ea leru.

Fesetere ea litlhophiso tsa tšebeletso ea NextCloudHo theha NextCloud + ONLYOFFICE ho seva se le seng le Docker

Hata 4: Hokela NextCloud le ONLYOFFICE

Mohato ona, o tla hloka ho kenya ts'ebeliso ea NextCloud, e hokahanyang ts'ebetso ea ONLYOFFICE. Ha re qale ka phanele ea taolo ea ts'ebeliso e hukung e kaholimo ho le letona la menyu. Fumana sesebelisoa sa ONLYOFFICE (tlas'a Ofisi & mongolo kapa u sebelisa patlo), e kenye 'me u e bulele.

Ka mor'a moo hlooho ho Litlhophiso ka menu e k'honeng e kaholimo ho le letona 'me u lokela ho fumana ntho ea ONLYOFFICE ho menu e ka letsohong le letšehali. Kena ho eona. U tla hloka ho ngolisa liaterese joalo ka ha ho boletsoe ka tlase.

Litlhophiso tsa kopo ea ho kopanyaHo theha NextCloud + ONLYOFFICE ho seva se le seng le Docker

Aterese ea pele e sebelisoa ho hokahanya le lifaele tse ling tsa js le css ka kotloloho ho tsoa ts'ebelisong e sebetsang ho sebatli (sena ke seo re se hlokang ho bula phihlello ea ts'ebeletso ea ONLYOFFICE ka nginx). Senotlolo sa lekunutu ha se sebelisoe hobane re ts'epa sekhahla sa ho itšehla thajana sa Docker ho feta senotlolo se phehellang sa netefatso. Aterese ea boraro e sebelisoa ke setshelo sa NextCloud ho hokela ka kotloloho ho ONLYOFFICE API, 'me e sebelisa lebitso la moamoheli la ka hare le tsoang ho Docker. Che, tšimo ea ho qetela e sebelisoa e le hore ONLYOFFICE e ka etsa likopo ho khutlela ho NextCloud API e sebelisa aterese ea IP e kantle kapa aterese ea ka hare ea Docker haeba u sebelisa marang-rang a Docker, empa sena ha se sebelisoe molemong oa rona. Etsa bonnete ba hore litlhophiso tsa firewall tsa hau li lumella mefuta ena ea likamano.

Ka mor'a ho boloka, NextCloud e tla leka khokahanyo 'me, haeba ntho e' ngoe le e 'ngoe e nepahetse, e tla u bontša litlhophiso tse amanang le ho kopanya - mohlala, ke mefuta efe ea lifaele tse ka hlophisoang ke kopanyo ena. Iketsetse kamoo u bonang ho loketse kateng.

Mohato oa ho qetela: moo u ka fumanang mohlophisi

Haeba u khutlela ho lifoldara tsa hau tsa polokelo ea leru ebe u tobetsa "+" ho theha faele e ncha, joale u tla ba le khetho e ncha ea ho etsa tokomane, spreadsheet kapa tlhahiso. Ka thuso ea bona, u tla theha 'me hang-hang u khone ho hlophisa mefuta ena ea lifaele u sebelisa ONLYOFFICE.

Menyu ea ho etsa faeleHo theha NextCloud + ONLYOFFICE ho seva se le seng le Docker

Tlatsetso ea 1

Litaba tse felletseng tsa docker-compose.yml li ka fumanoa mona: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Eketsa ka tlhaloso