Instalacija ONLYOFFICE Docs za Docker na KylinOS
Uvod
Community Edition vam omogućava da instalirate ONLYOFFICE Docs na vaš lokalni server i integrišete online uređivače sa ONLYOFFICE platformom za saradnju ili drugim popularnim sistemima (pogledajte detaljnu listu funkcionalnosti). Počevši od verzije 7.2, Docker slike ONLYOFFICE Docs su prepravljene za rad na Kylin Linux Advanced Server OS verziji V10; ovaj vodič će vam pokazati kako da instalirate Docker verziju ONLYOFFICE Docs Community Edition na KylinOS.
Sistemski zahtevi
- CPU: dual-core 2 GHz ili bolji
- RAM: 4 GB ili više
- HDD: najmanje 40 GB slobodnog prostora
- SWAP: najmanje 4 GB, ali zavisi od operativnog sistema domaćina. Više je bolje
- OS: amd64 Linux distribucija sa kernel verzijom 3.10 ili novijom
- Docker: bilo koja verzija podržana od strane KylinOS
Instalacija ONLYOFFICE Docs
Docker podrazumevano koristi Google DNS servere. Ako vaš ONLYOFFICE Docs neće imati pristup internetu, preporučujemo da promenite podrazumevanu Docker DNS adresu na adresu vašeg lokalnog DNS servera. Da biste to uradili, idite na fajl /etc/default/docker i promenite IP adresu u sledećem redu na IP adresu DNS servera u vašoj lokalnoj mreži:
docker_OPTS="--dns 8.8.8.8"
Za operativne sisteme zasnovane na RPM-u kao što je CentOS:
-
Kreirajte konfiguracioni fajl
/etc/docker/daemon.jsonsa sledećim sadržajem:{ "dns" : [ "8.8.8.8" ] } -
Ponovo pokrenite Docker servis:
sudo systemctl restart docker.service
Onemogućavanje SELinux-a
Potrebno je da onemogućite SELinux u konfiguracionom fajlu /etc/selinux/config.
Otvorite fajl /etc/selinux/config koristeći bilo koji tekst editor, zamenite string SELINUX=enforcing ili SELINUX=permissive sa SELINUX=disabled i sačuvajte promene.
Ponovo pokrenite vaš server kako bi promene stupile na snagu. Uverite se da je SELinux onemogućen:
[root@test ~]# sestatus
SELinux status: disabled
Instaliranje ONLYOFFICE Docs
Izvršite sledeću komandu za instalaciju ONLYOFFICE Docs:
sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Počevši od verzije 7.2, dodali smo nasumično generisanje JWT tajne. Ako JWT tajna nije navedena pomoću promenljive okruženja, to dovodi do njenog ponovnog generisanja tokom svakog ponovnog pokretanja VM-ova ili fizičkog servera, pa mogu nastati problemi u integracijama. Da biste izbegli ovaj problem, navedite svoju vrednost u -e JWT_SECRET=my_jwt_secret.
Ako ne planirate da koristite JWT u vašoj instalaciji, koristite -e JWT_ENABLED=false.
Ključ --security-opt seccomp=unconfined je potreban za onemogućavanje sigurnosnih profila za kontejner. Više detalja možete pronaći ovde.
Možete koristiti i naš prilagođeni sigurnosni profil: kylin-seccomp7.json.
Podrazumevano, ONLYOFFICE Docs sluša dolazne veze koristeći port 80. Počevši od verzije 4.3, možete promeniti port za ONLYOFFICE Docs ako planirate da ga koristite umesto podrazumevanog. Ovo se lako može uraditi promenom porta mapiranja tokom instalacije:
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Gde je <PORT_NUMBER> broj porta koji želite da ONLYOFFICE Docs koristi.
Ovo će instalirati ONLYOFFICE Docs i sve zavisnosti koje su mu potrebne (lista onoga što skripta radi može se naći ovde).
Dodavanje izuzetka za firewall
Takođe je potrebno dodati izuzetak za servis firewalld.service:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Kada se konfiguracija završi, možete uneti http://localhost u adresnu traku vašeg pretraživača da otvorite početnu stranicu ONLYOFFICE Docs, gde ćete pronaći dalja uputstva o tome kako omogućiti primere dokumenata ili integrisati online uređivače u vašu web aplikaciju koristeći dostavljeni API.
Skladištenje podataka van kontejnera
Svi podaci se skladište u posebno dizajniranim direktorijumima, volumenima podataka, na sledećoj lokaciji:
/var/log/onlyofficeza logove ONLYOFFICE Docs/var/www/onlyoffice/Dataza sertifikate/var/lib/onlyofficeza keš fajlova
Preporučujemo da skladištite podatke van Docker kontejnera na host mašini jer vam to omogućava lako ažuriranje ONLYOFFICE Docs kada se nova verzija objavi, bez gubitka podataka.
Da biste dobili pristup vašim podacima koji se nalaze van kontejnera, potrebno je da montirate volumene. To se može uraditi navođenjem opcije -v u docker run komandi.
sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
Napominjemo da, u slučaju da pokušavate da montirate foldere koji još nisu kreirani, ti folderi će biti kreirani, ali će pristup njima biti ograničen. Moraćete ručno da promenite njihova prava pristupa.
Obično nije potrebno skladištiti podatke kontejnera jer rad kontejnera ne zavisi od njegovog stanja. Čuvanje podataka će biti korisno:
- za lak pristup podacima kontejnera, kao što su logovi;
- za uklanjanje ograničenja veličine podataka unutar kontejnera.
Pokretanje ONLYOFFICE Docs koristeći HTTPS
sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Pristup ONLYOFFICE aplikaciji može biti osiguran korišćenjem SSL-a kako bi se sprečio neovlašćen pristup. Dok CA sertifikovani SSL sertifikat omogućava verifikaciju poverenja putem CA, samopotpisani sertifikati takođe mogu pružiti jednak nivo verifikacije poverenja sve dok svaki klijent preduzme dodatne korake da verifikuje identitet vašeg sajta. Uputstva za postizanje ovoga su data ispod.
Da biste osigurali aplikaciju putem SSL-a, u osnovi su potrebne dve stvari:
- Privatni ključ (.key)
- SSL sertifikat (.crt)
Stoga je potrebno da kreirate i instalirate sledeće fajlove:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
Kada koristite CA sertifikovane sertifikate (npr. Let's Encrypt), ove fajlove vam obezbeđuje CA. Ako koristite samopotpisane sertifikate, potrebno je da generišete ove fajlove sami.
Prebacivanje ONLYOFFICE Docs na HTTPS koristeći certbot
Najlakši način da prebacite ONLYOFFICE Docs na HTTPS je da automatski dobijete Let's Encrypt SSL sertifikate koristeći certbot.
Pokrenite ONLYOFFICE Docs Docker kontejner, navodeći portove 80 i 443 i postavljajući svoje vrednosti za promenljive:
sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Gde:
- LETS_ENCRYPT_DOMAIN - ime domena koje će se koristiti za sertifikat.
- LETS_ENCRYPT_MAIL - email koji se koristi za registraciju i kontakt za oporavak.
Sertifikat potpisan od strane letsencrypt.org CA će biti automatski generisan i instaliran na vaš server. Sada bi vaš ONLYOFFICE Docs trebalo da bude dostupan na adresi https://yourdomain.com.
Generisanje samopotpisanih sertifikata
Generisanje samopotpisanih SSL sertifikata uključuje jednostavnu proceduru u 3 koraka:
KORAK 1: Kreirajte privatni ključ servera
openssl genrsa -out onlyoffice.key 2048
KORAK 2: Kreirajte zahtev za potpisivanje sertifikata (CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr
KORAK 3: Potpišite sertifikat koristeći privatni ključ i CSR
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
Sada ste generisali SSL sertifikat koji važi 365 dana.
Jačanje sigurnosti servera
Ovaj odeljak vam pruža uputstva kako da ojačate sigurnost vašeg servera.
Da biste to postigli, potrebno je da generišete jače DHE parametre.
openssl dhparam -out dhparam.pem 2048
Instalacija SSL sertifikata
Od četiri gore generisana fajla, potrebno je instalirati onlyoffice.key, onlyoffice.crt i dhparam.pem fajlove na onlyoffice server. CSR fajl nije potreban, ali ga obavezno sigurnosno kopirajte (za slučaj da vam zatreba ponovo).
Podrazumevana putanja na kojoj je onlyoffice aplikacija konfigurisana da traži SSL sertifikate je /var/www/onlyoffice/Data/certs, međutim, ovo se može promeniti pomoću opcija konfiguracije SSL_KEY_PATH, SSL_CERTIFICATE_PATH i SSL_DHPARAM_PATH.
Putanja /var/www/onlyoffice/Data/ je putanja za skladištenje podataka, što znači da morate kreirati folder nazvan certs unutar /app/onlyoffice/DocumentServer/data/ i kopirati fajlove u njega, a kao meru sigurnosti ažuriraćete dozvole na fajlu onlyoffice.key da bude čitljiv samo od strane vlasnika.
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
I restartujte Docker kontejner:
sudo docker restart {{DOCUMENT_SERVER_ID}}
Sada ste samo jedan korak udaljeni od osiguravanja naše aplikacije.
Dostupni parametri konfiguracije
Da biste izbegli pisanje potencijalno duge docker run komande, možete sačuvati sve promenljive okruženja u običnom tekstualnom fajlu i proslediti ga pomoću zastavice --env-file:
sudo docker run ... --env-file /path/to/your.env onlyoffice/documentserver
Ispod je kompletna lista parametara koji se mogu postaviti pomoću promenljivih okruženja.
- ONLYOFFICE_HTTPS_HSTS_ENABLED: Napredna opcija konfiguracije za isključivanje HSTS konfiguracije. Primenljivo samo kada se koristi SSL. Podrazumevano je
true. - ONLYOFFICE_HTTPS_HSTS_MAXAGE: Napredna opcija konfiguracije za postavljanje maksimalnog trajanja HSTS u onlyoffice NGINX vHost konfiguraciji. Primenljivo samo kada se koristi SSL. Podrazumevano je
31536000. - SSL_CERTIFICATE_PATH: Putanja do SSL sertifikata koji se koristi. Podrazumevano je
/var/www/onlyoffice/Data/certs/tls.crt. - SSL_KEY_PATH: Putanja do privatnog ključa SSL sertifikata. Podrazumevano je
/var/www/onlyoffice/Data/certs/tls.key. - SSL_DHPARAM_PATH: Putanja do Diffie-Hellman parametra. Podrazumevano je
/var/www/onlyoffice/Data/certs/dhparam.pem. - SSL_VERIFY_CLIENT: Omogućava verifikaciju klijentskih sertifikata koristeći fajl
CA_CERTIFICATES_PATH. Podrazumevano jefalse. - NGINX_WORKER_PROCESSES: Definiše broj NGINX radnih procesa.
- NGINX_WORKER_CONNECTIONS: Postavlja maksimalan broj istovremenih konekcija koje može otvoriti NGINX radni proces.
- SECURE_LINK_SECRET: Definiše tajnu za nginx config direktivu secure_link_md5. Podrazumevano je
random string. - JWT_ENABLED: Specifikuje omogućavanje validacije JSON web tokena od strane ONLYOFFICE Docs. Podrazumevano je
true. - JWT_SECRET: Definiše tajni ključ za validaciju JSON web tokena u zahtevu ka ONLYOFFICE Docs. Podrazumevano je slučajna vrednost.
- JWT_HEADER: Definiše HTTP zaglavlje koje će se koristiti za slanje JSON web tokena. Podrazumevano je
Authorization. - JWT_IN_BODY: Specifikuje omogućavanje validacije tokena u telu zahteva ka ONLYOFFICE Docs. Podrazumevano je
false. - WOPI_ENABLED: Specifikuje omogućavanje wopi rukovalaca. Podrazumevano je
false. - USE_UNAUTHORIZED_STORAGE: Postavite na
trueako koristite samopotpisane sertifikate za vaš server za skladištenje, npr. Nextcloud. Podrazumevano jefalse. - GENERATE_FONTS: Kada je
true, regeneriše listu fontova i sličice fontova itd. pri svakom pokretanju. Podrazumevano jetrue. - METRICS_ENABLED: Specifikuje da li je StatsD omogućen za ONLYOFFICE Docs. Podrazumevano je
false. - METRICS_HOST: Definiše StatsD host za slušanje. Podrazumevano je
localhost. - METRICS_PORT: Definiše StatsD port za slušanje. Podrazumevano je
8125. - METRICS_PREFIX: Definiše StatsD prefiks metrika za backend servise. Podrazumevano je
ds.. - LETS_ENCRYPT_DOMAIN: Definiše domen za Let's Encrypt sertifikat.
- LETS_ENCRYPT_MAIL: Definiše adresu e-pošte administratora domena za Let's Encrypt sertifikat.