Network requirements for running OctoPrint mostly offline

I'd like to filter OctoPrint Internet access, but retain its ability to self-update and install plugins.

Which DNS names should I allow it to connect to? I suppose there is 1) a URL for fetching news/update informations, and 2) URL(s) used by pip to install packages.

What are these URLs, and am I missing any other endpoint OctoPrint connects to?

I was sure I had answered a similar question with a list before, but I can't find it now.

OctoPrint will reach out to:

  • octoprint.org (& subdomains) - plugin repository, notices & update check overlays, connectivity check, plugin blacklist, anonymous usage tracking (if enabled)
  • github.com (& possibly subdomains) - OctoPrint's updates, as well as installing/updating the majority of plugins.
  • 1.1.1.1:53 (test connection only, no data transferred afaik) for the connectivity check. Configurable.

To install plugins with dependencies, you'll need access to pypi.org and wherever they store the packages (often files.pythonhosted.org, but mirrors exist). piwheels.org would be useful if you are running on a Pi, as some dependencies are hard to compile and prebuilt binaries are available there.

There could be more, but that's what I can remember off the top of my head. Of course plugins can do many other things, including being hosted somewhere other than github.com (eg. gitlab), but that list is not something I can write, as you can appreciate.

2 Likes