Your comments


Looks like Vlad and his team have fixed this issue in the latest FileRun update. For now, here's the updated /customizables/plugins/onlyoffice/app.php file, simply replace the existing one in

[filerun webroot]/customizables/plugins/onlyoffice/

and the weblink editing functionality will work with ONLYOFFICE.


Same here. Filerun version 2021.03.26.

ONLYOFFICE error in /var/log/onlyoffice/documentserver/docservice/out.log-20210507 is the following:

[2021-05-10T10:45:37.990] [ERROR] nodeJS - error parseReplyData: docId = 1148--1620663555; data = Invalid link id.
SyntaxError: Unexpected token I in JSON at position 0
at JSON.parse ()
at parseReplyData (/snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0)
at onReplySendStatusDocument (/snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0)
at ()
at sendStatusDocument (/snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0)
at ()
at endAuth (/snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0)
at ()
at auth (/snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0)
at ()
at /snapshot/server/build/server/DocService/sources/DocsCoServer.js:0:0
at ()
at onFulfilled (/snapshot/server/build/server/DocService/node_modules/co/index.js:65:19)
at process._tickCallback (internal/process/next_tick.js:68:7)

EDIT: I think I found a workable solution. I added the following line to [filerun webroot]/customizables/plugins/onlyoffice/app.php after line 91:

$weblinkInfo = WebLinks::createForService($this->data);

So [filerun webroot]/customizables/plugins/onlyoffice/app.php looks like the following after the edit:

if (\FileRun\Perms::check('upload')) {
    if ((!$this->data['shareInfo'] || ($this->data['shareInfo'] && $this->data['shareInfo']['perms_upload']))) {
        $weblinkInfo = WebLinks::createForService($this->data); #This is the added line
        $saveURL = WebLinks::getSaveURL($weblinkInfo['id_rnd'], false, "onlyoffice");
        if (in_array($extension, $this->canEditTypes)) {
            $mode = 'edit';

Thank you Vlad! Just re-upped my support contract so I can get the latest update. Keep up the great work!

Ah, that is much easier than I thought it would be. Thanks!

Can you link to a guide or documentation that's applicable to Filerun?

You made the right decision. The only way I could get it to work was by making my Onlyoffice instance public. I buried the URL under a couple subdomains so I have a bit of security by obscurity. Just sign the site with a LetsEncrypt cert.

By "buried the URL" I mean:

Actually, couldn't you just modify your Filerun .htaccess to allow IP from CIDR, like this:

Allow from

And here's another idea to allow all connections from local network, but require login for external.

Edit: Oops I forgot you're on Windows so you'll have to find an IIS equivalent...

This is where you might want to look into using YOURLS for the link shortener and a custom .htaccess file that blocks specific IP, IP ranges or country.

Makes sense, thank you for taking the time to explain that. For your debugging purposes, my my.cnf file was set to the default settings of:




Thanks again, Vlad.

Did you notice this setting in control panel->login and registration:

Alternatively, you could possibly use a URL shortener like YOURLS (which integrates nicely with Filerun) and a plugin to restrict access by IP.