Te whakatu NextCloud + ONLYOFFICE i runga i te tūmau kotahi me Docker

Hei Habr! Ka whakaatu ahau ki a koutou te whakamaoritanga o te tuhinga "Te whakatu i a NextCloud me ONLYOFFICE i runga i te tūmau kotahi me Docker".

He uaua ki te whakaiti i te uara o nga huinga tari ipurangi penei i a Google Docs me te rokiroki kapua i roto i te oranga o te hunga e aro nui ana ki te hangarau. Kua horapa nui te hangarau, tae noa ki a Microsoft, kua roa nei e whakahaere ana i te maakete tono tari, kua aro ki te whakawhanake i te tono paetukutuku Office 365 me te whakatenatena i nga kaiwhakamahi ki te huri ki te tauira ohaurunga mo te whakamahi i a raatau ake ratonga. Ka tono matou i te hunga e aro nui ana ki te whakauru me te whirihora i a raatau ake rokiroki i raro i te ngeru.

I etahi wa kua pahure ake nei i titiro matou ki nga otinga rokiroki kapua me nga huinga tari tukutuku puna tuwhera ka ngawari te whakamahi hei whakamahi i roto i te umanga moroiti. Ko te kaupapa matua mo te pupuri i nga tuhinga katoa i runga ipurangi ko te pupuri i nga pepa ki te iti me te whakatinana i nga tikanga pakihi pai ahakoa te iti o te nui o nga whakawhitinga. Ko tetahi atu taha o te moni ko te reti i te tūmau kapua ki te whakarato i tenei ratonga he iti ake te haumaru atu i te penapena tika ki te waahi o te hinonga, na te mea kaore koe i te huarahi ki te tirotiro i te urunga tinana ki to tūmau, ki to waka ranei. Na reira, ka hiahiatia ano te whakamunatanga mutunga-ki-mutunga me te punaha tuwhera.

Ma te whai whakaaro ki nga korero katoa e waatea ana mo nga otinga puna tuwhera, i kitea e matou e rua nga kaupapa kaha (me te whakauru i roto i te git repository mo nga marama 12 kua hipa) i whakawhanakehia mo te rokiroki kapua: NextCloud me OwnCloud, me te roopu tari ONLYOFFICE kaha. He rite tonu nga mahi e rua o nga taputapu rokiroki kapua, a ko te whakatau ki te kowhiri i a NextCloud i ahu mai i runga i nga taunakitanga ka taea te whakauru ki te ONLYOFFICE mo te pai o te taunekeneke a te kaiwhakamahi me te rorohiko. Heoi, i te wa i timata ai matou ki te tuku i nga ratonga, ka kitea te kore korero mo te whakauru i nga ratonga o runga ake nei. I kitea e matou e 3 nga ataata akoranga me pehea te whakauru:

Kaore tetahi o nga ataata e toru i whakautu i te patai mo te whakauru i te ratonga tuhinga ONLYOFFICE i runga i te tūmau tinana rite NextCloud me te nginx tiritahi. Engari, i whakamahia e ratou nga tikanga wehewehe penei i te whakamahi i nga tauranga motuhake mo te api ratonga tuhinga. Ko tetahi atu whiringa ko te whakatakoto i tetahi tūmau motuhake mo te Ratonga Tuhinga, me te whirihora a ringa i te tauira nginx i hangaia ki te Ratonga Tuhinga ki te whakauru i te taviri uru (he taviri uru i mua i mohiotia e whakau ana i te tika ki te uru ki te kapua raraunga) me nga tiwhikete TLS. Ko nga huarahi i runga ake nei i whakaarohia kaore i te haumaru me te kore e tino whai hua, na reira i whakauruhia e matou a NextCloud, ONLYOFFICE me te nginx noa, e wehewehe ana i nga tono ma nga ingoa rohe, ma te whakamahi docker-compose. Anei nga korero taahiraa i te taahiraa mo te mahi.

Hipanga 1: ipu nginx

He tatūnga tino ngawari tenei, engari ko tenei taahiraa me tino mahi ki te whirihora i te tūmau takawaenga whakamuri. I hanga tuatahi matou i te whirihoranga docker-compose mo te nginx: ahua pumau.

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

Ka hangaia he ipu me nga tauranga 80 me te 443 e tuwhera ana ki te marea, ka mapi i te whirihoranga ki nginx/nginx-vhost.conf, ka tautuhia he toa mo nga tiwhikete i hangaia hei tiwhikete haina-whaiaro, ma te whakamahi ranei i te Certbot a Let's encrypt i /nginx/certificates. Kei roto i tenei waahi nga kōpaki mo office.yourdomain.com me cloud.yourdomain.com, me nga konae fullchain1.pem me te privkey1.pem i ia waahanga mo te mekameka tiwhikete me te taviri tūmataiti tūmau, ia. Ka taea e koe te panui ake mo te whakaputa i tetahi tiwhikete haina-whaiaro i konei. www.akadia.com/services/ssh_test_certificate.html (whakaingoatia .key me te .crt ki te .pem ka mahi me te kore e huri i te hanganga konae mo te nginx).

I muri i tera, i tautuhia e matou te konae vhost. I te tuatahi ka tautuhia e matou te whanonga o te tauranga 80 hei huarahi ngawari ki te https, na te mea e kore matou e hiahia ki te tuku i tetahi hokohoko http

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

Na ka hanga e matou etahi tūmau mariko e rua ki te tauranga 443 mo a maatau ratonga:

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

Hipanga 2: ratonga tuhinga

Inaianei me taapiri te ipu ratonga tuhinga ki ta maatau docker-compose.yml. Kaore he mea motuhake hei whirihora i konei.

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

Engari kaua e wareware ki te hono i te ipu nginx ki te ratonga tuhinga:

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

Hipanga 3: Kapua Panuku

Tuatahi, tāpiri ratonga hōu:

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 te taapiri hononga ki te nginx:

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

Inaianei kua tae ki te utaina nga ipu.

docker-compose up -d  

Whai muri i etahi wa, ka tiimata te nginx ki te tuku i a koe ki te pito o mua o NextCloud, koinei te wharangi whirihoranga taunoa. Me whakauru koe i te ingoa kaiwhakamahi me te kupuhipa mo to kaiwhakamahi whakahaere tuatahi me nga tohu tohu raraunga i tukuna e koe ki docker-compose.yml Kia oti te tatūnga, ka taea e koe te takiuru. I roto i a maatau, tata ki te meneti te tatari me te hiahia kia whakahoutia ano te whaarangi takiuru i mua i to uru ki te ratonga kapua.

NextCloud matapihi tautuhinga ratongaTe whakatu NextCloud + ONLYOFFICE i runga i te tūmau kotahi me Docker

Hipanga 4: Hononga NextCloud me ONLYOFFICE

I tenei taahiraa, me whakauru koe i te tono mo NextCloud, e hono ana i te mahi ONLYOFFICE. Me timata ma te paewhiri mana tono kei te kokonga matau o runga o te tahua. Kimihia te taupānga ONLYOFFICE (i raro i te Tari me te tuhinga, te whakamahi rapu ranei), whakauruhia ka whakahohehia.

I muri i tera upoko ki te Tautuhinga ma te tahua i te kokonga matau o runga ka kitea e koe te mea ONLYOFFICE i te tahua maui. Haere ki roto. Me rehita koe i nga wahitau kua tohua i raro nei.

Tautuhinga tono whakauruTe whakatu NextCloud + ONLYOFFICE i runga i te tūmau kotahi me Docker

Ko te wahitau tuatahi ka whakamahia hei hono atu ki etahi konae js me css mai i te tono e rere ana i roto i te kaitirotiro (koinei te mea hei whakatuwhera i te uru ki te ratonga ONLYOFFICE ma te nginx). Kaore e whakamahia te taviri ngaro na te mea ka whakawhirinaki matou ki te paparanga wehe Docker nui ake i te kii motuhēhēnga mau tonu. Ko te wahitau tuatoru e whakamahia ana e te ipu NextCloud ki te hono tika ki te ONLYOFFICE API, a ka whakamahia e ia te ingoa taunoa o roto mai i Docker. Ana, ka whakamahia te mara whakamutunga kia taea ai e ONLYOFFICE te whakahoki tono ki te NextCloud API ma te whakamahi i tetahi wahitau IP o waho, he wahitau Docker o roto ranei mena kei te whakamahi koe i nga whatunga Docker, engari kaore tenei e whakamahia i roto i ta maatau keehi. Me mohio kei te whakaaetia e to tautuhinga papangaahi enei momo taunekeneke.

I muri i te penapena, ka whakamatauhia e NextCloud te hononga, a, ki te tika nga mea katoa, ka whakaatu ki a koe nga tautuhinga e pa ana ki te whakauru - hei tauira, he aha nga momo kōnae ka taea te whakatika e tenei whakauru. Whakaritea kia rite ki taau e pai ai.

Ko te taahiraa whakamutunga: kei hea te kimi i te ētita

Mena ka hoki koe ki o kōpaki rokiroki kapua ka paato i te "+" hei hanga i tetahi konae hou, katahi ka whai waahi hou koe ki te hanga tuhinga, ripanga, whakaaturanga ranei. Ma ta raatau awhina, ka hanga koe ka taea e koe te whakatika i enei momo konae ma te whakamahi ONLYOFFICE.

Tahua hanga kōnaeTe whakatu NextCloud + ONLYOFFICE i runga i te tūmau kotahi me Docker

Tāpiritanga 1

Ko nga korero katoa o docker-compose.yml ka kitea i konei: https://pastebin.com/z1Ti1fTZ

Source: will.com

Tāpiri i te kōrero