Opencloud auf dem Raspberry Teil 2

Im zweiten Teil will ich jetzt meine Installation der Opencloud Anwendung beschreiben. Auf der Webseite zu opencloud www.opencloud.eu werden verschiedene Möglichkeiten zur Installation beschrieben. Siehe da! Es gibt auch eine Anleitung für die Installation auf dem Raspberry.  Also alles mit docker compose installieren. Ich habe schon ein paar mal einen Docker Container installiert, aber in so einem Umfang? Nö! Aber den Mutigen gehört die Welt, also frisch ans Werk.

Das Einrichten des Routers habe ich ja schon im ersten Teil beschrieben. Alle Kommandos von Abschnitt 1.4 bis 1.8 habe ich, mit kleinen Änderungen bei der Einrichtung des Datenträgers, einfach aus der Anleitung kopiert. Hat alles geklappt. Ach so, den Installationspfad habe ich angepasst. Die Installation von Software im $HOME eines Benutzers? Och nöööö muss nicht. Meine Installation liegt jetzt in /opt/opencloud, auch meine ssd für die Daten habe ich dort gemountet.

Der Zugriff von Außen ist in der Anleitung ganz gut beschrieben, nur fehlt dort ein wichtiger Teil, die Einrichtung der Netzwerkzugriffe für:

1. COLLABORA_DOMAIN=
2. WOPISERVER_DOMAIN=
3. TRAEFIK_DOMAIN=
4. OC_DOMAIN=

Es gibt auf der Webseite noch zwei weiter Anleitungen, einmal eine für die Installation direkt auf dem Blech und dann noch drei verschiedene Docker Varianten. Leider konnte ich in keiner eine genaue Beschreibung zur Einrichtung von DNS finden. An vielen Stellen, auch an bei anderen Quellen im Internet, steht immer das die Domänen auf 127.0.0.1 in der /etc/hosts eingetragen werden können. Das hat bei mir nicht geklappt. Also schnell in mein Konto bei no-ip.com angemeldet und die entsprechende cname-records erstellt. Meine Records bei no-ip, in die Konfigurationsdatei .env eingetragen, sehen jetzt wie folgt aus:

TRAEFIK_DOMAIN=traefikstka.example.net
OC_DOMAIN=stka.example.net
COLLABORA_DOMAIN=collaborastka.example.net
WOPISERVER_DOMAIN=wopiserverstka.example.net

Wobei der Eintrag für OC_DOMAIN mein A-record ist und alle anderen eine cname auf stka.example.net. So eingetragen, werden auch keine weiteren Einträge in der /etc/hosts benötigt.

Dann endlich war es soweit, die Anmeldung funktionierte und auch der Aufruf der Anwendungen aus Collabora funktioniert, aber der Browser hat immer noch über das Zertifikate gemeckert, denn noch ist das selbst signiert. Fehlte also noch Let’s encrypt für das Zertifikat. Jetzt hatte ich schon auf der Webseite von Let’s encrypt geschaut, wie man dort Zertifikate erstellt und einträgt, aber schau mal einer an, das macht Opencloud alles für mich. Erst ein Test ob alles klappt, dafür wird in der Datei .env die folgenden Zeile angepasst:

TRAEFIK_ACME_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory

So wird ein Testzertifikat erstellt. Was dort passiert wird im Kommentar zum Parameter genau beschrieben. Docker compose neu gestartet, mit dem Browser zugegriffen und sieh da, das Testzertifikat wurde genau so angezeigt wie im Kommentar beschrieben.

Dann docker compose wieder stoppen und die nicht mehr benötigten Zertifikate mit dem Kommando

docker volume rm opencloud_full_certs

löschen. Die vorher eingetragene Zeile in der Datei .env auskommentieren und docker compose wieder starten. Trommelwirbel, Zugriff mit dem Browser und super jetzt wird die Domäne mit einem gültigen Zertifikat im Browser angezeigt.

Zum Abschluss hier mal alle aktiven Zeilen meiner Konfiguration aus der Datei .env:

LOG_DRIVER=
TRAEFIK_DASHBOARD=
TRAEFIK_DOMAIN=traefikstka.example.net
TRAEFIK_BASIC_AUTH_USERS=sperduper:$$2y$$05$$u3X…
TRAEFIK_ACME_MAIL=stefan@dummy.de
OPENCLOUD=:opencloud.yml
OC_DOCKER_IMAGE=opencloudeu/opencloud-rolling
OC_DOCKER_TAG=
OC_DOMAIN=stka.example.net
ADMIN_PASSWORD=Uecs…
DEMO_USERS=
LOG_LEVEL=
OC_CONFIG_DIR=/opt/opencloud/config
OC_DATA_DIR=/opt/datadisk
DECOMPOSEDS3_ENDPOINT=
DECOMPOSEDS3_REGION=
DECOMPOSEDS3_ACCESS_KEY=
DECOMPOSEDS3_SECRET_KEY=
DECOMPOSEDS3_BUCKET=
MINIO_DOMAIN=
START_ADDITIONAL_SERVICES=“notifications“
EXTENSIONS=:web_extensions/extensions.yml
UNZIP=:web_extensions/unzip.yml
DRAWIO=:web_extensions/drawio.yml
JSONVIEWER=:web_extensions/jsonviewer.yml
PROGRESSBARS=:web_extensions/progressbars.yml
EXTERNALSITES=:web_extensions/externalsites.yml
COMPANION_IMAGE=
COMPANION_DOMAIN=
COMPANION_ONEDRIVE_KEY=
COMPANION_ONEDRIVE_SECRET=
TIKA=:tika.yml
TIKA_IMAGE=
COLLABORA=:collabora.yml
COLLABORA_DOMAIN=collaborastka.example.net
WOPISERVER_DOMAIN=wopiserverstka.example.net
COLLABORA_ADMIN_USER=superduper
COLLABORA_ADMIN_PASSWORD=NnJ…
COLLABORA_SSL_ENABLE=false
COLLABORA_SSL_VERIFICATION=false
CLAMAV_DOCKER_TAG=
INBUCKET_DOMAIN=
COMPOSE_PATH_SEPARATOR=:
LDAP_ADMIN_PASSWORD=
LDAP_MANAGER_DOMAIN=
IDP_DEFAULT_SIGNIN_PAGE_TEXT=
KEYCLOAK_DOMAIN=
KEYCLOAK_REALM=
KEYCLOAK_ADMIN_USER=
KEYCLOAK_ADMIN_PASSWORD=
COMPOSE_FILE=docker-compose.yml${OPENCLOUD:-}${TIKA:-….

Ein kleiner Wermutstropfen auch hier: Nachdem alle soweit läuft, wollte ich gerne den amavis Virenscanner noch einbinden, aber leider gibt es dafür keinen Docker container.

Im nächsten Teil werde ich dann noch zeigen, wie ich die iptables Firewall erweitert habe und wie ich dafür sorge, dass sowohl Opencloud als auch die Firewall automatisch beim Systemstart gestartet werden.

This entry was posted in Allgemein. Bookmark the permalink.