Collabora Office im LXC (kein Docker!)

Da ich im Internet über viele unvollständige Docker Anleitungen gestolpert bin, hier meine kurze Notiz für die Collabora Office Installation in einem LXC Container (ohne Docker Gedöns). Die Einbindung in Nextcloud war damit in wenigen Minuten erledigt.
Kein Blank Screen nach öffnen eines Dokuments in der Cloud bzw. Fehlermeldungen usw..

Versionen zum Zeitpunkt der Installation

  • Nextcloud 21.1.1
  • LOOLWSD 6.4.10

LXC-Container vorbereiten

Auf den fertig konfigurierten LXC Container gehe ich hier nicht näher ein (bei mir erledigt das Ansible),
Hostname, Zeitserver, DNS-Auflösung sollten natürlich vorab fertig konfiguriert sein.
Bei mir ist das OS: Debian 10(Buster)

LXC Ressourcen

  • 1 CPU, 512MB RAM und Swap, 3GB Disk, unprivileged=yes, features=none

Hostnames

  • Hostname Nextcloud Host: cloud.domain.org
  • Hostname Collabora Host: office.domain.org

Nach der fertigen Installation des Containers wird in der Nextcloud unter „URL (und Port) des Collabora Online-Servers“ folgendes eingetragen: https://office.domain.org/

Die Admin-URL von Collabora lautet: https://office.domain.org/loleaflet/dist/admin/admin.html

Sonstiges

  • Zertifikate verwende ich eigene (der internen CA)

Setup Notiz in der BASH

  • Ersetze cloud.domain.org mit deinem FQDN!
#Collabora Office für Nextcloud

#Repository 
cd /usr/share/keyrings
wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg

nano /etc/apt/sources.list.d/collaboraonline.sources
#-------------------------------------------------------------------------
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian10
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
#-------------------------------------------------------------------------
apt-update

#Installieren
apt install loolwsd code-brand

#Konfiguration
loolconfig set ssl.enable false
loolconfig set ssl.termination true
loolconfig set storage.wopi.host cloud.domain.org
loolconfig set-admin-password

systemctl restart loolwsd

#Status kontrollieren
systemctl status loolwsd
journalctl -eu loolwsd

#Reverse Proxy mit Apache2 einrichten
apt install apache2 -y
#Module aktivieren
a2enmod proxy proxy_wstunnel proxy_http ssl
systemctl restart apache2
#Default Site deaktivieren
a2dissite 000-default.conf
#SSL-Reverse Proxy einrichten
cd /etc/apache2/sites-available/

nano office-ssl.conf
#-------------------------------------------------------------------------
<VirtualHost *:443>
ServerName office.domain.org:443
Options -Indexes

# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/ssl/private/wildcard.domain.org.crt
SSLCertificateChainFile /etc/ssl/private/wildcard.domain.org.pem
SSLCertificateKeyFile /etc/ssl/private/wildcard.domain.org.key
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on

# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# keep the host
ProxyPreserveHost On

# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of Collabora Online
ProxyPass /loleaflet http://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet http://127.0.0.1:9980/loleaflet

# WOPI discovery URL
ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery

# Capabilities
ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities

# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon

# Admin Console websocket
ProxyPass /lool/adminws ws://127.0.0.1:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool http://127.0.0.1:9980/lool
ProxyPassReverse /lool http://127.0.0.1:9980/lool
</VirtualHost>
#-------------------------------------------------------------------------

a2ensite office-ssl.conf
systemctl reload apache2

motd – Systeminformationen anzeigen

Bei Ubuntu anscheinend Standard, bei Debian nicht, die „Message of the day“ mit Systeminformationen.

Ein kleines Script das System-Informationen beim Login anzeigt.

Getestet auf mehreren Stretch, und einem Wheezy Host (Physisch, KVM-Gast..).

Die Ausgabe nach dem Login:

 


Voraussetzungen:

– Das „bc“ Paket, [apt-get install bc]

bc wird zur korrekten Anzeige der (gerundeten) Werte in der Ausgabe benötigt.


Natürlich können nicht benötigte Werte einfach im Script auskommentiert werden. Um die HEADER Zeile (Kontaktinfo) in der Ausgabe des Scriptes zu deaktivieren, dies am besten im get_header Teil erledigen.

HEADER=“© www.flurweg.net | admin@domain.net | Phone: +436876543210″

get_header(){
#echo -e „${WHT}$HEADER${STD}“
echo „——————————————————————————-“
}

 

Installation / Setupschritte:

mkdir -p /etc/update-motd.d/
wget -o /etc/update-motd.d/30-sysinfo http://www.flurweg.net/linux/debian/scripts/motd_30-sysinfo.txt
chmod +x /etc/update-motd.d/30-sysinfo
apt install bc
mv /etc/motd /etc/motd.$(date +%Y%m%d)
mv /etc/motd.tail /etc/motd.tail.$(date +%Y%m%d)

 

Wer die Standardanzeige des Kernels nicht mehr mit anzeigen möchte, kann dazu in /etc/update-motd.d/10-uname die Programmzeile auskommentieren.

Verbesserungsvorschläge Willkommen 🙂

 

TP-Link Router TFTP Recovery Modus

Neulich war ich mit einem nicht mehr funktionierenden (bricked) TP-Link Router (WR-1043ND V4) konfrontiert.

Das Problem:
Nach dem einschalten ein leuchen der Power-LED, und blinken aller LEDs alle paar Sekunden. Der angeschlossene Debian-Notebook meldete im 5 Sekunden Takt Schittstelle up, down, up, down…

Die Wiederherstellung (neu flashen) funktioniert mit dem eingebauten Recovery Modus des Routers, und mithilfe eines TFTP Servers.

Kurze Notiz zur Wiederherstellung: (mit Debian Notebook direkt am Router angeschlossen)

  1. apt-get install tftpd-hpa
  2. Erweitern der tftpd-hpa Konfiguration um „-vvv“
    Dies aktiviert den Verbose Modus des TFPd Services so das wir sehen welche Datei vom Client (in diesem Fall der Router) angefordert wird.  nano /etc/default/tftpd-hpa

    # /etc/default/tftpd-hpa
    
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/srv/tftp"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="--secure -vvv"
  3. Download der aktuellen Original Firmware vom Hersteller (Hardware-Version beachten !)
  4. Ablegen dieser Firmware nach „/srv/tftp“ und umbenennen, bei meinem Model muss der Dateiname wie folgt lauten: „wr1043ndv4_tp_recovery.bin“
  5. Einstellen der IP-Adresse des TFTP Servers (in meinem Fall der Notebook) auf: 192.168.0.66
  6. Starten des TFTPd Services
    /etc/init.d/tftpd-hpa start
  7. Betrachten des Logs (falls Dateiname nicht passen sollte sehen wird das im Log)
    tail -f /var/log/syslog
  8. A: Router ausschalten
    B: Recovery Taste drücken und halten
    C: Router einschalten
    D: Recovery Taste kann nach gut 5 Sekunden los gelassen werden.

Der Router bootet nach dem Recovery Flashen automatisch neu
Default-IP: 192.168.0.1, User: admin, Password: admin

Die TFTP Methode hilft auch beim zurückflashen auf die Original (Stock) Firmware von openWRT, lede, dd-WRT usw..

UMTS – Internet Backup Proxy (Hot Standby)

Ich verwendete den Raspberry bis dato nur als SMS-Gateway (smstools).

Mein Ziel war es nun das USB-Modem des Raspberry (bei Ausfall der Hauptverbindung)  als Hotstandby WAN Verbindung zu nutzen.

Da der Raspberry-Pi ansonsten NICHT als Default-Gateway meines Netzwerkes dient, möchte ich diesen bei Ausfall der Internetverbindung nur als Proxy verwenden.
Ich muss also nicht den Standard-Gateway auf den Clients anpassen, sondern den Proxyeintrag der Client Internet-Browser bei Bedarf/Ausfall setzen.

Weiterlesen

SqueezeControl, ein kleines Tool zum steuern des Squeezebox Mediaserver und Player

Ein kleines Tool zum Steuern des Squeezebox Mediaserver und den Playern (Squeezebox, Squeezeslave).

Als ich vor ein paar Wochen ein Sonos Multiroom in Aktion gesehen habe, suchte ich nach einer offenen Lösung und bin dabei auf Slimdevice Squeezebox gestossen.
Habe mir dann zum testen einen gebrauchten Squeezebox Radio ersteigert.
Ich war vom ganzen so begeistert das ich anfing ein kleines Control-Tool zu basteln. Vorbild war das Windows Sidebar Gadget, das bei mir jedoch leider nicht stabil funktionierte.

Weiterlesen

error: