Ziel dieser Anleitung
Diese Anleitung zeigt dir, wie du grommunio Files und grommunio Office auf einer bestehenden grommunio-2026.06.1-Appliance installierst, konfigurierst und durchtestest. Am Ende sollen Benutzer Dateien hochladen, teilen und DOCX, XLSX sowie PPTX direkt im Browser öffnen können.
Du installierst grommunio Files 32.0.12 und grommunio Office 9.4.0 aus dem grommunio-Repository.
Du richtest Datenbanken, Storage, Redis/File-Locking, Cron und Reverse Proxy ein.
Du verbindest Files mit Office und prüfst den echten Editor-Workflow.
Du aktivierst die Files-/Office-Integration in grommunio Web.
Du testest Upload, Download, Teilen, zweiter Benutzer, Speichern und Wiederöffnen.
Du dokumentierst Betriebs-, Backup- und Troubleshooting-Punkte für eine produktive Umgebung.
Die Reihe ist chronologisch gedacht: grommunio 2026 installieren, Antispam mit Rspamd, SSO mit Keycloak, Meet, Chat und jetzt Files mit Office. Produktkontext findest du auf der grommunio-Produktseite.
Architektur: Files, Office, Web und Auth
grommunio Files stellt Dateiablage, WebDAV, Freigaben und Benutzeroberfläche bereit. Die Paketinformationen der geprüften Appliance nennen Nextcloud als technische Basis. grommunio Office ergänzt die browserbasierte Bearbeitung und wird über die OnlyOffice-App in Files angebunden. grommunio Web kann Files als integrierten Einstiegspunkt anzeigen; die Benutzeridentität kommt in dieser Reihe aus grommunio-auth und Keycloak.
grommunio-auth / Keycloak-> grommunio Web-> Einstieg zu grommunio Files-> WebDAV, Shares, Benutzerdateien-> OnlyOffice-App-> grommunio Office Document Service-> Speichern zurück in Files
Voraussetzungen
Eine funktionierende grommunio-2026.06.1-Appliance mit Web, Admin, Mail und gültigem FQDN.
HTTPS muss über den späteren produktiven FQDN erreichbar sein. Self-Signed-Zertifikate sind nur für isolierte Labs sinnvoll.
Genug Speicher für Benutzerdaten, Versionen, Papierkorb, Datenbank und Backups.
MariaDB, nginx, PHP-FPM, Redis und Systemd müssen sauber laufen.
Benutzer benötigen WebDAV-/Files-Rechte. In der Lab-Prüfung waren `privWeb`, `privDav` und `privFiles` entscheidend.
Vor Änderungen erstellst du einen Snapshot oder ein Backup der Appliance.
Schritt 1: Baseline prüfen
Starte nicht mit der Installation, sondern mit einem kurzen Zustandsschnitt. Damit erkennst du später, ob Files/Office ein neues Problem erzeugt hat oder ob der Fehler schon vorher vorhanden war.
cat /etc/os-releasehostname -fip addrdf -hfree -hsystemctl --failedrpm -qa | grep -i grommunio | sortss -lntup
Schritt 2: Pakete und Rollen ermitteln
Auf der geprüften grommunio-2026.06.1-Appliance kamen Files und Office als native Pakete aus dem grommunio-Repository. Files brachte Nextcloud-basierte Dateiablage, Office den Document Service und RabbitMQ als Dienstabhängigkeit.
zypper search -s grommunio-files grommunio-officezypper info grommunio-files grommunio-office grommunio-office-fontsrpm -ql grommunio-setup | grep -E 'files|office'
Geprüfte Versionen:- grommunio-files: 32.0.12-lp160.5.1- grommunio-office: 9.4.0-lp160.6.1- rabbitmq-server: 4.1.5- grommunio-web: 3.19.371.ge256c4858
Schritt 3: Files und Office installieren
Installiere Files, Office und RabbitMQ zusammen. Dadurch landen PHP-Abhängigkeiten, Office-Dienste, Fonts und die Files-Anwendung in einem konsistenten Paketstand.
zypper --non-interactive install --auto-agree-with-licenses \grommunio-files \grommunio-office \rabbitmq-server
Prüfe danach, ob die Pakete wirklich installiert sind. Wenn `zypper info` vorher „not installed“ gezeigt hat, muss `rpm -q` danach konkrete Versionsnummern liefern.
rpm -q grommunio-files grommunio-office rabbitmq-server
Schritt 4: Datenbanken und Files-Konfiguration anlegen
Files benötigt eine eigene Datenbank und eine root-/dienstlesbare Konfiguration. Die Secrets gehören nicht in Screenshots, Tickets oder Blogartikel. Verwende Secret-Management oder mindestens root-lesbare Dateien.
install -d -m 0750 /root/grommunio-secretsopenssl rand -base64 32 >/root/grommunio-secrets/files-db-passwordchmod 0600 /root/grommunio-secrets/files-db-passwordFILES_DB_PASSWORD="$(cat /root/grommunio-secrets/files-db-password)"mariadb <<SQLCREATE DATABASE IF NOT EXISTS grofiles CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;CREATE USER IF NOT EXISTS 'grofiles'@'localhost' IDENTIFIED BY '${FILES_DB_PASSWORD}';GRANT ALL PRIVILEGES ON grofiles.* TO 'grofiles'@'localhost';FLUSH PRIVILEGES;SQL
Die Appliance liefert die wichtigen Pfade mit. In der geprüften Installation lagen Anwendung, Konfiguration, externe Apps, Daten und Logs an diesen Stellen.
/usr/share/grommunio-files/usr/share/grommunio-files/config/config.php/var/lib/grommunio-files/data/var/lib/grommunio-files/apps-external/var/log/grommunio-files/files.log
Schritt 5: Files installieren und Trusted Domains setzen
Führe die Files-Initialisierung mit dem echten FQDN aus. In einer produktiven Umgebung steht hier dein Mail-/Groupware-FQDN ohne Lab-Port. Der `overwritewebroot` bleibt `/files`, weil Files hinter nginx unter diesem Pfad veröffentlicht wird.
cd /usr/share/grommunio-filessudo -u grofiles ./occ maintenance:install \--database mysql \--database-name grofiles \--database-user grofiles \--database-pass "$FILES_DB_PASSWORD" \--admin-user grofiles-admin \--admin-pass '<secure-admin-password>' \--data-dir /var/lib/grommunio-files/datasudo -u grofiles ./occ config:system:set trusted_domains 0 --value="$(hostname -f)"sudo -u grofiles ./occ config:system:set overwrite.cli.url --value="https://$(hostname -f)/files"sudo -u grofiles ./occ config:system:set overwritewebroot --value="/files"sudo -u grofiles ./occ config:system:set overwriteprotocol --value="https"sudo -u grofiles ./occ config:system:set default_phone_region --value="AT"
Schritt 6: Redis, File Locking und Cron aktivieren
Dateisperren und Hintergrundjobs sind kein optionaler Schmuck. Ohne saubere Jobs bleiben Previews, Aufräumen, Versionen und manche App-Aktionen später liegen.
sudo -u grofiles ./occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"sudo -u grofiles ./occ config:system:set memcache.locking --value="\\OC\\Memcache\\Redis"sudo -u grofiles ./occ config:system:set redis host --value="127.0.0.1"sudo -u grofiles ./occ config:system:set redis port --value="6379" --type=integersudo -u grofiles ./occ background:cronsystemctl enable --now grommunio-files-cron.timer
Schritt 7: Benutzerquelle anbinden
In der geprüften Appliance wurde `user_external` verwendet, damit sich grommunio-Benutzer gegen den bestehenden DAV-/Groupware-Zugang anmelden können. Dadurch entsteht kein zweiter frei erfundener Benutzerstamm in Files.
cd /usr/share/grommunio-filessudo -u grofiles ./occ app:enable user_externalsudo -u grofiles ./occ config:system:set user_backends 0 class --value="\\OCA\\UserExternal\\BasicAuth"sudo -u grofiles ./occ config:system:set user_backends 0 arguments 0 --value="https://$(hostname -f)/dav"
Prüfe danach im grommunio Admin, ob die Benutzer die passenden Rechte haben. In unserer Prüfung waren zwei normale Benutzer mit Web-, DAV- und Files-Rechten ausreichend.
grommunio-admin user query username privWeb privDav privFiles --format json-flat
Schritt 8: Office-Datenbank und Dienste vorbereiten
grommunio Office benötigt eine eigene Datenbank und mehrere Dienste. RabbitMQ, `ds-docservice` und `ds-converter` müssen laufen, sonst lädt Files zwar, aber der Editor bleibt leer oder meldet Download-/Callback-Fehler.
openssl rand -base64 32 >/root/grommunio-secrets/office-db-passwordchmod 0600 /root/grommunio-secrets/office-db-passwordOFFICE_DB_PASSWORD="$(cat /root/grommunio-secrets/office-db-password)"mariadb <<SQLCREATE DATABASE IF NOT EXISTS groffice CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;CREATE USER IF NOT EXISTS 'groffice'@'localhost' IDENTIFIED BY '${OFFICE_DB_PASSWORD}';GRANT ALL PRIVILEGES ON groffice.* TO 'groffice'@'localhost';FLUSH PRIVILEGES;SQLmysql groffice < /usr/libexec/grommunio-office/server/schema/mysql/createdb.sqlsystemctl enable --now rabbitmq-server ds-docservice ds-convertersystemctl start ds-themegen ds-fontgen || true
Schritt 9: Files mit Office verbinden
Aktiviere die OnlyOffice-App in Files und setze die URLs passend zur nginx-Veröffentlichung. In der geprüften Umgebung war Files unter `/files/` und Office unter `/office/` erreichbar.
cd /usr/share/grommunio-filessudo -u grofiles ./occ app:enable onlyofficesudo -u grofiles ./occ config:app:set onlyoffice DocumentServerUrl --value="https://$(hostname -f)/office/"sudo -u grofiles ./occ config:app:set onlyoffice DocumentServerInternalUrl --value="https://$(hostname -f)/office/"sudo -u grofiles ./occ config:app:set onlyoffice StorageUrl --value="https://$(hostname -f)/files/"sudo -u grofiles ./occ config:app:set onlyoffice customizationForcesave --value=truesudo -u grofiles ./occ config:app:set onlyoffice sameTab --value=true
Für produktive Systeme muss TLS sauber validierbar sein. In einem isolierten Self-Signed-Lab kann es nötig sein, Peer-Prüfung für den Test abzuschalten. Das ist ein Lab-Workaround, kein Produktionsstandard.
# Nur für isolierte Self-Signed-Labs:sudo -u grofiles ./occ config:app:set onlyoffice verify_peer_off --value=true# Für produktive Systeme:sudo -u grofiles ./occ config:app:delete onlyoffice verify_peer_off || true
Schritt 10: grommunio Web integrieren
Aktiviere die Files- und Office-Funktionen im grommunio-Web-Plugin. Benutzer sollen später aus Web in Files wechseln können und Office-Dateitypen direkt bearbeiten.
grep -E 'PLUGIN_FILES_USER_DEFAULT_ENABLE|PLUGIN_FILES_ONLYOFFICE_ENABLE|PLUGIN_FILES_ONLYOFFICE_FILETYPES' \/etc/grommunio-web/config-files.php# Erwartung:# define('PLUGIN_FILES_USER_DEFAULT_ENABLE', true);# define('PLUGIN_FILES_ONLYOFFICE_ENABLE', true);# define('PLUGIN_FILES_ONLYOFFICE_FILETYPES', ".doc,.docx,.docxf,.oform,.odp,.ods,.odt,.ppt,.pptx,.xls,.xlsx");
Wenn du die Werte ändern musst, passe `/etc/grommunio-web/config-files.php` an und starte die betroffenen Dienste neu. Verwende dabei den echten FQDN der Umgebung und keine frei gewählten Beispiel-URLs.
systemctl restart nginx php-fpm grommunio-web || true
Schritt 11: Healthchecks ausführen
Prüfe zuerst Dienste und HTTP-Routen. `Office /healthcheck` muss `true` liefern. Files leitet ohne Session erwartungsgemäß auf den Login weiter.
systemctl --no-pager --plain is-active nginx mariadb rabbitmq-server ds-docservice ds-converter grommunio-files-cron.timer php-fpmsystemctl --failed --no-pager --plainss -lntup | grep -E ':(80|443|8000|3306|6379)'curl -kIs https://$(hostname -f)/files/ | head -5curl -ks https://$(hostname -f)/office/healthcheck
Geprüftes Ergebnis:- Files liefert ohne Session HTTP 302 zum Login.- Office /healthcheck liefert true.- ds-docservice lauscht lokal auf Port 8000.- nginx, MariaDB, RabbitMQ, ds-docservice, ds-converter, php-fpm und Files-Cron sind aktiv.- systemctl --failed meldet 0 failed units.
Schritt 12: Login und Dateien prüfen
Öffne Files mit einem normalen grommunio-Benutzer. Wenn du direkt in Files anmelden musst, ist das im geprüften Pfad BasicAuth gegen die bestehende grommunio-Benutzerquelle. In einer vollständig durchgehenden SSO-Architektur prüfst du zusätzlich den Einstieg aus grommunio Web.
Screenshot: Login in grommunio Files mit normalem Benutzer.
Lade anschließend je eine DOCX-, XLSX- und PPTX-Datei hoch. Damit testest du nicht nur die Files-Oberfläche, sondern auch die Office-Zuordnung pro Dateityp.
curl -k -u 'alice@example.test:<password>' -T ForgeOne-Files-Office-Test.docx \https://mail.example.test/files/remote.php/dav/files/alice@example.test/ForgeOne-Files-Office-Test.docxcurl -k -u 'alice@example.test:<password>' -T ForgeOne-Files-Office-Test.xlsx \https://mail.example.test/files/remote.php/dav/files/alice@example.test/ForgeOne-Files-Office-Test.xlsxcurl -k -u 'alice@example.test:<password>' -T ForgeOne-Files-Office-Test.pptx \https://mail.example.test/files/remote.php/dav/files/alice@example.test/ForgeOne-Files-Office-Test.pptx
Screenshot: Files zeigt DOCX, XLSX und PPTX nach Upload und Scan.
Schritt 13: DOCX bearbeiten, speichern und wieder auslesen
Der eigentliche Abnahmetest ist nicht das Öffnen des Editors. Schreibe Text in das Dokument, speichere, schließe, lade die Datei erneut herunter und prüfe, ob die Änderung wirklich in der DOCX-Datei angekommen ist.
Screenshot: DOCX im Office-Editor mit sichtbarer Teständerung.
Screenshot: Der Editor meldet nach dem Speichern, dass alle Änderungen gespeichert sind.
curl -k -u 'alice@example.test:<password>' \-o /tmp/ForgeOne-Files-Office-Test.docx \https://mail.example.test/files/remote.php/dav/files/alice@example.test/ForgeOne-Files-Office-Test.docxunzip -p /tmp/ForgeOne-Files-Office-Test.docx word/document.xml | grep 'ForgeOne Files Office validation'
Geprüftes Ergebnis:- DOCX wurde im Browser geöffnet.- Text wurde im Editor eingefügt.- Speichern meldete "All changes saved".- WebDAV-Download lieferte eine gültige Microsoft-Word-Datei.- Der Marker war in word/document.xml enthalten.
Schritt 14: XLSX und PPTX prüfen
Prüfe danach mindestens eine Tabelle und eine Präsentation. In der getesteten Umgebung öffneten beide Dateitypen im passenden Office-Editor.
Screenshot: XLSX öffnet im Tabelleneditor von grommunio Office.
Screenshot: PPTX öffnet im Präsentationseditor von grommunio Office.
Schritt 15: Teilen mit zweitem Benutzer testen
Files ist erst dann praxisfähig, wenn Freigaben funktionieren. Teile eine Datei von Benutzer A an Benutzer B und prüfe danach den Zugriff mit einer getrennten Session.
curl -k -u 'alice@example.test:<password>' \-H 'OCS-APIRequest: true' \--data-urlencode 'path=/ForgeOne-Files-Office-Test.docx' \-d 'shareType=0' \--data-urlencode 'shareWith=bob@example.test' \-d 'permissions=15' \'https://mail.example.test/files/ocs/v2.php/apps/files_sharing/api/v1/shares?format=json'curl -k -u 'bob@example.test:<password>' -X PROPFIND -H 'Depth: 1' \https://mail.example.test/files/remote.php/dav/files/bob@example.test/
Screenshot: Der zweite Benutzer sieht die geteilte DOCX-Datei in seinem Files-Konto.
Schritt 16: SSO, MFA und Sessions einordnen
Die zentrale Anmeldung der Gesamtplattform läuft in dieser Artikelreihe über grommunio-auth und Keycloak. Für grommunio Web ist das der normale SSO-Pfad. Files wurde in der geprüften Installation gegen die bestehende grommunio-DAV-Benutzerquelle angebunden; dadurch existiert kein zweiter administrativer Benutzerstamm, auch wenn der direkte Files-Login eine eigene Session erzeugt.
Wenn du eine vollständig nahtlose Browser-SSO-Strecke von Keycloak bis Files erzwingen willst, plane das als eigenes Identity-Thema: Redirect-URIs, Logout-Verhalten, Claims, Gruppen, Session-Lifetime und MFA müssen dann Ende zu Ende getestet werden.
Schritt 17: Backup und Betrieb
Sichere `/usr/share/grommunio-files/config/config.php`, `/var/lib/grommunio-files`, `/var/log/grommunio-files`, `/etc/grommunio-office/default.json` und die Datenbanken `grofiles` sowie `groffice`.
Plane Benutzerdateien, Versionen und Papierkorb als eigenes Storage-Thema. Die Daten wachsen anders als Mailboxdaten.
Prüfe Cron, PHP-Memory-Limit, Upload-Limits, Virenscan-Konzept, Retention, Restore-Test und Monitoring.
In produktiven Setups gehören TLS-Zertifikate, interne Office-Callbacks und externe Browser-URLs sauber getrennt und dokumentiert.
Nach Updates prüfst du `occ status`, Office-Healthcheck, DOCX-Speichern, Share-Zugriff und grommunio-Web-Einstieg erneut.
Troubleshooting aus der Prüfung
Editor meldet Download- oder Callback-Fehler: Prüfe `DocumentServerUrl`, `DocumentServerInternalUrl`, `StorageUrl`, nginx-Pfade und TLS-Vertrauen.
Office-Healthcheck ist grün, aber der echte Editor speichert nicht: Teste mit realer DOCX-Datei und WebDAV-Download. Ein synthetischer Healthcheck ersetzt keinen Speicher-/Callback-Test.
Self-Signed-Lab bricht intern ab: Für das Lab kann `verify_peer_off=true` und `rejectUnauthorized=false` im Office-Request-Pfad nötig sein. Produktiv ist das nicht akzeptabel.
Dateien tauchen nach CLI/WebDAV-Upload nicht auf: Führe `sudo -u grofiles ./occ files:scan <user>` aus.
Benutzer kann sich nicht anmelden: Prüfe grommunio-Rechte, DAV-Zugang und den `user_external`-Backend-Eintrag.
Web zeigt Files nicht an: Prüfe `/etc/grommunio-web/config-files.php` und starte Web-/PHP-/nginx-Dienste neu.
grommunio 2026 Schritt für Schritt
Die Plattform wächst Schritt für Schritt. Lies die Reihe in dieser Reihenfolge, wenn du eine vollständige Collaboration-Umgebung aufbauen willst.
- grommunio 2026 installieren
- grommunio-antispam mit Rspamd einrichten
- grommunio-auth mit Keycloak und MFA integrieren
- grommunio Meet einrichten und testen
- grommunio Chat einrichten
- grommunio Files und Office einrichten (du bist hier)
Geprüfte Grundlage
grommunio 2026.06.1 auf openSUSE-Leap-16.0-Appliance-Basis.
grommunio Files 32.0.12, laut Paketbeschreibung auf Nextcloud-Basis.
grommunio Office 9.4.0 mit OnlyOffice-App 9.14.2 in Files.
DOCX, XLSX und PPTX wurden im Browser geöffnet.
DOCX wurde editiert, gespeichert, per WebDAV heruntergeladen und der gespeicherte Marker in `word/document.xml` gefunden.
Alice teilte die DOCX-Datei an Bob; Bob sah die Datei in Files und per WebDAV.
Office-Healthcheck lieferte `true`; `systemctl --failed` meldete 0 failed units.
grommunio Files und Office sauber einführen
ForgeOne plant, lizenziert und betreibt grommunio als souveräne Collaboration-Plattform mit Mail, Kalender, Kontakten, Antispam, SSO, Meet, Chat, Files, Office, Monitoring, Backup und Support. Wenn du Files und Online-Office produktiv integrieren willst, prüfen wir Speicher, Rechte, TLS, SSO, Backup und Betriebsmodell gemeinsam.






