Nextcloud zerbitzarian bulegotika/ofimatika dokumentuak online editatu ahal izateko lehen aukeretako bat CollaboraOnline erabiltzea da. Oso erreza da bera konfiguratzea, docker bidez instalatzen da eta ondo integratuta dago.
Arazoa da docker kontainerrak batera konektatua egon daitezkeen erabiltzaile kopurua mugatuta daukala: 10 erabiltzaileko/dokumentuko konkurrentzia onartzen du, hortik gora mezu bat azaltzen da muga gainditu dela esanez.
CollaboraOnline docker irudia LibreOfficeOnline-ean oinarrituta dagonez, bigarren hau Nextcloud-ekin erabiltzeko nola instalatu eta konfiguratu dezakegun azaltzera goaz. Lan gehiago eskatuko digu, baina posible da.
Docker kontainerrarekin lan egin dugunean, dena zerbitzari berean izan dugu. Nextcloud zerbitzari batean instalatzen genuen, eta gero zerbitzarian bertan docker erabiliz CollaboraOnline zerbitzua abiatzen genuen.
Hau egiteko, eta dokumentazio ofizialean dauden instrukzioak jarraituz, bi domeinu erabiltzen genituen
• https://hodeia.niredomeinua.eus : Nextcloud zerbitzurako
• https://office.niredomeinua.eus : CollaboraOnline zerbitzurako
Konturatzen bagara, https erabiltzeko konfiguratu dugu, eta horretarako Letsencrypt erabili dugu.
Nextcloud zerbitzarian administratzaile moduan sartuta, CollaboraOnline plugina aktibatu ondoren, bere konfigurazioan zerbitzaria zein den esatea nahikoa izan da dena martxan jartzeko: https://office.niredomeinua.eus
Orain CollaboraOnline ordeztu nahi dugu bere ordez LibreOfficeOnline erabiltzeko. Horretarako bigarren zerbitzari bat erabiliko dugu. Honek etorkizunari begira onura asko ekarriko dizkigu:
Bigarren zerbitzari honen instalazioa bukatzen denean, Nextcloud zerbitzuko CollaboraOnline pluginean bere helbidea jarriko dugu: https://office02.niredomeinua.eus
Aurrerantzean LOOL deituko diogu.
Instalazio hau egiteko Ubuntu 18.04 LTS instalatu berri eta eguneratu batean oinarritzen gara. LOOL deskargatu eta konpilatuko dugu. Honetarako, Github-en dagoen proiektu hau zip moduan deskargatuko dugu eta zerbitzariko karpeta batean deskonprimatuko dugu
https://github.com/husisusi/officeonlin-install.sh/
Aurrez instalatuta izan behar ditugun dependentziak
# apt-get install unzip npm
# curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
# apt-get install -y nodejs
Hurrengo lerro hauek garrantzi berezia dute. Dokumentu bat editatzerakoan automatikoki hizkuntza zuzentzailea aplikatzen saiatzen da. Sisteman zuzentzailea instalatuta ez dagoenean, dokumentu batean zerbait idazten saiatzen zarenean, akats bat ematen du eta berriro dokumentua berriro kargatzen da [ 1 , 2]
Ondorioz, erabiliko dituzun hizkuntzetako zuzentzaileak instalatu beharko ditugu
# apt install hunspell locales-all hunspell-eu-es hunspell-es
Orain konpilazioa. Kontutan izan hau egin ahal izateko gutxienez 4GB RAM eta diskoan 13GB libre izan beharko dituela.
Lasai hartu, ordu batzuk beharko ditu. Agian hoberena gauez martxan uztea litzateke, eta hurrengo goizean dena prest izango genuke.
# cd /root
# wget -c https://github.com/husisusi/officeonlin-install.sh/archive/master.zip
# unzip officeonlin-install.sh-master.zip
# cd officeonlin-install.sh-master/
# ./officeonline-install.sh
Instalazioa bukatu ondoren zerbitzaria berrabiaraziko dugu. Instalazio honek LOOL zerbitzu moduan jarri du
# systemctl status loolwsd.service
Beraz aurrerantzean sistema berrabiarazi nahiko bagenuke (adibidez konfigurazioa aldatu dugulako), honela egitea gomendatzen dute
# systemctl daemon-reload && systemctl restart loolwsd.service
Zerbitzua ondo arrankatu den ikusteko
# systemctl status loolwsd.service
Hau egin ondoren 9980 portuan erantzungo du
Front-End moduan Apache jarriko dugu, horretarako behar diren moduluak aktibatu eta letsencrypt konfiguratu ondoren, eskaerak LOOL zerbitzuari 9980 portua erabiliz bideratzeko konfiguratuko dugu.
# apt-get install apache2
Beharko ditugun moduluak aktibatu
# a2enmod ssl proxy proxy_http proxy_balancer proxy_module proxy_wstunnel
Gure kasuan Ubuntu 18.04 LTS erabiltzen ari gara. Honela instalatu dugu
# apt-get install software-properties-common
# add-apt-repository universe
# add-apt-repository ppa:certbot/certbot
# apt-get update
# apt-get install certbot python-certbot-apache
# certbot --apache
hau da konfigurazio fitxategia: /etc/apache2/sites-enabled/000-default-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
ServerName office02.niredomeinua.eus
SSLCertificateFile /etc/letsencrypt/live/office02.niredomeinua.eus/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/office02.niredomeinua.eus/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# HASIERA LIBREOFFICEONLINE CONF
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
Options -Indexes
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
# BUKAERA LIBREOFFICEONLINE CONF
</VirtualHost>
</IfModule>
Gure zerbitzari honek domeinu izen bat izan behar du, gure kasuan office02.niredomeinua.eus domeinuari erantzuteko prestatu dugu. Apache eta Letsencrypt konfiguratuta ditugu.
Kontua da LOOL-ek ez dituela Apache-ko ziurtagiriak erabiltzen, berak bere ziurtagiri propioak erabiltzen ditu. Hemen proposatzen den soluzioak hau egingo luke:
Gauero kopia egiteko scripta sortu
# mkdir /root/scripts
# cd /root/scripts/
# nano lool-letsencrypt.sh
# chmod +x lool-letsencrypt.sh
Edukian begiratzen badugu, hau da egiten duena. Lehenik eta behin LOOL konfigurazio karpetan, karpeta berri bat sortuko dugu ziurtagiriak bertan kopiatzeko, eta gure LOOL domeinu izenarekin karpeta bat sortuko dugu (aurrez sortuta badaude aurrera jarraituko du).
Ondoren azaltzen den edukiarekin script bat sortuko dugu, eta crontab bidez gauero exekutatuko dugu
#!/bin/sh
mkdir -p /etc/loolwsd/certs/office02.niredomeinua.eus
# Letsencrypt ziurtagiriak kopiatu
cp -f /etc/letsencrypt/live/office02.niredomeinua.eus/cert.pem /etc/loolwsd/certs/office02.niredomeinua.eus/
cp -f /etc/letsencrypt/live/office02.niredomeinua.eus/privkey.pem /etc/loolwsd/certs/office02.niredomeinua.eus/
# Baimenak ondo jarri
chown -Rf lool:lool /etc/loolwsd/certs
chmod -Rf 755 /etc/loolwsd/certs
# eta azkenik zerbitzua berrabiarazi
systemctl daemon-reload && systemctl restart loolwsd.service
LOOL arrankatzekoan erabiliko dituen parametroak hemen konfiguratzen dira
/lib/systemd/system/loolwsd.service
Aurrerago ikusiko dugunez, web bidez admin interfaze bat izango dugu. Hor ikusi ahal izango dugu besteak beste
Admin erabiltzaile horren izena eta pasahitza lerro honetan konfiguratzen da
ExecStart=/opt/online/loolwsd --o:sys_template_path=/opt/online/systemplate --o:lo_template_path=/opt/libreoffice/instdir --o:child_root_path=/opt/online/jails --o:admin_console.username=nireadminerabiltzailea –o:admin_console.password="niresuperpasahitza"
Ezer aldatzen hasi aurretik, gomendagarria da konfigurazio fitxategiaren kopia bat egitea.
# cp /etc/loolwsd/loolwsd.xml /etc/loolwsd/loolwsd.xml.backup
Aldatu ditugun parametroak hauek dira:
Online edizioan gure eskura izango ditugun hizkuntzak konfiguratuko ditugu. Kontutan izan lehenago azaldu dugun moduan, hizkuntza hauetako zuzentzaile ortografikoak instalatuta egon behar direla.
<allowed_languages desc="List of supported languages on this instance." default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">es_ES eu_ES</allowed_languages>
Gure Nextcloud zerbitzaria baimendu “Backend storage” atalean. Domeinuaren izenean dauden puntuak “eskapatu” egin behar dira aurretik “\” jarrita. Adibidez: hodeia\.niredomeinua\.eus
<storage desc="Backend storage">
<filesystem allow="false" />
<wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
<host desc="Regex pattern of hostname to allow or deny." allow="true">hodeia\.niredomeinua\.eus</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">localhost</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="false">192\.168\.1\.1</host>
<max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
</wopi>
<webdav desc="Allow/deny webdav storage. Mutually exclusive with wopi." allow="false">
<host desc="Hostname to allow" allow="false">hodeia\.niredomeinua\.eus</host>
</webdav>
</storage>
Arazoren bat agertzen denean LOGean begiratu nahi izaten dugu, baina horretarako lehenik eta behin LOGa aktibatu egin behar da
# touch /var/log/loolwsd.log
# chmod 777 /var/log/loolwsd.log
Eta logging atalean aktibatu
<logging>
<color type="bool">true</color>
<level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="warning">warning</level>
<file enable="true">
<property name="path" desc="Log file path.">/var/log/loolwsd.log</property>
<property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property>
<property name="archive" desc="Append either timestamp or number to the archived log filename.">timestamp</property>
<property name="compress" desc="Enable/disable log file compression.">true</property>
<property name="purgeAge" desc="The maximum age of log files to preserve. See Poco FileChannel.">10 days</property>
<property name="purgeCount" desc="The maximum number of log archives to preserve. Use 'none' to disable purging. See Poco FileChannel.">10</property>
<property name="rotateOnOpen" desc="Enable/disable log file rotation on opening.">true</property>
<property name="flush" desc="Enable/disable flushing after logging each line. May harm performance. Note that without flushing after each line, the log lines from the different processes will not appear in chronological order.">false</property>
</file>
<anonymize>
<filenames type="bool" desc="Enable to anonymize/obfuscate filenames in logs. If default is true, it was forced at compile-time and cannot be disabled." default="false">false</filenames>
<usernames type="bool" desc="Enable to anonymize/obfuscate usernames in logs. If default is true, it was forced at compile-time and cannot be disabled." default="false">false</usernames>
</anonymize>
</logging>
Aldaketa hauek egin ondoren, LOOL zerbitzua berrabiarazi beharko genuke
# systemctl restart loolwsd.service
LOOL zerbitzuak administrazio kontsola eskaintzen digu. Web kontsola honetan hainbat datu ikusi ahal izango ditugu, besteak beste
Administrazio kontsola honetara konektatzeko erabiliko ditugun erabiltzaile eta pasahitza definitzeko /lib/systemd/system/loolwsd.service fitxategia editatuko dugu
[Unit]
Description=LibreOffice OnLine WebSocket Daemon
After=network.target
[Service]
EnvironmentFile=-/etc/sysconfig/loolwsd
ExecStartPre=/bin/mkdir -p /usr/local/var/cache/loolwsd
ExecStartPre=/bin/chown lool: /usr/local/var/cache/loolwsd
PermissionsStartOnly=true
ExecStart=/opt/online/loolwsd --o:sys_template_path=/opt/online/systemplate --o:lo_template_path=/opt/libreoffice/instdir --o:child_root_path=/opt/online/jails --o:admin_console.username=NIRESUPERADMIN --o:admin_console.password="NIRESUPERPASAHITZA"
User=lool
KillMode=control-group
# Restart=always
[Install]
WantedBy=multi-user.target
Kontsolara konektatzeko helbide hau erabiliko dugu:
https://office02.niredomeinua.eus/loleaflet/dist/admin/adminAnalytics.html
Eta honekin, prest izango genuke LibreOfficeOnline gure Nextcloud zerbitzariarekin lan egiteko konfiguratuta !! Ez zen hain zaila ezta ? ;-)
Erantzun
Sartu