Ive built a simple Docker Container (basically software for serving super tiny versions of software in an isolated instance) to serve Prusaslicer on your local network and access over the web browser. I previously was having to maintain the configurations for my 3 printers, their filament, etc across all of my devices. This was becoming challenging and at times prints were getting sliced with out-of-date profiles.
I ended up looking around on Docker Hub and I found a few instances of Prusaslicer that were served via the browser, but many seemed to be a bit more than what I was looking for and I saw an opportunity to simplify this for quickly slicing my prints in the browser.
The command above can be understood as /configs/ being binded to prusaslicer-novnc-data that you created earlier. It will then bind the hosts port of 8080 to the containers internal port of 8080. Finally, it will attach the SSL Certificate for Prusaslicer and then we name the container and reference the container on Docker.Additionally I built support specifically for this container in unraid (a popular NAS OS). You can read the guide there if that is something you use.
Assuming you set the port 8080, you can now hit _host:8080 and access Prusaslicer. Assuming you've also set a directory for configs, it will retain your configurations (even between image updates and Prusaslicer updates).
This uses VNC and noVNC to provide access to a Dockerized instance of Prusaslicer. In the default state, there is NO AUTHENTICATION whatsoever. This means any device on your local network will be able to access this Docker unless you've locked the Docker down or provided some network level security.
One method for securely accessing this remotely could be using ArgoTunnel (Cloudflare Tunnel) and Cloudflare Teams to provide remote access with an authentication layer. This would also in theory allow you to connect each of your printers in Prusaslicer to your Octoprint instances and seamlessly print from Prusaslicer directly to your printer.
Can't really comment on the utility of a docker container for PS as such but that quoted comment caught my eyes. I found the easiest way to deal with this issue is to use symlinks to point the configuration directory to a shared drive. I've done that on Mac and PC and with Onedrive and iCloud as shared locations, and it works perfectly. I see no reason why it wouldn't work on Linux as well, or other backends such as Google Drive or Dropbox.
Plus the latest versions of Prusaslicer seem to allow specifying where your configuration files are (IE on Linux via --datadir), so that's a plus. The other benefit I saw here was doing slicing on my iPad Air, iPhone, etc. I might have to give this a whirl and see how that performs.
Ask and you shall receive :P. Here's a video of the docker container being accessed on my iPad Air. I host the Prusaslicer noVNC Docker Container on my unraid server so it's always available for all of my local devices. Then I just hit the host IP and port and voila.
Depending on your setup I can potentially make some suggestions on how best to set this up in your environment. Hope this helps and thanks again for the kind words, really appreciate the support and suggestions!
I love the idea of your PrusaSlicer in a browser. I work for a non-profit organization called Brilliant Labs. (
brilliantlabs.ca). A lot of the students we work with use Chromebooks. We do a lot of 3D printing work with teachers and students. A big issue for us is slicing on the Chromebook.
I have a test setup on my Unraid. I can get the web UI perfectly. It's rather cool. However, I have 2 main issues. First is; how do I upload/download a STL for slicing from my PC or my Chromebook. Secondly, I set it up through a reverse proxy. I can get to the connect button screen but when I hit connect I don't get a connection. Works perfectly in my home network. The goal for me is for our organization to have a web-based slicer so students can slice easily on their Chromebooks.
What I did on my setup was I added a /prints/ mount for my Docker configuration on unraid (I've attached a screenshot to show exactly what I've set). Basically the /prints/ mount points to a unraid share that I made called "3D Printing". Since you're using Chromebooks, they should be able to mount the unraid shares over SMB (I believe it's in the Files application in one of the 3-dot menus to mount a remote share).
Another opportunity if you or others might find it beneficial would be including the tiny firefox-esr package which gives Firefox in the Docker instance. This would allow users to use Prusaprinters, Thingiverse, etc to download within the docker (might be a better solution for less technical users and I can add this to the desktop menu as an option FWIW). I could even default the downloads in firefox probably over to the /prints/ folder and include this as an optional mount. Happy to take this as a feature request/enhancement if it'd help.
Finally, depending on how you're sending to the printer you can use the same method as earlier with copying to pull it onto the printer, or if you use OctoPrint, you can have the Docker container point directly at the OctoPrint instance for printing and uploading (I do this for mine).
I just tested this with NGINX Proxy Manager serving the Prusaslicer-noVNC docker and I had success. My methodology for accessing this instance is via Cloudflare Tunnel and using their Zero Trust authentication platform (free for a decent bit of instances).
Again thanks for your prompt reply! I will keep ya posted ? Our organization runs through the 4 Canadian Atlantic Provinces. The role of 3D printer support has largely fallen to me. That I certainly don't mind ? We visit a lot of schools and community centres etc dragging along a couple of printers to work with kids that typically range in age from 8 to 15. We have deployed almost 200 printers in Newfoundland alone in the last 2 years. All students in our school system here in Newfoundland, Canada use Chromebooks as their main computing device. This past year all students in the province have been given their own Chromebooks. So I think from that you get an idea what we are looking for. I've tried a couple of cloud services but found they are somewhat buggy. Too see the latest Prusa Slicer in in a web container really caught my interest. Most teachers that we deal with use Cura however I'm somewhat partial to Prusa Slicer. Anything you can implement will be great!
As for any advice, etc, I do plan on making a tutorial video at some point that I can post to YouTube for anyone seeking to do this. I will try to cover the unraid side and also try to touch on reverse proxying maybe.
Thanks again and happy to take a look at the configurations if/when you have them available to see if anything sticks out for the reverse proxy. Chromebooks definitely are a great option as thin clients, it avoids a lot of the administrator maintenance, etc so I totally get it :).
Question though. Is it possible to also access this machine using realVNC? The Web instance is perfect when I'm on a desktop machine, but on my phone I'm not able to see enough of the UI to do things like slice or send to my printer. Or maybe there's a way to modify how this shows up in my Android web browser so more of the screen is viewable?
You can definitely make a slight tweak to the template/settings for this template in unraid. The recommendation for this container would be to forward port 5900 as TCP via docker so you can access it outside of the container. Then you can access it in theory using a VNC Viewer application by hitting SERVER_IP:5900.
3a8082e126