Download
=OPEN(course_file.docx, Moodle)
Teaching with real workbooks?

Moodle already has the plug. It just needs a better editor on the other end.

Moodle's mod_collabora activity is a WOPI host with a single setting: the address of an office editor. Point it at SumOffice and a course document opens in our engine instead — and the edit goes back into the activity, replacing the file Moodle holds. Measured on Moodle 5.2.3 with mod_collabora 2025050100.

What was measured

WhereA course activity of the «uploaded file» kind, created through the ordinary activity form — the way a teacher puts a document in front of a group.
Which editorChosen by file type: .docx to SumDoc, .xlsx to SumSheet. One address serves both.
The roundOpened from the activity, edited, saved back — and the Moodle attachment itself is replaced: new size, new content hash, the edit inside the file, 16 parts of 16 and all five pictures byte for byte.
Macro workbooksOur engine edits .xlsm and saves it back, and that round is measured. But the Collabora activity’s own upload form does not accept .xlsm, so today that path needs the activity to be created by script. We do not offer it as a normal teacher’s path.
Two things that will bite youMoodle blocks its own cURL from reaching local addresses, so a correct editor address can still answer «Could not connect to the Collabora Server». And behind a reverse proxy Moodle needs $CFG->reverseproxy = true, or the login page redirects to itself forever.
Not countedStudents, courses, activities. Evaluation is free with no time limit; production is the per-application license — which for a university is the difference between a budget and a negotiation.

Setting it up

# 1. the editors, behind your TLS address
git clone https://github.com/SumOfficeApp/sumoffice-docker && cd sumoffice-docker/nextcloud
cp env.example .env    # PUBLIC_URL=https://office.example.com
docker compose up -d

# 2. Moodle: install mod_collabora from the plugins directory, then
#    Site administration → Plugins → Activity modules → Collabora
#    Collabora URL:  https://office.example.com

That is the whole integration: the plugin reads our discovery document from that address and learns which file types we take. Nothing in Moodle is patched, and the plugin stays the one its community maintains.

What travels with the file

  • .docx and .xlsx are edited and saved back natively; .ods / .odt open by import; .xlsm / .xlsb the engine supports, but the activity form will not accept them.
  • Macros and Power Query travel with the file untouched — the workbook a student downloads is the workbook the course author built, for the file types the activity form accepts.

Check my Excel file tells you in seconds what any course workbook relies on. The other systems we measured →

Already have the document activity? Keep it

Many Moodle sites already run the ONLYOFFICE activity module, mod_onlyofficeeditor. SumOffice works with ONLYOFFICE apps: the SumOffice compatibility server answers the same API, so the module stays and only the server address in its settings changes. Courses, activities and files stay where they are.

Word, Excel, PowerPointOpen from the course activity, are edited, saved and open again with the edit inside — measured on Moodle 5.3 with the module 6.1.0, the file checked in Moodle’s own storage. The record.
Excel with macrosThe Moodle module itself opens .xlsm for viewing only. That is the module’s rule, not ours.
Moodle on an internal addressIf the server reaches Moodle by an internal name and Moodle redirects to its public address, use server release 2026.4.0.6 or newer: it follows the redirect for downloads and saves.
# 1. the compatibility server and the three editors, behind your TLS address
docker pull hissih/sumoffice-compat:2026.4.0.6
JWT_SECRET=$(openssl rand -hex 24) docker compose up -d

# 2. Moodle: Site administration → Plugins → Activity modules → ONLYOFFICE
#    Document Editing Service address:  https://office.example.com
#    Secret key:                        the same value as JWT_SECRET

Saving the settings runs the module’s own connection check. How the compatibility server is set up →

ONLYOFFICE is a trademark of Ascensio System SIA; SumOffice is not affiliated with it. Moodle is a trademark of its owner.

Then

SumOffice assistant

Answers are assembled from the documentation and may be inaccurate — check the sources.