Ịtọlite ​​NextCloud + ONLYOFFICE na otu ihe nkesa na Docker

Hey Habr! M na-egosi gị ntụgharị asụsụ nke akụkọ ahụ "Ịtọlite ​​NextCloud na ONLYOFFICE na otu sava nwere Docker".

Ọ na-esiri ike ilele uru ụlọ ọrụ ụlọ ọrụ dị n'ịntanetị dị ka Google Docs na nchekwa igwe ojii na ndụ ndị nwere teknụzụ. Nkà na ụzụ abụrụla nke ukwuu nke na ọbụna Microsoft, bụ onye na-achịkwa ahịa ngwa ụlọ ọrụ, na-elekwasị anya n'oge na-adịbeghị anya na ịmepụta ngwa weebụ Office 365 na ime ka ndị ọrụ gbanwee gaa na ụdị ndenye aha maka iji ọrụ nke ha. Anyị na-akpọ ndị nwere mmasị na usoro ịwụnye na ịhazi nchekwa nke ha n'okpuru pusi.

Oge ụfọdụ gara aga, anyị lere anya ngwọta nchekwa igwe ojii yana ụlọ ọrụ ụlọ ọrụ webụ mepere emepe nke enwere ike ibuga ngwa ngwa maka ojiji na obere ụlọ ọrụ. Isi ihe na-akpali maka idobe akwụkwọ niile n'ịntanetị bụ idobe akwụkwọ na opekempe yana mejuputa omume azụmaahịa dị mma n'agbanyeghị obere azụmahịa nke azụmahịa. Akụkụ ntụgharị nke mkpụrụ ego ahụ bụ na ịgbazite ihe nkesa igwe ojii iji nye ọrụ a adịchaghị nchebe karịa ịchekwa ya ozugbo na ogige ụlọ ọrụ, ebe ọ bụ na ịnweghị ụzọ ọ bụla iji nyochaa ohere anụ ahụ na sava gị ma ọ bụ okporo ụzọ gị. Ya mere, a chọkwara izo ya ezo na ngwụcha na ngwụcha na ngwanrọ mepere emepe.

N'iburu n'uche ozi niile dị gbasara ngwọta isi mmalite, anyị hụrụ ọrụ abụọ na-arụ ọrụ (nke nwere ntinye aka na ebe nchekwa git maka ọnwa 12 gara aga) emebere maka nchekwa igwe ojii: NextCloud na OwnCloud, yana naanị ụlọ ọrụ ONLYOFFICE na-arụ ọrụ. Ngwa nchekwa igwe ojii abụọ ahụ nwere otu ọrụ ahụ, na mkpebi ịhọrọ NextCloud dabere na ịdị adị nke akaebe na enwere ike ijikọ ya na ONLYOFFICE maka mmekọrịta dị mma nke onye ọrụ na ngwanrọ ahụ. Agbanyeghị, mgbe anyị malitere ibugharị ọrụ, enweghị ozi gbasara ijikọ ọrụ ndị a pụtara ìhè. Anyị hụrụ vidiyo nkuzi 3 gbasara otu esi ejikọta:

Ọ nweghị vidiyo atọ a zara ajụjụ nke ịwụnye ọrụ ONLYOFFICE n'otu sava anụ ahụ dị ka NextCloud nwere nginx nkekọrịta. Kama, ha jiri usoro nkewa dị ka iji ọdụ ụgbọ mmiri dị iche iche maka api ọrụ akwụkwọ. Aro ọzọ bụ ibuga ihe nkesa dị iche iche maka Ọrụ Akwụkwọ, na-eji aka na-ahazi nginx ihe atụ arụnyere n'ime Ọrụ Document iji wụnye igodo ohere (igodo ohere ama ama nke na-akwado ikike ịnweta igwe ojii data) yana asambodo TLS. A na-ewere ụzọ ndị a dị n'elu adịghị mma ma ọ bụghị nke ọma, yabụ anyị jikọtara NextCloud, ONLYOFFICE na nginx nkịtị nke na-ekewa arịrịọ site na ngalaba aha site na iji docker-compose. Nke a bụ ozi nzọụkwụ site na otu esi eme ya.

Nzọụkwụ 1: akpa nginx

Nke a bụ ntọlite ​​​​dị nfe, mana usoro a chọrọ ọrụ kacha arụ ọrụ iji hazie sava proxy reverse. Anyị buru ụzọ mepụta nhazi docker-Compose maka nginx: onyonyo kwụsiri ike.

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

Nke a na-emepụta akpa nwere ọdụ ụgbọ mmiri 80 na 443 na-emeghe ọha na eze, maapụ nhazi na nginx/nginx-vhost.conf , ma kọwaa ụlọ ahịa maka asambodo emepụtara dị ka akwụkwọ ntinye aka ma ọ bụ iji Let's encrypt's certbot in / nginx/certificates. Ebe a kwesịrị ịnwe nchekwa maka office.yourdomain.com na cloud.yourdomain.com, yana faịlụ fullchain1.pem na privkey1.pem n'ime nke ọ bụla maka yinye asambodo na igodo nzuzo, otu ọ bụla. Ị nwere ike ịgụkwu gbasara otu esi ewepụta asambodo ejiri aka ya bịa ebe a. www.akadia.com/services/ssh_test_certificate.html (ịgbanwe aha .key na .crt na .pem na-arụ ọrụ na-enweghị ịtụgharị nhazi faịlụ maka nginx).

Mgbe nke ahụ gasịrị, anyị kọwapụtara faịlụ vhost. Anyị na-ebu ụzọ kọwaa omume nke ọdụ ụgbọ mmiri 80 dị ka ntụgharị dị mfe na https, n'ihi na anyị achọghị ikwe ka okporo ụzọ http ọ bụla

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

Anyị mepụtara sava abụọ mebere na ọdụ ụgbọ mmiri 443 maka ọrụ anyị:

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

Nzọụkwụ 2: ọrụ akwụkwọ

Ugbu a, anyị kwesịrị ịgbakwunye akpa ọrụ akwụkwọ na docker-compose.yml anyị. Ọ nweghị ihe pụrụ iche iji hazie ebe a.

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

Mana echefula ijikọ akpa nginx na ọrụ akwụkwọ:

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

Kwụpụ 3: NextCloud

Nke mbụ, tinye ọrụ ọhụrụ:

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

ma tinye njikọ na nginx:

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

Ugbu a, ọ bụ oge ịkwanye arịa ndị ahụ.

docker-compose up -d  

Mgbe obere oge gasịrị, nginx ga-amalite ibugharị gị gaa na njedebe ihu NextCloud, nke bụ ibe nhazi ndabere. Ị ga-achọ itinye aha njirimara na paswọọdụ maka onye ọrụ nhazi mbụ gị yana nzere nchekwa data ị nyere na docker-compose.yml Ozugbo nhazi ahụ zuru, ị ga-enwe ike ịbanye. N'ọnọdụ anyị, nchere ahụ were ihe fọrọ nke nta ka ọ bụrụ otu nkeji wee chọkwuo ume ọhụrụ nke ibe nbanye tupu anyị enwee ike ịbanye n'ọrụ igwe ojii.

Window ntọala ọrụ NextCloudỊtọlite ​​NextCloud + ONLYOFFICE na otu ihe nkesa na Docker

Kwụpụ 4: Jikọọ NextCloud na ONLYOFFICE

Na nzọụkwụ a, ị ga-achọ ịwụnye ngwa maka NextCloud, nke na-ejikọta ọrụ ONLYOFFICE. Ka anyị bido na njikwa njikwa ngwa dị na akuku aka nri elu nke menu. Chọta ngwa ONLYOFFICE (n'okpuru Office & ederede ma ọ bụ iji ọchụchọ), wụnye ma mee ya.

Mgbe ahụ gaa na Ntọala site na menu dị n'akụkụ aka nri elu ma ị ga-ahụ ihe naanị ihe dị na menu aka ekpe. Banye n'ime ya. Ị ga-achọ ịdebanye aha adreesị dị ka egosiri n'okpuru.

Ntọala ngwa njikọtaỊtọlite ​​NextCloud + ONLYOFFICE na otu ihe nkesa na Docker

A na-eji adreesị nke mbụ jikọọ na ụfọdụ faịlụ js na css ozugbo site na ngwa na-agba ọsọ na ihe nchọgharị (nke a bụ ihe anyị kwesịrị imeghe ịnweta ọrụ ONLYOFFICE site na nginx). A naghị eji igodo nzuzo eme ihe n'ihi na anyị tụkwasịrị oyi akwa Docker ike karịa igodo nyocha na-adịgide adịgide. Akpa NextCloud na-eji adreesị nke atọ iji jikọọ ozugbo na ONLYOFFICE API, ọ na-ejikwa aha nnabata nke ime site na Docker. Ọ dị mma, a na-eji mpaghara ikpeazụ ka ONLYOFFICE wee mee arịrịọ laghachi na NextCloud API site na iji adreesị IP mpụga ma ọ bụ adreesị Docker dị n'ime ma ọ bụrụ na ị na-eji netwọọdụ Docker, mana ejighị nke a n'ọnọdụ anyị. Gbaa mbọ hụ na ntọala firewall gị na-ekwe ka ụdị mmekọrịta ndị a dị.

Mgbe ịchekwaa, NextCloud ga-anwale njikọ ahụ ma, ọ bụrụ na ihe niile ziri ezi, ga-egosi gị ntọala metụtara njikọta - dịka ọmụmaatụ, ụdị faịlụ nwere ike dezie site na ntinye a. Hazie ka ọ dị gị mma.

Nzọụkwụ ikpeazụ: ebe ịchọta onye nchịkọta akụkọ

Ọ bụrụ na ịlaghachi na nchekwa nchekwa igwe ojii gị wee pịa "+" iji mepụta faịlụ ọhụrụ, mgbe ahụ ị ga-enwe nhọrọ ọhụrụ iji mepụta akwụkwọ, mpempe akwụkwọ ma ọ bụ ihe ngosi. Site n'enyemaka ha, ị ga-emepụta ma nwee ike ịdezi ụdị faịlụ ndị a site na iji ONLYOFFICE.

menu mmepụta faịlụỊtọlite ​​NextCloud + ONLYOFFICE na otu ihe nkesa na Docker

Mgbakwunye 1

Enwere ike ịchọta ọdịnaya nke docker-compose.yml ebe a: https://pastebin.com/z1Ti1fTZ

isi: www.habr.com

Tinye a comment