Este greu de subestimat valoarea suitelor de birou online precum Google Docs și stocarea în cloud în viața oamenilor orientați spre tehnologie. Tehnologia a devenit atât de răspândită încât chiar și Microsoft, care a dominat de multă vreme piața aplicațiilor de birou, s-a concentrat recent pe dezvoltarea aplicației web Office 365 și să convingă utilizatorii să treacă la un model de abonament pentru utilizarea propriilor servicii. Îi invităm pe cei interesați de procesul de instalare și configurare a propriului spațiu de stocare sub cat.
Cu ceva timp în urmă, am analizat soluțiile de stocare în cloud și suitele de birou web open source care ar putea fi implementate cu ușurință pentru a fi utilizate într-o micro-întreprindere. Principala motivație pentru păstrarea online a întregii documentații este menținerea documentelor la minimum și implementarea bunelor practici de afaceri în ciuda volumului redus de tranzacții. Reversul medaliei este că închirierea unui server cloud pentru a oferi acest serviciu este mai puțin sigură decât stocarea lui direct la sediul întreprinderii, deoarece nu aveți niciun mijloc de a audita accesul fizic la serverul dvs. sau traficul. Prin urmare, sunt necesare și criptarea end-to-end și software-ul open source.
Luând în considerare toate informațiile disponibile despre soluțiile open source, am găsit două proiecte active (cu commit-uri în depozitul git în ultimele 12 luni) dezvoltate pentru stocarea în cloud: NextCloud și OwnCloud și singura suită de birou ONLYOFFICE activă. Ambele instrumente de stocare în cloud au aproximativ aceeași funcționalitate, iar decizia de a alege NextCloud sa bazat pe existența dovezilor că acesta poate fi integrat cu ONLYOFFICE pentru o interacțiune confortabilă a utilizatorului cu software-ul. Cu toate acestea, când am început implementarea serviciilor, a devenit evidentă lipsa de informații privind integrarea serviciilor de mai sus. Am găsit 3 videoclipuri tutorial despre cum să integrăm:
Niciunul dintre cele trei videoclipuri nu a răspuns la întrebarea instalării serviciului de documente ONLYOFFICE pe același server fizic ca NextCloud cu un nginx partajat. În schimb, au folosit tehnici de separare, cum ar fi folosirea de porturi separate pentru API-ul serviciului de documente. O altă opțiune sugerată a fost implementarea unui server separat pentru Document Service, configurând manual instanța nginx încorporată în Document Service pentru a instala o cheie de acces (o cheie de acces precunoscută care confirmă dreptul de a accesa cloud-ul de date) și certificate TLS. Abordările de mai sus au fost considerate nesigure și insuficient de eficiente, așa că am integrat NextCloud, ONLYOFFICE și un nginx comun, care separă cererile după nume de domenii, folosind docker-compose. Iată informații pas cu pas despre cum să o faci.
Pasul 1: containerul nginx
Aceasta este o configurare foarte simplă, dar acest pas necesită cea mai mare muncă pentru a configura serverul proxy invers. Am creat mai întâi configurația docker-compose pentru imaginea nginx:stable.
Acest lucru creează un container cu porturile 80 și 443 deschise publicului, mapează configurația la nginx/nginx-vhost.conf și definește un magazin pentru certificate generate ca certificate autosemnate sau folosind certificatul Let's encrypt în /nginx/certificates. Această locație ar trebui să conțină foldere pentru office.yourdomain.com și cloud.yourdomain.com, cu fișiere fullchain1.pem și privkey1.pem în fiecare pentru lanțul de certificate și, respectiv, cheia privată a serverului. Puteți citi mai multe despre cum să generați un certificat autosemnat aici. www.akadia.com/services/ssh_test_certificate.html (redenumirea .key și .crt în .pem funcționează fără a converti structura fișierului pentru nginx).
După aceea, am definit fișierul vhost. Mai întâi definim comportamentul portului 80 ca o simplă redirecționare către https, deoarece nu vrem să permitem niciun trafic http
Dar nu uitați să conectați containerul nginx la serviciul de documente:
services:
...
nginx:
...
depends_on:
- onlyoffice
Pasul 3: NextCloud
Mai întâi, adăugați servicii noi:
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
și adăugați un link către nginx:
services:
...
nginx:
...
depends_on:
- app
Acum este timpul să încărcăm containerele.
docker-compose up -d
După un timp, nginx va începe să vă redirecționeze către front-end-ul NextCloud, care este pagina de configurare implicită. Va trebui să introduceți numele de utilizator și parola pentru primul dvs. utilizator administrativ și datele de conectare ale bazei de date pe care le-ați furnizat în docker-compose.yml Odată ce configurarea este finalizată, vă veți putea autentifica. În cazul nostru, așteptarea a durat aproape un minut și a necesitat o reîmprospătare suplimentară a paginii de conectare înainte de a ne putea conecta la serviciul cloud.
Fereastra de setări a serviciului NextCloud
Pasul 4: Conectarea NextCloud și ONLYOFFICE
La acest pas, va trebui să instalați aplicația pentru NextCloud, care conectează funcționalitatea ONLYOFFICE. Să începem cu panoul de control al aplicației din colțul din dreapta sus al meniului. Găsiți aplicația ONLYOFFICE (sub Office și text sau folosind căutare), instalați-o și activați-o.
După aceea, mergeți la Setări prin meniul din colțul din dreapta sus și ar trebui să găsiți elementul ONLYOFFICE în meniul din stânga. Intră în ea. Va trebui să înregistrați adresele așa cum este indicat mai jos.
Setările aplicației de integrare
Prima adresă este folosită pentru a conecta la unele fișiere js și css direct din aplicația care rulează în browser (de asta avem nevoie pentru a deschide accesul la serviciul ONLYOFFICE prin nginx). Cheia secretă nu este folosită deoarece avem mai multă încredere în stratul de izolare Docker decât în cheia de autentificare persistentă. A treia adresă este utilizată de containerul NextCloud pentru a se conecta direct la API-ul ONLYOFFICE și folosește numele de gazdă intern implicit de la Docker. Ei bine, ultimul câmp este folosit pentru ca ONLYOFFICE să poată face solicitări înapoi către API-ul NextCloud folosind o adresă IP externă sau o adresă Docker internă dacă utilizați rețele Docker, dar acest lucru nu este folosit în cazul nostru. Asigurați-vă că setările firewall-ului permit astfel de interacțiuni.
După salvare, NextCloud va testa conexiunea și, dacă totul este corect, vă va arăta setările legate de integrare - de exemplu, ce tipuri de fișiere pot fi editate prin această integrare. Personalizați după cum credeți de cuviință.
Pasul final: unde găsiți editorul
Dacă reveniți la folderele de stocare în cloud și faceți clic pe „+” pentru a crea un fișier nou, atunci veți avea o nouă opțiune pentru a crea un document, o foaie de calcul sau o prezentare. Cu ajutorul lor, veți crea și veți putea imediat edita aceste tipuri de fișiere folosind ONLYOFFICE.