Collabora Office és Apache2 telepítése LXC konténerbe

Collabora Office és Apache2 telepítése LXC konténerbe

Sok weboldalon olvasható leírás, a Collabora Office telepítésével kapcsolatban. Ezek jó írások, de sajnos azt tapasztaltam, hogy nem egyszer vagy kevés, vagy nem aktuális az oldalon található információ.

A leírás első része egy Proxmox LXC létrehozását taglalja, a később telepítendő Docker konténer és Apache számára.

Mielőtt az LXC konténerünket létrehoznánk, adjuk hozzá az alábbi két fájlrendszer modult a Proxmox szerverünk modules fájljához:

/etc/modules

aufs
overlay

Hogy ne kelljen újraindítani a szerverünket, adjuk ki az alábbi két parancsot:

modprobe aufs
modprobe overlay

Ellenőrizzük, hogy rendben betöltődtek-e a modulok:

lsmod aufs
lsmod overlay

Következhet az LXC konténer létrehozása, az alábbi beállításokkal:

  • Unprivileged: igen
  • Memória: 4096
  • Swap: 2048
  • Tárhely: 20GB
  • OS Type: Ubuntu 18.04

A létrehozás után az Options->Features alatt a Keyctl és a Nesting opciókat engedélyezzük!

Indítsuk el, és frissítsük a konténerünket:

apt update
apt upgrade

Ezután kezdhetjük a Docker telepítését

Szükségünk lesz pár extra csomagra…

  apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common

… a Docker, hivatalos, GPG fájljára …

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

… ellenőrizzük, hogy az ujjlenyomat rendben van!

apt-key fingerprint 0EBFCD88

Ilyet kell látnunk a válaszban:

ub   rsa4096 2017-02-22 [SCEA]
  9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

Adjuk hozzá a Docker apt forrását a listánkhoz,

  add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"

majd egy frissítés után telepíthetjük a Docker csomagot:

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

A telepítés után tegyük az alábbi kódot a /etc/docker/daemon.json fájba:

{
  "storage-driver": "overlay2"
}

Indítsuk újra a Docker szolgáltatást:

systemctl restart docker

Ezután teszteljük a Docker-t:

docker run hello-world

Most jöhet a Collabora office telepítése

docker pull collabora/code

A Collabora indítása az alábbi sorral lehetséges:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=oo\\.yourdomain\\.com' --restart always --cap-add MKNOD collabora/code

Jöhet az Apache beállítása

Hozzuk létre a /etc/apache2/sites-avaiable/office.conf fájlt és az alábbi kódot másoljuk bele:

ServerName oo.yourdomain.com:443

# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/ssl/office/office.pem
SSLCertificateKeyFile /etc/ssl/office/office.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:$
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 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

# 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

# Endpoint with information about availability of various features
ProxyPass           /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse    /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities

Végül engedélyezzük az oldalt az Apache számára,

a2ensite office

és engedélyezzük a szükséges Apache modulokat is.

a2enmod proxy
a2enmod proxy_wstunnel
a2enmod proxy_http
a2enmod ssl

Nem maradt más hátra, mint az Apache újraindítása

systemctl restart apache2

Források: