Nyetél NextCloud + ONLYOFFICE dina server anu sami sareng Docker

Héy Habr! Kuring nampilkeun ka perhatian anjeun tarjamahan artikel "Nyetél NextCloud sareng ONLYOFFICE dina hiji server sareng Docker".

Hese ngaremehkeun nilai suite kantor online sapertos Google Docs sareng panyimpenan awan dina kahirupan jalma anu berorientasi téknologi. Téknologi parantos nyebar pisan bahkan Microsoft, anu parantos lami ngadominasi pasar aplikasi kantor, nembé museurkeun kana ngembangkeun aplikasi wéb Office 365 sareng ngayakinkeun pangguna pikeun ngalih ka modél langganan pikeun ngagunakeun jasa sorangan. Urang ngajak jalma anu kabetot dina prosés masang jeung ngonpigurasikeun gudang sorangan dina ucing.

Sababaraha waktos kapengker urang ningali solusi panyimpen awan sareng suite kantor wéb open source anu gampang dianggo pikeun dianggo dina perusahaan mikro. Motivasi utama pikeun ngajaga sadaya dokuméntasi online nyaéta pikeun ngaminimalkeun dokuméntasi sareng ngalaksanakeun prakték bisnis anu saé sanaos volume transaksi anu rendah. Sisi flip tina koin nyaéta yén nyéwa server awan pikeun nyayogikeun jasa ieu kirang aman tibatan nyimpen langsung di tempat perusahaan, sabab anjeun henteu ngagaduhan cara pikeun ngaudit aksés fisik kana server atanapi lalu lintas anjeun. Ku alatan éta, énkripsi tungtung-to-tungtung sareng parangkat lunak open source ogé diperyogikeun.

Ningali sadaya inpormasi anu aya ngeunaan solusi open source, kami mendakan dua proyék aktip (kalayan komitmen dina gudang git salami 12 sasih) dikembangkeun pikeun neundeun awan: NextCloud sareng OwnCloud, sareng hiji-hijina suite kantor ONLYOFFICE anu aktip. Kadua alat panyimpen awan gaduh fungsionalitas anu sami, sareng kaputusan milih NextCloud dumasar kana ayana bukti yén éta tiasa dihijikeun sareng ONLYOFFICE pikeun interaksi pangguna anu nyaman sareng parangkat lunak. Nanging, nalika urang mimiti nyebarkeun jasa, kurangna inpormasi ngeunaan ngahijikeun jasa di luhur janten katingali. Kami mendakan 3 pidéo tutorial ngeunaan cara ngahijikeun:

Henteu aya tilu pidéo anu ngajawab patarosan ngeunaan masang jasa dokumén ONLYOFFICE dina server fisik anu sami sareng NextCloud kalayan nginx anu dibagikeun. Sabalikna, aranjeunna ngagunakeun téknik pamisahan sapertos nganggo palabuhan anu misah pikeun layanan dokumen api. Pilihan séjén anu disarankeun nyaéta nyebarkeun server anu misah pikeun Dokumén Service, sacara manual ngonpigurasikeun conto nginx anu diwangun kana Dokumén Service pikeun masang konci aksés (konci aksés anu tos dipikanyaho anu mastikeun hak aksés kana awan data) sareng sertipikat TLS. Pendekatan di luhur dianggap henteu aman sareng henteu cekap efektif, janten kami ngahijikeun NextCloud, ONLYOFFICE sareng nginx umum, anu misahkeun pamundut ku nami domain, nganggo docker-compose. Ieu léngkah-léngkah inpormasi ngeunaan cara ngalakukeunana.

Lengkah 1: wadah nginx

Ieu mangrupikeun setelan anu saderhana pisan, tapi léngkah ieu peryogi seueur padamelan pikeun ngonpigurasikeun server proxy sabalikna. Urang mimiti nyiptakeun konfigurasi docker-compose pikeun nginx: gambar stabil.

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

Ieu nyiptakeun wadahna kalawan palabuhan 80 jeung 443 kabuka pikeun umum, peta konfigurasi nginx/nginx-vhost.conf, sarta ngahartikeun hiji toko pikeun sertipikat dihasilkeun salaku sertipikat timer ditandatanganan atawa ngagunakeun certbot Hayu urang encrypt di /nginx/sertipikat. Lokasi ieu kedah ngandung polder pikeun office.yourdomain.com sareng cloud.yourdomain.com, kalayan file fullchain1.pem sareng privkey1.pem dina masing-masing pikeun ranté sertipikat sareng konci pribadi server. Anjeun tiasa maca langkung seueur ngeunaan kumaha carana ngahasilkeun sertipikat anu ditandatanganan diri Ieuh. www.akadia.com/services/ssh_test_certificate.html (ngaganti ngaran .konci na .crt ka .pem jalan tanpa ngarobah struktur file pikeun nginx).

Saatos éta, urang netepkeun file vhost. Urang mimiti ngartikeun paripolah port 80 salaku alihan basajan ka HTTPS, sabab urang teu hayang ngidinan sagala lalulintas http

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

Kami teras nyiptakeun dua server virtual dina port 443 pikeun jasa kami:

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

Lengkah 2: jasa dokumén

Ayeuna urang kedah nambihan wadah jasa dokumén ka docker-compose.yml kami. Aya nanaon husus pikeun ngonpigurasikeun dieu.

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

Tapi tong hilap ngahubungkeun wadah nginx kana jasa dokumén:

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

Lengkah 3: NextCloud

Mimiti, tambahkeun jasa énggal:

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

sareng tambahkeun tautan ka nginx:

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

Ayeuna waktuna pikeun ngamuat wadahna.

docker-compose up -d  

Saatos sababaraha waktos, nginx bakal ngamimitian alihan anjeun ka tungtung hareup NextCloud, anu mangrupikeun halaman konfigurasi standar. Anjeun kedah ngalebetkeun nami pangguna sareng kecap konci pikeun pangguna admin munggaran anjeun sareng kredensial pangkalan data anu anjeun nyayogikeun dina docker-compose.yml Sakali setélan parantos réngsé, anjeun bakal tiasa login. Dina kasus urang, antosan nyandak ampir menit sareng peryogi refresh tambahan halaman login sateuacan urang tiasa lebet kana jasa awan.

Jandéla setélan jasa NextCloudNyetél NextCloud + ONLYOFFICE dina server anu sami sareng Docker

Lengkah 4: Nyambungkeun NextCloud sareng ONLYOFFICE

Dina léngkah ieu, anjeun kedah masang aplikasi pikeun NextCloud, anu nyambungkeun fungsionalitas ONLYOFFICE. Hayu urang mimitian ku panel kontrol aplikasi di pojok katuhu luhur ménu. Milarian aplikasi ONLYOFFICE (dina Kantor & téks atanapi nganggo milarian), pasang sareng aktipkeun.

Saatos éta angkat ka Setélan ngalangkungan ménu di pojok katuhu luhur sareng anjeun kedah mendakan item ONLYOFFICE dina ménu kénca. Lebet ka dinya. Anjeun bakal kedah ngadaptar alamat sakumaha dituduhkeun di handap.

Setélan aplikasi integrasiNyetél NextCloud + ONLYOFFICE dina server anu sami sareng Docker

Alamat anu munggaran dianggo pikeun ngahubungkeun sababaraha file js sareng css langsung tina aplikasi anu dijalankeun dina browser (ieu anu urang peryogikeun pikeun muka aksés kana jasa ONLYOFFICE ngalangkungan nginx). Konci rusiah henteu dianggo kusabab urang percanten ka lapisan isolasi Docker langkung seueur tibatan konci auténtikasi anu pengkuh. Alamat katilu dianggo ku wadah NextCloud pikeun nyambung langsung ka API ONLYOFFICE, sareng nganggo hostname internal standar ti Docker. Nya, lapangan terakhir dianggo supados ONLYOFFICE tiasa ngadamel pamundut deui ka API NextCloud nganggo alamat IP éksternal atanapi alamat Docker internal upami anjeun nganggo jaringan Docker, tapi ieu henteu dianggo dina kasus urang. Pastikeun setelan firewall Anjeun ngidinan jenis ieu interaksi.

Saatos nyimpen, NextCloud bakal nguji sambungan sareng, upami sadayana leres, bakal nunjukkeun anjeun setélan anu aya hubunganana sareng integrasi - contona, jinis file naon anu tiasa diédit ku integrasi ieu. Sesuaikeun sakumaha anu anjeun pikahoyong.

Hambalan ahir: dimana manggihan redaktur

Upami anjeun uih deui ka polder panyimpen awan anjeun teras klik dina "+" pikeun nyiptakeun file énggal, maka anjeun bakal gaduh pilihan énggal pikeun nyiptakeun dokumén, spreadsheet atanapi presentasi. Kalayan bantosanana, anjeun bakal nyiptakeun sareng langsung tiasa ngédit jinis file ieu nganggo ONLYOFFICE.

Menu nyiptakeun fileNyetél NextCloud + ONLYOFFICE dina server anu sami sareng Docker

Suplemén 1

Eusi lengkep docker-compose.yml tiasa dipendakan di dieu: https://pastebin.com/z1Ti1fTZ

sumber: www.habr.com

Tambahkeun komentar