From 8e1649839648d67f7df77d0777ca1f19180f1769 Mon Sep 17 00:00:00 2001 From: Michael Cramer Date: Fri, 18 Feb 2022 18:03:43 +0100 Subject: [PATCH] Nextcloud background job execution (#370) * adding a new section about how to add background job execution with ofelia for Nextcloud closes: #367 * Update third_party-nextcloud.de.md Co-authored-by: Peter --- docs/third_party/third_party-nextcloud.de.md | 27 ++++++++++++++++++-- docs/third_party/third_party-nextcloud.en.md | 24 ++++++++++++++++- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/docs/third_party/third_party-nextcloud.de.md b/docs/third_party/third_party-nextcloud.de.md index 42da3f9b4..4db2e75f3 100644 --- a/docs/third_party/third_party-nextcloud.de.md +++ b/docs/third_party/third_party-nextcloud.de.md @@ -4,7 +4,31 @@ Nextcloud kann mit dem [helper script](https://github.com/mailcow/mailcow-docker `./helper-scripts/nextcloud.sh -i` -Für den Fall, dass Sie das Passwort (z.B. für admin) vergessen haben und kein neues anfordern können [über den Passwort-Reset-Link auf dem Login-Bildschirm] (https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset), können Sie durch den Aufruf des Helper-Skripts mit `-r` als Parameter ein neues Passwort setzen. Verwenden Sie diese Option nur, wenn Ihre Nextcloud nicht so konfiguriert ist, dass sie mailcow zur Authentifizierung verwendet, wie im nächsten Abschnitt beschrieben. +Für den Fall, dass Sie das Passwort (z.B. für admin) vergessen haben und kein neues anfordern können [über den Passwort-Reset-Link auf dem Login-Bildschirm] (https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset), können Sie durch den Aufruf des Helper-Skripts mit `-r` als Parameter ein neues Passwort setzen. Verwenden Sie diese Option nur, wenn Ihre Nextcloud nicht so konfiguriert ist, dass Sie mailcow zur Authentifizierung verwendet, wie im nächsten Abschnitt beschrieben. + +## Hintergrund-Aufgaben + +Zur Verwendung der empfohlenen Einstellung (Cron) zur Verarbeitung der Hintergrund-Aufgaben müssen in der `docker-compose.override.yml` folgende Zeilen + hinzugefügt werden: + +``` +version: '2.1' +services: + php-fpm-mailcow: + labels: + ofelia.enabled: "true" + ofelia.job-exec.nextcloud-cron.schedule: "@every 5m" + ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\"" +``` + +Nachdem diese Zeilen hinzugefügt wurden muss `docker-compose up -d` ausgeführt werden, um das Docker Image mit den entsprechenden Labels zu versehen. Danach muss + zudem der docker scheduler neu gestartet werden, um den neuen Job zu registrieren. Dazu wird `docker-compose restart ofelia-mailcow` ausgeführt. Zur + Überprüfung, ob die `ofelia` Konfiguration korrekt ist geladen wurde, kann mittels `docker-compose logs ofelia-mailcow` nach einer Zeile mit dem Inhalt + `New job registered "nextcloud-cron" - ...` gesucht werden. + +Hierdurch wird alle 5 Minuten die Hintergrundverarbeitung gestartet. Da die Ausführung selbst keine Ausgabe liefert, kann die korrekte Funktionsweise in den + Grundeinstellungen von Nextcloud überprüft werden. Hier wird automatisch mit der ersten Ausführung die Hintergrund-Aufgaben Verarbeitung auf `(X) Cron` gesetzt + und der Zeitstempel `Letzte Aufgabe ausgeführt ` aktualisiert. ## Konfigurieren Sie Nextcloud, um mailcow für die Authentifizierung zu verwenden @@ -102,4 +126,3 @@ Es kann vorkommen, dass Sie die Nextcloud-Instanz von Ihrem Netzwerk aus nicht e Nachdem die Änderungen vorgenommen wurden, muss der nginx-Container neu gestartet werden. `docker-compose restart nginx-mailcow` - diff --git a/docs/third_party/third_party-nextcloud.en.md b/docs/third_party/third_party-nextcloud.en.md index 3f8715b79..dd555ef10 100644 --- a/docs/third_party/third_party-nextcloud.en.md +++ b/docs/third_party/third_party-nextcloud.en.md @@ -7,6 +7,28 @@ Nextcloud can be set up (parameter `-i`) and removed (parameter `-p`) with the [ In case you have forgotten the password (e.g. for admin) and can't request a new one [via the password reset link on the login screen](https://docs.nextcloud.com/server/20/admin_manual/configuration_user/reset_admin_password.html?highlight=reset) calling the helper script with `-r` as parameter allows you to set a new password. Only use this option if your Nextcloud isn't configured to use mailcow for authentication as described in the next section. +## Background jobs + +To use the recommended setting (cron) to execute the background jobs following lines need to be added to the `docker-compose.override.yml`: + +``` +version: '2.1' +services: + php-fpm-mailcow: + labels: + ofelia.enabled: "true" + ofelia.job-exec.nextcloud-cron.schedule: "@every 5m" + ofelia.job-exec.nextcloud-cron.command: "su www-data -s /bin/bash -c \"/usr/local/bin/php -f /web/nextcloud/cron.php\"" +``` + +After adding these lines the `docker-compose up -d` command must be executed to update the docker image and also the docker scheduler image must be restarted to + pick up the new job definition by executing `docker-compose restart ofelia-mailcow`. To check if the job was successfully picked up by `ofelia` the command + `docker-compose logs ofelia-mailcow` will contain a line similar to `New job registered "nextcloud-cron" - ...`. + +By adding these lines the background jobs will be executed every 5 minutes. To verify that the execution works correctly, the only way is to see it in the basic + settings when logged in as an admin in Nextcloud. If everything is correct the first scheduled execution will change the background jobs processing setting to + `(X) Cron` and the timestamp after `Last job ran` will be updated every 5 minutes. + ## Configure Nextcloud to use mailcow for authentication The following describes how set up authentication via mailcow using the OAuth2 protocol. We will only assume that you have already set up Nextcloud at _cloud.example.com_ and that your mailcow is running at _mail.example.com_. It does not matter if your Nextcloud is running on a different server, you can still use mailcow for authentication. @@ -102,4 +124,4 @@ It may happen that you cannot reach the Nextcloud instance from your network. Th ``` After the changes have been made, the nginx container must be restarted. -`docker-compose restart nginx-mailcow` \ No newline at end of file +`docker-compose restart nginx-mailcow`