Overview

xlwings Lite is available as Docker image for self-hosting:

docker pull xlwings/xlwings-lite:1.0.0.0-47

It can be hosted on any service that runs Docker containers. As this is just a static file server, the container requires very little CPU and memory.

Note

While xlwings Lite is free via Excel’s add-in store, self-hosting requires a paid license, see Pricing.

Environment variables

The Docker image supports the following environment variables:

  • XLWINGS_LICENSE_KEY (required): your xlwings license key

  • XLWINGS_HOSTNAME (required): e.g., xlwings-lite.mycompany.com

  • XLWINGS_ENABLE_PYPI (optional, default false): If true, allows installing packages directly from https://pypi.org/.

  • XLWINGS_PYODIDE_BASE_URL (optional): base URL from which Pyodide and its packages are served. Defaults to the Pyodide distribution bundled with the Docker image. Set this to an external URL (e.g., https://pyodide.company.com) to serve Pyodide from a separate host instead, see below.

  • PORT (optional, default 8000): sets the port on which the application runs, e.g., 8000.

Setting up Pyodide for Production

The default Pyodide version is bundled with the container. Since the default Pyodide version will change over time, for a production setup, you should host Pyodide separately, following the instructions here:

https://github.com/xlwings/self-hosted-pyodide

This lets you serve multiple Pyodide environments – each with a specific Python version and a fixed set of packages. Workbooks pin to a specific environment, so upgrading the xlwings Lite container doesn’t break existing workbooks. Set XLWINGS_PYODIDE_BASE_URL to the URL where you are hosting it.

Hosting Solutions

Here are specific instructions for certain providers/hosting solutions: