[Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
 
Notifications
Clear all

[Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)  

Page 1 / 2
  RSS
MikeAH
(@mikeah)
Active Member
[Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Overview

I've 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.

This container is built with Supervisor and provides a locked down instance of Prusaslicer via noVNC to access it directly in your favorite web browser.

How do I get it?

This assumes you have Docker installed and that it is properly setup and ready to serve Docker containers.

  1. Create a new docker volume on your machine (see the example below)
    docker volume create prusaslicer-novnc-data
  2. Start the Docker Container using the mikeah/prusaslicer-novnc container (see the example below)
    docker run --detach --volume=prusaslicer-novnc-data:/configs/ -p 8080:8080 -e SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt" --name=prusaslicer-novnc mikeah/prusaslicer-novnc

    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 http://docker_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).

Warnings and Best Practices

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.

Resources

You can get support via the links below or by posting on this thread. I really hope this helps and I'm also open to contributions to the repository.

Docker: https://hub.docker.com/r/mikeah/prusaslicer-novnc

GitHub: https://github.com/helfrichmichael/prusaslicer-novnc

Screenshot(s)

Prusaslicer in the browser

P.S. To the moderators if this the wrong spot to post this, please let me know, but hopefully this benefits others trying to slice on any device!

Posted : 05/02/2022 12:52 am
FoxRun3D
(@foxrun3d)
Famed Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

I previously was having to maintain the configurations for my 3 printers, their filament, etc across all of my devices.

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.

Formerly known on this forum as @fuchsr -- until all hell broke loose with the forum software...

Posted : 05/02/2022 1:40 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
Posted by: @fuchsr

I previously was having to maintain the configurations for my 3 printers, their filament, etc across all of my devices.

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.

That's a pretty solid idea and thanks for sharing it!

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.

Posted : 05/02/2022 4:03 pm
FoxRun3D
(@foxrun3d)
Famed Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

The other benefit I saw here was doing slicing on my iPad Air, iPhone, etc.

Love that idea! If you can get it to work (on a iPad specifically) I'd love to see a tutorial for how to set it up. 

Formerly known on this forum as @fuchsr -- until all hell broke loose with the forum software...

Posted : 05/02/2022 4:11 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
Posted by: @fuchsr

The other benefit I saw here was doing slicing on my iPad Air, iPhone, etc.

Love that idea! If you can get it to work (on a iPad specifically) I'd love to see a tutorial for how to set it up. 

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.

I also provide a /prints/ mount to handle storing my STLs and exporting GCODE files. This is also treated as a SMB share, so I can upload/download files to and from here on any of my devices.

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! 

Posted : 05/02/2022 4:42 pm
Wyliebutler
(@wyliebutler)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Hi Michael,

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.

Thanks for you help in advance.

Wylie Butler
Program Facilitator
Brilliant Labs.

Posted : 12/02/2022 2:49 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

 

Posted by: @wyliebutler

Hi Michael,

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.

Thanks for you help in advance.

Wylie Butler
Program Facilitator
Brilliant Labs.

Hi Wylie, 

Thanks for the kind words and I'm happy to help here if I can (also, love the work you're doing -- it's truly great). 

Uploading and Downloading files

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). 

I can download the files and then copy them over to the network share and then immediately access them on Prusaslicer.

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).

Serving over a reverse proxy

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).

Basically it breaks down to the following flow for accessing it:

prusaslicer docker container <- nginx proxy manager <- cloudflare zero trust tunnel If you have some specific reverse proxy configurations, I'm happy to take a look to see if anything stands out :). I think based on your needs this should be a viable solution for your effort!

This post was modified 3 years ago by MikeAH
Posted : 12/02/2022 5:51 pm
Wyliebutler
(@wyliebutler)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Thanks so Much Micheal!   I'm going to give your suggestions a try.  In our organization Chromebooks are king.  Everything we can do to make it seemless for users is a bonus.

Again thanks for your prompt reply.  I will keep ya posted 🙂

Regards,
Wylie

 

 

Posted : 12/02/2022 7:46 pm
Wyliebutler
(@wyliebutler)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Thanks so Much Micheal!   I'm going to give your suggestions a try.  In our organization Chromebooks are king.  Everything we can do to make it seemless for users is a bonus.

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!  

Regards,
Wylie

 

 

Posted : 12/02/2022 8:05 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
Posted by: @wyliebutler

Thanks so Much Micheal!   I'm going to give your suggestions a try.  In our organization Chromebooks are king.  Everything we can do to make it seemless for users is a bonus.

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!  

Regards,
Wylie

Regarding the recommendations I made earlier, I plan to address most of those in https://github.com/helfrichmichael/prusaslicer-novnc/issues/5 (to add firefox-esr, etc). 

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 :).

Also, I do have a noVNC container of Cura on my Docker and GitHub, but I much prefer Prusaslicer for my prints these days honestly.

Posted : 13/02/2022 12:20 am
Wyliebutler
(@wyliebutler)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

The Mount point works well 🙂   Now to work on the Proxy issuse.  What I'm looking to do is to be able to host a remote slicer when we need to access it.  🙂

Posted : 13/02/2022 11:44 am
Daave
(@daave)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

@mikeah

This docker is amazing. It was super easy to set up in my unraid instance.

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?

Posted : 14/05/2022 4:08 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
Posted by: @daave

@mikeah

This docker is amazing. It was super easy to set up in my unraid instance.

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?

Thanks for the kind words and support!

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.

Let me know if you have any issues with this or if I can provide any further guidance!

Posted : 20/05/2022 4:37 pm
fakezeta
(@fakezeta)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Hi MikeAH,

I'm using your image and I find it an amazing job, thank you!

Forwardind port 5900 will not work since the VNC Server is started with the -localhost parameter so it's not accepting connection from outside.

I found also the PrusaSlicer preview screen very slow (on my limited powered cpu): do you know if it's possible to use gpu acceleration?

TIA

 

 

Posted by: @mikeah
Posted by: @daave

@mikeah

This docker is amazing. It was super easy to set up in my unraid instance.

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?

Thanks for the kind words and support!

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.

Let me know if you have any issues with this or if I can provide any further guidance!

 

Posted : 02/10/2022 1:25 pm
cwbullet
(@cwbullet)
Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

Great idea and possible a solution to a needed issue.  

--------------------
Chuck H
3D Printer Review Blog

Posted : 02/10/2022 3:40 pm
MikeAH
(@mikeah)
Active Member
Topic starter answered:
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)
Posted by: @fakezeta

Hi MikeAH,

I'm using your image and I find it an amazing job, thank you!

Forwardind port 5900 will not work since the VNC Server is started with the -localhost parameter so it's not accepting connection from outside.

I found also the PrusaSlicer preview screen very slow (on my limited powered cpu): do you know if it's possible to use gpu acceleration?

TIA

 

 

Posted by: @mikeah
Posted by: @daave

@mikeah

This docker is amazing. It was super easy to set up in my unraid instance.

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?

Thanks for the kind words and support!

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.

Let me know if you have any issues with this or if I can provide any further guidance!

 

Good to know this for port 5900, I think when I tested on my Windows machine(s) I had success with it, but I primarily run this on unraid with a different port forward for Prusaslicer. As for the GPU acceleration, I haven't looked into this yet, but it should be possible. If you can, I'd say file a GitHub issue against the project so I can try to look into this when I have some spare time (been a bit busier than usual lately).

Looking at a few online Docker guides, I see some guidance for GPU passthrough with NVIDIA and I do have a dedicated GPU on my server that I can use for testing.

Posted by: @cwbullet

Great idea and possible a solution to a needed issue.  

Thanks for the kind words and glad you're enjoying it :D!

Posted : 07/10/2022 2:58 pm
Lars Birger Bergmål
(@lars-birger-bergmal)
New Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

is there a way to mount this as some kind of sftp drive?
also, what is the ssh password?

Posted : 17/07/2023 10:16 pm
mkurz
(@mkurz)
Member
RE: [Docker Container] Prusaslicer noVNC (Prusaslicer in your browser)

That looks like a great way to get rid of my last PC around here. Is this possible to run on a Synology NAS? Im not sure the Hardware Acc is enough.

Posted : 06/12/2023 10:50 am
_KaszpiR_
(@_kaszpir_)
Prominent Member
RE:

If your Synology NAS is on Intel/AMD  64bit processor and it runs some sane Linux distro which supports Docker containers (or something newer like crio/containerd) then it is quite possible that the answer is yes.

 

some commands that may help to search more about it:
cat /proc/cpuinfo

cat /etc/os-release

See my GitHub and printables.com for some 3d stuff that you may like.

Posted : 06/12/2023 6:54 pm
mkurz
(@mkurz)
Member
RE:

Hi. Thanks for the reply. It indeed works. I‘m currently running it on my DS423+ depending on the model its a bit slow in the preview but thats totaly fine for my needs. 
This NAS has an Intel Celeron J4125 and i maxed out the RAM to 18GB.

thank you 

 

This post was modified 12 months ago by mkurz
Posted : 06/12/2023 7:36 pm
Page 1 / 2
Share: