This is a sample implementation of the WOPI Protocol written with Node.js.This is not a complete implementation, but is meant to be a example for implementers to use to get started or for reference.
This server can be validated with the WOPI Validator or will work as a live WOPI Server if the computer running the WOPI Server is part of an active directory domain with a server running Office Online Server.
- NodeJS 14+
- Computer running WOPI Server must be part of an Active Directory domain
- Office Online Server running on the same domain as the WOPI Server
-
Clone the repo
-
Run
npm install
from the root of the project -
In the root of the project create a file called
.env
and copy theexample.env
file contents to it, then edit it-
OFFICE_ONLINE_SERVER
the url with protocol -
For Example, if you get hosting/discovery from
http://my-oos/hosting/discovery
then use:OFFICE_ONLINE_SERVER=http://my-oos
-
WOPI_IMPLEMENTED
a comma separated list of WOPI Methods. The server currently is capable of view, open, and edit. With those methods use:WOPI_IMPLEMENTED=view,open,edit
-
WOPI_SERVER
the url with protocol of your WOPI Server. It must be reachable from your Office Online Server. localhost will only work WOPI Validator not with actual files.-
So if you view the WOPI Client from http://my-wopi-server:3000 then use:
WOPI_SERVER=http://my-wopi-server:3000
-
-
To run the server enter node index.js
from the root of the project.
If you use VS Code, there is a launch.json file that can be used to debug the WOPI server in VS Code. Note the launch.json uses nodemon to automatically restart when a file is changed. To use the VS Code debugger, you must either install nodemon globally npm i -g nodemon
or open launch.json and replace nodemon with node, but this means you will have to manually restart the debugger after each file change.