← Blog

Connecting OctoPrint to PrintStash

Set up the beta OctoPrint provider with an app key: live status, upload and start, remote file inventory, and job control beside your existing instance.

guideoctoprintintegration

If OctoPrint already runs your printer, PrintStash connects to it over the same LAN and leaves it in place. OctoPrint keeps the webcam, the terminal, the plugins, and the hands-on control. PrintStash becomes the library that feeds it files and remembers what happened.

The provider is beta. Any OctoPrint or OctoPi instance works, and the connection is an API key.

Get a key the right way

OctoPrint has three kinds of key, and they are not equally good choices.

The bundled Application Keys plugin generates a credential scoped to one application and one user, and OctoPrint’s own API documentation recommends it first, with a user-specific key as the fallback. The global API key under Settings -> API grants broad access to the whole system, and the same documentation says it “should rarely be used”. Use an application key or a user key, not the global one.

A user-specific key lives in the user list under Access Control, and can also be generated or revoked from the change-password dialog.

Keep the key out of your shell history and out of any file you commit. It is a credential for a machine that moves heated metal.

Add it to PrintStash

Open Printers -> Add printer, choose OctoPrint, and enter the instance URL as reachable from the PrintStash server, for example http://octopi.local or http://192.168.1.42, along with the key.

The address has to resolve from inside the PrintStash container, which is a different view of the network than your laptop has. A .local name that works in your browser may not resolve in the container, so use the IP if the connection fails.

Open the Diagnostics tab after saving. It separates configuration problems from reachability problems, which is usually the whole question, and it returns no stored secrets.

What you get

Live status, upload from the vault with optional start, remote file inventory including deletion, and pause, resume, and cancel.

That covers the daily loop: slice, land the file in the library as a revision, push it to the printer, start it, and record the outcome against the model.

What is missing

No raw G-code and no emergency stop through PrintStash. Both remain in OctoPrint’s terminal, which is where they belong.

No measured filament consumption. OctoPrint does not return the live extrusion measurement that Moonraker does, so filament and cost figures come from the slicer estimate. Spoolman write-back is Moonraker-only for the same reason. Print history import is also Moonraker-scoped and will not backfill past jobs from OctoPrint.

Smoke test before you trust it

  1. Confirm live status tracks the printer’s actual state.
  2. Sync the remote file list and compare it with OctoPrint’s own file view.
  3. Upload a small known-good file with start disabled.
  4. Confirm it shows up in OctoPrint.
  5. Test start and job controls last, on a printer where a mistake is harmless.

If the status badge sits on reconnecting, the browser cannot reach the WebSocket, which is a different problem from the API key being wrong. Diagnostics will tell you which one you have.

Where each tool earns its place

Keep OctoPrint for the webcam, the terminal, plugins, and troubleshooting a print in progress. It is a per-printer control surface and a good one.

PrintStash sits above that: source meshes and G-code in one library, revisions marked known good or failed, one recommended revision per model, and a queue that can dispatch across several machines. The two do not overlap much, which is why running both is normal rather than redundant. Running alongside OctoPrint, Fluidd, and Mainsail goes into that division, and PrintStash vs OctoPrint is the direct comparison if you are deciding rather than combining.

The compatibility matrix has the current capability list for every provider.

Sources