Nggawe NextCloud + ONLYOFFICE ing server sing padha karo Docker

Hey Habr! Aku menehi perhatian marang terjemahan artikel kasebut "Nyetel NextCloud lan ONLYOFFICE ing server siji karo Docker".

Pancen angel ngremehake regane suite kantor online kaya Google Docs lan panyimpenan awan ing urip wong sing berorientasi teknologi. Teknologi kasebut wis nyebar banget nganti Microsoft, sing wis suwe nguwasani pasar aplikasi kantor, bubar fokus kanggo ngembangake aplikasi web Office 365 lan ngyakinake pangguna kanggo ngalih menyang model langganan kanggo nggunakake layanan dhewe. Kita ngajak wong-wong sing kasengsem ing proses nginstal lan ngatur panyimpenan dhewe ing kucing.

Sawetara wektu kepungkur, kita ndeleng solusi panyimpenan awan lan suite kantor web sumber terbuka sing bisa gampang digunakake kanggo perusahaan mikro. Motivasi utama kanggo njaga kabeh dokumentasi online yaiku supaya dokumen minimal lan ngetrapake praktik bisnis sing apik sanajan volume transaksi sithik. Sisih liyane saka duwit receh iku nyewa server maya kanggo nyedhiyani layanan iki kurang aman saka nyimpen langsung ing latar perusahaan, amarga sampeyan ora duwe sarana kanggo audit akses fisik menyang server utawa lalu lintas. Mula, enkripsi end-to-end lan piranti lunak open source uga dibutuhake.

Nggatekake kabeh informasi sing kasedhiya babagan solusi sumber terbuka, kita nemokake rong proyek aktif (kanthi komitmen ing repositori git sajrone 12 wulan kepungkur) sing dikembangake kanggo panyimpenan maya: NextCloud lan OwnCloud, lan siji-sijine suite kantor ONLYOFFICE sing aktif. Loro-lorone alat panyimpenan maya nduweni fungsi sing padha, lan keputusan kanggo milih NextCloud adhedhasar bukti yen bisa digabungake karo ONLYOFFICE kanggo interaksi pangguna sing nyaman karo piranti lunak kasebut. Nanging, nalika miwiti nggunakake layanan kasebut, kekurangan informasi babagan nggabungake layanan ing ndhuwur dadi katon. Kita nemokake 3 video tutorial babagan cara nggabungake:

Ora ana telung video sing mangsuli pitakon babagan nginstal layanan dokumen ONLYOFFICE ing server fisik sing padha karo NextCloud kanthi nginx sing dienggo bareng. Nanging, dheweke nggunakake teknik pamisahan kayata nggunakake port sing kapisah kanggo layanan dokumen api. Saran liyane yaiku masang server sing kapisah kanggo Layanan Dokumen, kanthi manual ngonfigurasi conto nginx sing dibangun ing Layanan Dokumen kanggo nginstal kunci akses (kunci akses sing wis dikenal sing ngonfirmasi hak ngakses awan data) lan sertifikat TLS. Pendekatan ing ndhuwur dianggep ora aman lan ora cukup efektif, mula kita nggabungake NextCloud, ONLYOFFICE lan nginx umum sing misahake panjalukan kanthi jeneng domain nggunakake docker-compose. Mangkene informasi langkah demi langkah babagan carane nindakake.

Langkah 1: wadhah nginx

Iki persiyapan banget prasaja, nanging langkah iki mbutuhake paling karya kanggo ngatur server proxy mbalikke. Kita pisanan nggawe konfigurasi docker-compose kanggo 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

Iki nggawe wadhah karo bandar 80 lan 443 mbukak kanggo umum, maps konfigurasi kanggo nginx/nginx-vhost.conf, lan nemtokake nyimpen kanggo sertifikat kui minangka sertifikat poto-mlebu utawa nggunakake Ayo encrypt certbot ing /nginx/sertifikat. Lokasi iki kudu ngemot folder kanggo office.yourdomain.com lan cloud.yourdomain.com, kanthi file fullchain1.pem lan privkey1.pem ing saben rantai sertifikat lan kunci pribadi server. Sampeyan bisa maca liyane babagan carane nggawe sertifikat sing ditandatangani dhewe ing kene. www.akadia.com/services/ssh_test_certificate.html (jeneng .key lan .crt kanggo .pem dianggo tanpa ngowahi struktur file kanggo nginx).

Sawise iku, kita nemtokake file vhost. Kita pisanan nemtokake prilaku port 80 minangka pangalihan prasaja menyang https, amarga kita ora pengin ngidini lalu lintas http

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

Kita banjur nggawe loro server virtual ing port 443 kanggo layanan kita:

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

Langkah 2: layanan dokumen

Saiki kita kudu nambah wadhah layanan dokumen menyang docker-compose.yml. Ana apa-apa khusus kanggo ngatur kene.

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

Nanging aja lali ngubungake wadhah nginx menyang layanan dokumen:

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

Langkah 3: Sabanjure Cloud

Pisanan, tambahake layanan anyar:

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

lan nambah link menyang nginx:

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

Saiki wektune ngisi wadhah.

docker-compose up -d  

Sawise sawetara wektu, nginx bakal miwiti ngarahake sampeyan menyang mburi ngarep NextCloud, yaiku kaca konfigurasi standar. Sampeyan kudu ngetik jeneng pangguna lan sandhi kanggo pangguna admin pisanan lan kredensial database sing diwenehake ing docker-compose.yml Sawise persiyapan rampung, sampeyan bakal bisa mlebu. Ing kasus kita, ngenteni meh sak menit lan mbutuhake refresh tambahan kaca login sadurunge bisa mlebu menyang layanan maya.

Jendhela setelan layanan NextCloudNggawe NextCloud + ONLYOFFICE ing server sing padha karo Docker

Langkah 4: Nyambungake NextCloud lan ONLYOFFICE

Ing langkah iki, sampeyan kudu nginstal aplikasi kanggo NextCloud, sing nyambungake fungsi ONLYOFFICE. Ayo dadi miwiti karo panel kontrol aplikasi ing pojok tengen ndhuwur menu. Temokake aplikasi ONLYOFFICE (ing Kantor & teks utawa nggunakake telusuran), instal lan aktifake.

Banjur pindhah menyang Setelan liwat menu ing pojok tengen ndhuwur lan sampeyan kudu nemokake item ONLYOFFICE ing menu kiwa. Ga menyang. Sampeyan kudu ndhaptar alamat kaya sing dituduhake ing ngisor iki.

Setelan aplikasi integrasiNggawe NextCloud + ONLYOFFICE ing server sing padha karo Docker

Alamat pisanan digunakake kanggo nyambung menyang sawetara file js lan css langsung saka aplikasi sing mlaku ing browser (iki sing dibutuhake kanggo mbukak akses menyang layanan ONLYOFFICE liwat nginx). Tombol rahasia ora digunakake amarga kita dipercaya lapisan isolasi Docker luwih saka kunci otentikasi sing terus-terusan. Alamat katelu digunakake dening wadhah NextCloud kanggo nyambung langsung menyang API ONLYOFFICE, lan nggunakake jeneng host internal standar saka Docker. Ya, lapangan pungkasan digunakake supaya ONLYOFFICE bisa nggawe panjalukan maneh menyang NextCloud API nggunakake alamat IP eksternal utawa alamat Docker internal yen sampeyan nggunakake jaringan Docker, nanging iki ora digunakake ing kasus kita. Priksa manawa setelan firewall sampeyan ngidini interaksi kasebut.

Sawise nyimpen, NextCloud bakal nyoba sambungan kasebut lan, yen kabeh wis bener, bakal nuduhake setelan sing ana gandhengane karo integrasi - contone, jinis file apa sing bisa diowahi kanthi integrasi iki. Kustomisasi kaya sing dikarepake.

Langkah pungkasan: ngendi kanggo nemokake editor

Yen sampeyan bali menyang folder panyimpenan maya lan klik "+" kanggo nggawe file anyar, sampeyan bakal duwe pilihan anyar kanggo nggawe dokumen, spreadsheet utawa presentasi. Kanthi bantuan, sampeyan bakal nggawe lan langsung bisa ngowahi jinis file kasebut nggunakake ONLYOFFICE.

menu nggawe fileNggawe NextCloud + ONLYOFFICE ing server sing padha karo Docker

Tambahan 1

Isi lengkap docker-compose.yml bisa ditemokake ing kene: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Add a comment