node-wopi-server icon indicating copy to clipboard operation
node-wopi-server copied to clipboard

A WOPI Server written with Node.js

Node.js WOPI Server

This is a sample implementation of the WOPI Protocol written with in TypeScript 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 Core 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.

Requirements

  • 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

Setting Up

  • 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 Core 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

Running the Server

To run the server enter npm start from the root of the project. Or if you use VS Code, press f5 to use the debugger.