Basic client-server model; RPi for I/O, server/container for heavy-lifting

Hi folks!
New to forum, but got some yards with OPi.

Thanks for the fantastic work!

I'm running Octo on my RasPi 3B+, but as you can guess, it's coming up woefully short on capability.

What I would really like to do is split up my workload:

  • Use the RasPi only for IO
    ** Starting & controlling jobs
    ** manual control
    ** webcam
    ** drive LCD for more usable interaction (using OctoDash)
  • Stand up an x86-64 server (docker, VM, jail, kube, LXC, etc) to do the (potentially) resource-intensive work
    ** web-interface; then I can turn it of @ RPi - shave off points on load
    ** plugins to my heart's content
    ** 'rendering', processing
    ** logging
  • 'dumb-ass' tablet/mobile for interface, interaction - via native app or web interface @ server

The reason for this is that I want to ue the pi

Is this possible, and if so, is there some guide I look at to build such an implementation, please?

Well it's pretty easy to use a Pi for screen and webcam only.
The screen can also do the manual control and job control part.

Just set up Raspbian (Raspberry Pi OS) and install the mjpg-streamer server. Check out this guide if you need help with it.
Next install OctoDash on the pi and configure it to connect to the Octoprint VM / Docker / whatever.

Then set up your x86 server and either use the docker container or create a VM for it.
You can use the same guide for the VM - just use your username instead of pi and change the paths accordingly.
Use http://<your Raspi's IP>:8080/?action=stream for the webcam, connect your printer to the server and you're ready to go :slight_smile:

For the tablet - just install the app of your choice and connect it to the server.

1 Like

To clarify something that I'm not entirely sure if you are thinking of you can't split the printer control from the rest of the OctoPrint server. You run the server that is connected to your printer, then everything else is a client to that server. You can't 'turn the web interface off' without shutting down OctoPrint, and anyway when there is no client connected then there is no CPU load from the http-serving side, since nothing is requesting any data, so this would not save you anything.


Any success in the client/server setup? I use a system call HomelabOS on a proxmox server that has Octoprint builtin but my printer is unable to be connected to it via USB. I tried getting USBIP working but was unable to get the printer to be recognized by Octoprint. I would really like the server to handle the bulk of the load and the Rpi to just work as a network interface/webcam connection.

You might get something to work with this.