Hoʻonohonoho i NextCloud + ONLYOFFICE ma ka kikowaena like me Docker

E Habr! Ke hōʻike aku nei au i kou manaʻo i ka unuhi ʻana o ka ʻatikala "Hoʻonohonoho i NextCloud a me ONLYOFFICE ma kahi kikowaena hoʻokahi me Docker".

He paʻakikī ke hoʻohaʻahaʻa i ka waiwai o nā keʻena keʻena pūnaewele e like me Google Docs a me ka mālama ʻana i ke ao i ke ola o ka poʻe ʻenehana. Ua laha loa ka ʻenehana a hiki i ka Microsoft, ka mea i hoʻomalu lōʻihi i ka mākeke noi o ke keʻena, ua kālele ʻo ia i ka hoʻomohala ʻana i ka polokalamu pūnaewele Office 365 a me ka hoʻohuli ʻana i nā mea hoʻohana e hoʻololi i kahi kumu hoʻohālike no ka hoʻohana ʻana i kā lākou lawelawe ponoʻī. Ke kono nei mākou i ka poʻe hoihoi i ke kaʻina hana o ka hoʻonohonoho ʻana a me ka hoʻonohonoho ʻana i kā lākou waihona ma lalo o ka pōpoki.

I kekahi manawa i hala aku nei ua nānā mākou i nā hāʻina mālama kapuaʻi a me nā keʻena keʻena pūnaewele open source i hiki ke hoʻohana maʻalahi no ka hoʻohana ʻana i kahi micro-enterprise. ʻO ke kumu nui no ka mālama ʻana i nā palapala āpau ma ka pūnaewele ʻo ia ka mālama ʻana i nā pepa i ka liʻiliʻi a hoʻokō i nā hana ʻoihana maikaʻi ʻoiai ka liʻiliʻi o nā kālepa. ʻO ka ʻaoʻao ʻē aʻe o ke kālā, ʻo ka hoʻolimalima ʻana i kahi kikowaena kapua no ka hoʻolako ʻana i kēia lawelawe ʻoi aku ka palekana ma mua o ka mālama pono ʻana iā ia ma ke kahua o ka ʻoihana, no ka mea ʻaʻohe āu ala e nānā ai i ke komo kino i kāu kikowaena a i ʻole kaʻa. No laila, koi ʻia ka hoʻopili ʻana a me ka polokalamu open source.

No ka noʻonoʻo ʻana i nā ʻike āpau e pili ana i nā hoʻonā open source, ua loaʻa iā mākou ʻelua mau hana ikaika (me nā hana i loko o ka waihona git no nā mahina 12 i hala iho nei) i kūkulu ʻia no ka mālama ʻana i ke ao: NextCloud a me OwnCloud, a ʻo ke keʻena keʻena ONLYOFFICE wale nō. ʻO nā mea hana mālama kapuaʻi ʻelua he like like ka hana, a ʻo ka hoʻoholo e koho iā NextCloud ua hoʻokumu ʻia ma ke ʻano o nā hōʻike e hiki ke hoʻohui ʻia me ONLYOFFICE no kahi pilina mea hoʻohana ʻoluʻolu me ka polokalamu. Eia naʻe, i ka wā i hoʻomaka ai mākou e kau i nā lawelawe, ua ʻike ʻia ka nele o ka ʻike e pili ana i ka hoʻohui ʻana i nā lawelawe ma luna. Ua loaʻa iā mākou nā wikiō aʻo 3 e pili ana i ka hoʻohui ʻana:

ʻAʻohe o nā wikiō ʻekolu i pane i ka nīnau o ka hoʻokomo ʻana i ka lawelawe palapala ONLYOFFICE ma ke kikowaena kino like me NextCloud me kahi nginx kaʻana. Akā, ua hoʻohana lākou i nā ʻenehana hoʻokaʻawale e like me ka hoʻohana ʻana i nā awa ʻokoʻa no ka lawelawe palapala api. ʻO kahi koho ʻē aʻe i manaʻo ʻia ʻo ka hoʻonohonoho ʻana i kahi kikowaena ʻokoʻa no ka Service Document, me ka hoʻonohonoho lima ʻana i ka inx nginx i kūkulu ʻia i loko o ka Document Service e hoʻokomo i kahi kī komo (kahi kī i ʻike mua ʻia e hōʻoia i ka pono e komo i ke ao data) a me nā palapala hōʻoia TLS. Ua manaʻo ʻia nā ala i luna ʻaʻole palekana a ʻaʻole pono, no laila ua hoʻohui mākou i NextCloud, ONLYOFFICE a me kahi nginx maʻamau, e hoʻokaʻawale i nā noi ma nā inoa inoa, me ka hoʻohana ʻana i ka docker-compose. Eia ka ʻike ʻanuʻu e pili ana i ka hana ʻana.

KaʻAnuʻu 1: pahu nginx

He hoʻonohonoho maʻalahi loa kēia, akā pono kēia ʻanuʻu i ka hana nui loa e hoʻonohonoho i ka server proxy reverse. Ua hana mua mākou i ka hoʻonohonoho docker-compose no ka nginx: kiʻi paʻa.

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

Hoʻokumu kēia i kahi pahu me nā awa 80 a me 443 i wehe ʻia i ka lehulehu, palapala ʻāina i ka hoʻonohonoho ʻana i nginx/nginx-vhost.conf , a wehewehe i kahi hale kūʻai no nā palapala hōʻoia i hana ʻia e like me nā palapala hōʻoia ponoʻī a i ʻole e hoʻohana ana i kā Let's encrypt's certbot ma /nginx/certificates. Pono e loaʻa i kēia wahi nā waihona no office.yourdomain.com a me cloud.yourdomain.com, me nā faila fullchain1.pem a me privkey1.pem i kēlā me kēia no ke kaulahao palapala a me ke kī pilikino kikowaena. Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i ka hana ʻana i kahi palapala hoʻopaʻa inoa ponoʻī maanei. www.akadia.com/services/ssh_test_certificate.html (Ka inoa inoa .key a me .crt i .pem hana me ka hoʻololi ʻole ʻana i ke ʻano waihona no ka nginx).

Ma hope o kēlā, ua wehewehe mākou i ka faila vhost. Ua wehewehe mua mākou i ke ʻano o ka port 80 ma ke ʻano he hoʻihoʻi maʻalahi i https, no ka mea ʻaʻole mākou makemake e ʻae i kekahi kaʻa http

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

A laila hana mākou i ʻelua mau kikowaena virtual ma ke awa 443 no kā mākou lawelawe:

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

KaʻAnuʻu 2: lawelawe palapala

I kēia manawa pono mākou e hoʻohui i ka pahu lawelawe palapala i kā mākou docker-compose.yml. ʻAʻohe mea kūikawā e hoʻonohonoho ma aneʻi.

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

Mai poina e hoʻopili i ka pahu nginx i ka lawelawe palapala:

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

KaʻAnuʻu Hana 3: NextCloud

ʻO ka mua, hoʻohui i nā lawelawe hou:

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

a hoʻohui i kahi loulou i ka nginx:

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

ʻO ka manawa kēia e hoʻouka ai i nā pahu.

docker-compose up -d  

Ma hope o kekahi manawa, e hoʻomaka ka nginx e hoʻihoʻi iā ʻoe i ka hope mua NextCloud, ʻo ia ka ʻaoʻao hoʻonohonoho paʻamau. Pono ʻoe e hoʻokomo i ka inoa inoa a me ka ʻōlelo huna no kāu mea hoʻohana mua a me nā hōʻoia ʻikepili āu i hāʻawi ai ma docker-compose.yml Ke pau ka hoʻonohonoho, hiki iā ʻoe ke komo. I kā mākou hihia, ʻaneʻane hoʻokahi minuke ka kali ʻana a koi ʻia kahi hōʻano hou o ka ʻaoʻao login ma mua o ka hiki iā mākou ke komo i ka lawelawe kapua.

ʻO ka puka makani hoʻonohonoho lawelawe ʻo NextCloudHoʻonohonoho i NextCloud + ONLYOFFICE ma ka kikowaena like me Docker

KaʻAnuʻu Hana 4: Hoʻohui i NextCloud a me ONLYOFFICE

I kēia ʻanuʻu, pono ʻoe e hoʻokomo i ka noi no NextCloud, kahi e hoʻopili ai i ka hana ONLYOFFICE. E hoʻomaka kākou me ka papa hoʻomalu noi ma ka ʻaoʻao ʻākau o ka papa kuhikuhi. E ʻimi i ka polokalamu ONLYOFFICE (ma lalo o ke Office & kikokikona a i ʻole ka hoʻohana ʻana i ka huli), e hoʻokomo a hoʻōla iā ia.

Ma hope o kēlā poʻo i ka Settings ma o ka papa kuhikuhi ma ka ʻaoʻao ʻākau o luna a pono ʻoe e ʻike i ka mea ONLYOFFICE ma ka ʻaoʻao hema. E hele i loko. Pono ʻoe e hoʻopaʻa inoa i nā helu wahi i hōʻike ʻia ma lalo nei.

Nā hoʻonohonoho noi hoʻohuiHoʻonohonoho i NextCloud + ONLYOFFICE ma ka kikowaena like me Docker

Hoʻohana ʻia ka helu mua e hoʻopili i kekahi mau faila js a me css pololei mai ka noi e holo ana i ka polokalamu kele pūnaewele (ʻo ia ka mea e pono ai mākou e wehe i ke komo i ka lawelawe ONLYOFFICE ma o nginx). ʻAʻole hoʻohana ʻia ke kī huna no ka mea ke hilinaʻi nei mākou i ka papa hoʻokaʻawale Docker ma mua o ke kī hōʻoia mau. Hoʻohana ʻia ke kolu o ka ʻōlelo e ka pahu NextCloud e hoʻopili pololei i ka ONLYOFFICE API, a hoʻohana ia i ka inoa inoa kūloko kūloko mai Docker. ʻAe, hoʻohana ʻia ke kahua hope i hiki iā ONLYOFFICE ke hana i nā noi i ka NextCloud API me ka hoʻohana ʻana i kahi IP IP waho a i ʻole kahi helu Docker kūloko inā ʻoe e hoʻohana nei i nā pūnaewele Docker, akā ʻaʻole hoʻohana ʻia kēia i kā mākou hihia. E hōʻoia i ka ʻae ʻana o kāu hoʻonohonoho pā ahi i kēia mau ʻano pili.

Ma hope o ka mālama ʻana, e hoʻāʻo ʻo NextCloud i ka pilina a, inā pololei nā mea a pau, e hōʻike iā ʻoe i nā hoʻonohonoho e pili ana i ka hoʻohui ʻana - no ka laʻana, he aha nā ʻano faila e hiki ke hoʻoponopono ʻia e kēia hoʻohui. Hoʻopilikino e like me kou manaʻo he kūpono.

ʻO ka hana hope: kahi e loaʻa ai ka mea hoʻoponopono

Inā ʻoe e hoʻi i kāu mau waihona waihona kapuaʻi a kaomi i ka "+" e hana i kahi faila hou, a laila e loaʻa iā ʻoe kahi koho hou e hana i kahi palapala, pālahalaha a hōʻike paha. Me kā lākou kōkua, e hana ʻoe a hiki koke ke hoʻoponopono i kēia mau faila me ka hoʻohana ʻana iā ONLYOFFICE.

Papa kuhikuhi waihonaHoʻonohonoho i NextCloud + ONLYOFFICE ma ka kikowaena like me Docker

Pākuʻi 1

Hiki ke loaʻa ka ʻike piha o docker-compose.yml ma aneʻi: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka