Configurazione NextCloud + ONLYOFFICE nantu à u listessu servitore cù Docker

Ehi Habr! Prestu à a vostra attenzione a traduzzione di l'articulu "Configurazione di NextCloud è ONLYOFFICE nantu à un servitore unicu cù Docker".

Hè difficiuli di sottovalutà u valore di e suite di l'uffiziu in linea cum'è Google Docs è u almacenamentu in nuvola in a vita di e persone orientate à a tecnulugia. A tecnulugia hè diventata cusì diffusa chì ancu Microsoft, chì hà longu duminatu u mercatu di l'applicazioni di l'uffiziu, hà recentemente focu annantu à u sviluppu di l'applicazione web Office 365 è cunvince l'utilizatori à cambià à un mudellu di abbonamentu per utilizà i so servizii. Invitemu quelli chì sò interessate in u prucessu di stallà è cunfigurà u so propiu almacenamentu sottu cat.

Qualchì tempu fà avemu guardatu solu suluzioni di almacenamentu in nuvola è suite d'uffiziu web open source chì puderanu esse facilmente implementate per l'usu in una micro-impresa. A motivazione principale per mantene tutta a documentazione in linea hè di mantene a documentazione à u minimu è di implementà boni pratiche cummerciale malgradu u bassu voluminu di transazzione. L'altra parte di a munita hè chì l'affittu di un servitore in nuvola per furnisce stu serviziu hè menu sicuru ch'è l'almacenà direttamente in u locu di l'impresa, postu chì ùn avete micca alcunu mezzu di audità l'accessu fisicu à u vostru servitore o u trafficu. Dunque, a criptografia end-to-end è u software open source sò ancu necessarii.

In cunsiderà tutte l'infurmazioni dispunibuli nantu à e soluzioni open source, avemu trovu dui prughjetti attivi (cù cummissioni in u repository git per l'ultimi mesi 12) sviluppati per u almacenamentu in nuvola: NextCloud è OwnCloud, è l'unica suite d'uffiziu ONLYOFFICE attiva. I dui strumenti di almacenamentu in nuvola anu quasi a listessa funziunalità, è a decisione di sceglie NextCloud hè stata basatu annantu à l'esistenza di evidenza chì pò esse integrata cù ONLYOFFICE per una interazzione còmoda di l'utilizatori cù u software. In ogni casu, quandu avemu cuminciatu à implementà i servizii, a mancanza d'infurmazioni nantu à l'integrazione di i servizii sopra hè diventata apparente. Avemu trovu 3 video tutoriali nantu à cumu integrà:

Nisunu di i trè video risponde à a quistione di installà u serviziu di documentu ONLYOFFICE in u stessu servitore fisicu cum'è NextCloud cù un nginx spartutu. Invece, anu utilizatu tecniche di separazione cum'è l'usu di porti separati per l'api di serviziu di documentu. Un'altra opzione suggerita era di implementà un servitore separatu per Document Service, cunfigurà manualmente l'istanza nginx integrata in Document Service per installà una chjave d'accessu (una chjave d'accessu pre-cunnisciuta chì cunfirma u dirittu di accede à a nuvola di dati) è certificati TLS. L'avvicinamenti sopra sò stati cunsiderati micca sicuri è micca abbastanza efficaci, cusì avemu integratu NextCloud, ONLYOFFICE è un nginx cumuni, chì separa e dumande per nomi di duminiu, utilizendu docker-compose. Eccu l'infurmazioni passu à passu nantu à cumu fà.

Passu 1: container nginx

Questa hè una cunfigurazione assai simplice, ma questu passu richiede u più travagliu per cunfigurà u servitore proxy inversu. Prima avemu creatu a cunfigurazione docker-compose per l'imagine nginx:stable.

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

Questu crea un cuntainer cù i porti 80 è 443 aperti à u publicu, mape a cunfigurazione à nginx/nginx-vhost.conf, è definisce un magazinu per i certificati generati cum'è certificati autofirmati o utilizendu Let's encrypt's certbot in /nginx/certificates. Stu locu duverebbe cuntene cartulare per office.yourdomain.com è cloud.yourdomain.com, cù i schedari fullchain1.pem è privkey1.pem in ognunu per a catena di certificati è a chjave privata di u servitore, rispettivamente. Pudete leghje più nantu à cumu generà un certificatu autofirmatu quì. www.akadia.com/services/ssh_test_certificate.html (rinominate .key è .crt à .pem funziona senza cunvertisce a struttura di u schedariu per nginx).

Dopu quì, avemu definitu u schedariu vhost. Prima definemu u cumpurtamentu di u portu 80 cum'è una redirezzione simplice à https, perchè ùn vulemu micca permette alcun trafficu http

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

Dopu avemu creatu dui servitori virtuali in u portu 443 per i nostri servizii:

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

Passu 2: serviziu di documentu

Avà avemu bisognu di aghjunghje u cuntinuu di serviziu di documentu à u nostru docker-compose.yml. Ùn ci hè nunda di speciale per cunfigurà quì.

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

Ma ùn vi scurdate di ligà u containeru nginx à u serviziu di documentu:

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

Passu 3: NextCloud

Prima, aghjunghje novi servizii:

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

è aghjunghje un ligame à nginx:

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

Avà hè u tempu di carricà i cuntenituri.

docker-compose up -d  

Dopu un pocu tempu, nginx cumminciarà à reindirizzà à u front-end NextCloud, chì hè a pagina di cunfigurazione predeterminata. Avete bisognu di inserisce u nome d'utilizatore è a password per u vostru primu utilizatore amministratore è e credenziali di a basa di dati chì avete furnitu in docker-compose.yml Una volta chì a stallazione hè cumpleta, puderete login. In u nostru casu, l'aspittà hà pigliatu quasi un minutu è hà bisognu di un rinfrescante supplementu di a pagina di login prima di pudè accede à u serviziu di nuvola.

Finestra di paràmetri di u serviziu NextCloudConfigurazione NextCloud + ONLYOFFICE nantu à u listessu servitore cù Docker

Passu 4: Cunnettendu NextCloud è ONLYOFFICE

À questu passu, avete bisognu di stallà l'applicazione per NextCloud, chì cunnetta a funziunalità ONLYOFFICE. Cuminciamu cù u pannellu di cuntrollu di l'applicazione in l'angulu superiore dirittu di u menù. Truvate l'app ONLYOFFICE (sottu Office & testu o usendu a ricerca), installate è attivate.

Dopu quì, vai à Settings via u menù in l'angulu superiore destra è duvete truvà l'elementu ONLYOFFICE in u menù di manca. Andate in lu. Avete bisognu di registrà l'indirizzi cum'è indicatu quì sottu.

Paràmetri di l'applicazione di integrazioneConfigurazione NextCloud + ONLYOFFICE nantu à u listessu servitore cù Docker

U primu indirizzu hè utilizatu per ligà à qualchi file js è css direttamente da l'applicazione in esecuzione in u navigatore (questu hè ciò chì avemu bisognu per apre l'accessu à u serviziu ONLYOFFICE attraversu nginx). A chjave secreta ùn hè micca usata perchè avemu fiducia in a capa d'isolazione di Docker più cà a chjave di autentificazione persistente. U terzu indirizzu hè utilizatu da u containeru NextCloud per cunnette direttamente à l'API ONLYOFFICE, è usa u nome di host internu predeterminatu da Docker. Ebbè, l'ultimu campu hè adupratu in modu chì ONLYOFFICE pò fà richieste di ritornu à l'API NextCloud utilizendu un indirizzu IP esternu o un indirizzu Docker internu se utilizate e rete Docker, ma questu ùn hè micca usatu in u nostru casu. Assicuratevi chì i vostri paràmetri di firewall permettenu stu tipu d'interazzione.

Dopu avè salvatu, NextCloud testerà a cunnessione è, se tuttu hè currettu, vi mostrarà i paràmetri ligati à l'integrazione - per esempiu, chì tipi di schedari ponu esse editati da questa integrazione. Personalizà cum'è vo vede bè.

U passu finali: induve truvà l'editore

Sè vo turnate à i vostri cartulare di almacenamento in nuvola è cliccate nant'à u "+" per creà un novu schedariu, allora avete una nova opzione per creà un documentu, spreadsheet o presentazione. Cù u so aiutu, avete da creà è immediatamente puderà edità sti tipi di schedari cù ONLYOFFICE.

Menu di creazione di fileConfigurazione NextCloud + ONLYOFFICE nantu à u listessu servitore cù Docker

Supplementu 1

U cuntenutu sanu di docker-compose.yml pò esse truvatu quì: https://pastebin.com/z1Ti1fTZ

Source: www.habr.com

Add a comment