MikeAH Posted January 30, 2022 Share Posted January 30, 2022 (edited) Docker: https://hub.docker.com/r/mikeah/prusaslicer-novnc GitHub: https://github.com/helfrichmichael/prusaslicer-novnc Overview I recently started to become slightly frustrated with my all of my varying devices having various STLs (the model files used for 3D Printing) that I am printing/want to print. I decided why not use unraid to host a share and then serve Prusaslicer via a Docker container? I have 3 printers, so sometimes I want to re-slice a model for another one of my printers or another filament type. I started my search first in the Community Apps plugin and was sad to discover "No results found" when I searched for "prusaslicer", but luckily I landed on a few Docker containers with built-in VNC support. A few of the containers worked well, but I found them to be overly complex for the task at hand. In my approach I simplified the docker container as much as possible and provided some quality of life changes to keep Prusaslicer happy and healthy. I was able to get this template added to the Community Apps plugin and I've also provided manual installation instructions. Feel free to add it and let me know if you run into any issues. From my testing so far, it runs really smooth in the browser and additionally is retaining the configuration properly through image wipes, etc. Thanks and hope you all like it! Installation guide Using Community Apps, search for prusaslicer-novnc and it should return the MikeAH's Repository offering. Manual installation process: Open your Docker page on your unraid instance. Scroll to the bottom and in the Template repositories textarea, add the URL below https://github.com/helfrichmichael/unraid-templates (This will add all of my unraid Docker templates as I add more as an FYI. If you only want to get the prusaslicer template, add /prusaslicer to the URL above and that should work) Then click ADD CONTAINER Select prusaslicer-novnc from the menu You will now set all of the varying environment variables. By default I used my /mnt/cache/appdata/prusaslicer for the /configs/ directory. I also passed in a unraid share for my STL and GCODE files by adding a path for /prints/. Click APPLY or DONE. The docker should hopefully spin up and build successfully. You can now access your Prusaslicer instance at http://UNRAID_IP:6080 (or if you changed the port, use that port -- additionally UNRAID_IP is your unraid host IP). Accessing the web interface Once installed visit http://UNRAID_IP:6080 (UNRAID_IP will be your unraid host IP -- something like 192.168.1.92 for example). 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. Screenshot(s) Edited February 3, 2022 by MikeAH Updated the post with the latest info and also converted this to follow the format of other docker containers 2 Quote Link to comment
PsyVision Posted February 2, 2022 Share Posted February 2, 2022 Yo, thanks for this - I gave it a try this evening and I get the following in my logs: 2022-02-02 21:43:15,256 INFO supervisord started with pid 1 2022-02-02 21:43:16,258 INFO spawned: 'x11' with pid 15 2022-02-02 21:43:16,260 INFO spawned: 'easy-novnc' with pid 16 2022-02-02 21:43:16,261 INFO spawned: 'prusaslicer' with pid 17 2022-02-02 21:43:16,263 INFO spawned: 'openbox' with pid 18 2022-02-02 21:43:17,796 INFO success: x11 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: easy-novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: prusaslicer entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:18,990 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:19,992 INFO spawned: 'prusaslicer' with pid 29 2022-02-02 21:43:20,025 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:21,401 INFO spawned: 'prusaslicer' with pid 41 2022-02-02 21:43:21,432 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:23,436 INFO spawned: 'prusaslicer' with pid 46 2022-02-02 21:43:23,466 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:26,471 INFO spawned: 'prusaslicer' with pid 51 2022-02-02 21:43:26,518 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:26,471 INFO spawned: 'prusaslicer' with pid 51 2022-02-02 21:43:26,518 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:27,519 INFO gave up: prusaslicer entered FATAL state, too many start retries too quickly When navigating to the IP:8080 I get the connect dialog then a blank/black VNC screen. Any ideas? Quote Link to comment
MikeAH Posted February 3, 2022 Author Share Posted February 3, 2022 2 hours ago, PsyVision said: Yo, thanks for this - I gave it a try this evening and I get the following in my logs: 2022-02-02 21:43:15,256 INFO supervisord started with pid 1 2022-02-02 21:43:16,258 INFO spawned: 'x11' with pid 15 2022-02-02 21:43:16,260 INFO spawned: 'easy-novnc' with pid 16 2022-02-02 21:43:16,261 INFO spawned: 'prusaslicer' with pid 17 2022-02-02 21:43:16,263 INFO spawned: 'openbox' with pid 18 2022-02-02 21:43:17,796 INFO success: x11 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: easy-novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: prusaslicer entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:17,796 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2022-02-02 21:43:18,990 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:19,992 INFO spawned: 'prusaslicer' with pid 29 2022-02-02 21:43:20,025 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:21,401 INFO spawned: 'prusaslicer' with pid 41 2022-02-02 21:43:21,432 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:23,436 INFO spawned: 'prusaslicer' with pid 46 2022-02-02 21:43:23,466 INFO exited: prusaslicer (terminated by SIGSEGV; not expected) 2022-02-02 21:43:26,471 INFO spawned: 'prusaslicer' with pid 51 2022-02-02 21:43:26,518 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:26,471 INFO spawned: 'prusaslicer' with pid 51 2022-02-02 21:43:26,518 INFO exited: prusaslicer (terminated by SIGFPE; not expected) 2022-02-02 21:43:27,519 INFO gave up: prusaslicer entered FATAL state, too many start retries too quickly When navigating to the IP:8080 I get the connect dialog then a blank/black VNC screen. Any ideas? I just made another push to Docker and GitHub with a fix to the /configs/.config/ directory not existing for fresh installations. If this was the issue you were hitting, it's since been fixed. I tested on two devices with brand new docker volumes for it with success so 🤞. Appreciate the kind words and support! Quote Link to comment
PsyVision Posted February 3, 2022 Share Posted February 3, 2022 Thank you very much, that seems to have done the trick! Quote Link to comment
MikeAH Posted February 3, 2022 Author Share Posted February 3, 2022 3 hours ago, PsyVision said: Thank you very much, that seems to have done the trick! That's great to hear! Thanks for confirming that the fix resolved your issue and let me know if you have any feedback or suggestions. Quote Link to comment
windlok1010 Posted February 5, 2022 Share Posted February 5, 2022 Thanks for making a prusaslicer docker! I've been running it on VM for the same reason. Tried to install it just now and it said prusaslicer entered FATAL state, too many start retries too quickly Pretty sure I'm using the latest image. Thanks! Quote Link to comment
MikeAH Posted February 5, 2022 Author Share Posted February 5, 2022 (edited) 1 hour ago, MikeAH said: Happy to help if I can and I feel that pain haha. What are your volume bindings set to out of curiosity? Anything else in the logs? Another thing to try is going into the console, and run ls -la /configs/ and we can see if the .config folder is there. I just tested once again with the latest image using /configs/ and port 6080 and it seemed to work just fine using the latest container. I'm working on adding tags to better identify which image is truly the latest. Disregard there was indeed a bug, thanks for catching it, @windlok1010. It's with how Prusaslicer handles stable/beta versioning on Linux. More specifically, if it's beta it uses .config/PrusaSlicerBeta and on stable it uses .config/PrusaSlicer. The script I used to pull the latest version takes either of them. If there is a strong sentiment to not use the beta versions, let me know and I'll regex beta versions out of the pool. I modified the Docker container to forcefully set the data directory to /configs/.config/PrusaSlicer going forward. I'm pushing to GitHub with the latest changes and I've already made a push as of 2 minutes ago. This means if you were using this container successfully previously, you might need to move .config/PrusaSlicerBeta to .config/PrusaSlicer. Edited February 5, 2022 by MikeAH Tagging properly this time. Quote Link to comment
windlok1010 Posted February 5, 2022 Share Posted February 5, 2022 8 hours ago, MikeAH said: Disregard there was indeed a bug, thanks for catching it, @windlok1010. It's with how Prusaslicer handles stable/beta versioning on Linux. More specifically, if it's beta it uses .config/PrusaSlicerBeta and on stable it uses .config/PrusaSlicer. The script I used to pull the latest version takes either of them. If there is a strong sentiment to not use the beta versions, let me know and I'll regex beta versions out of the pool. I modified the Docker container to forcefully set the data directory to /configs/.config/PrusaSlicer going forward. I'm pushing to GitHub with the latest changes and I've already made a push as of 2 minutes ago. This means if you were using this container successfully previously, you might need to move .config/PrusaSlicerBeta to .config/PrusaSlicer. just updated the container and it is working perfectly! Time to start slicing! 1 Quote Link to comment
lurkio Posted February 8, 2022 Share Posted February 8, 2022 Any suggestions for performance? It works great, just a little choppy. Nice work! Quote Link to comment
MikeAH Posted February 10, 2022 Author Share Posted February 10, 2022 On 2/8/2022 at 6:42 PM, lurkio said: Any suggestions for performance? It works great, just a little choppy. Nice work! What are the specs of the machine you're running it on and is it consistently choppy or only in the sliced preview? FWIW this is being rendered using only your CPU using the default configuration which will be quite slow when slicing generally. For me, the non-sliced preview is super smooth, but when I slice it's a bit lethargic. Still usable for me though. Quote Link to comment
lurkio Posted February 10, 2022 Share Posted February 10, 2022 It's an old gen 3 i7. My experience is the same as yours, works better before you slice the model. It is definitely still usable. Sounds like I'd need to add a GPU which may not be worth it for that box, I'm using Plex on another system so it really doesnt need it otherwise. Quote Link to comment
m4ha7m4 Posted July 20, 2022 Share Posted July 20, 2022 Is there any way to set the UID/GID/UMASK for this container or your superslicer container? It seems to default to 1000 which is a user on my server that has no write permissions Quote Link to comment
CinematicFlow Posted November 21, 2022 Share Posted November 21, 2022 Hi ! Just here to say that I'v been using cura, superslicer and prusaslicer with no hiccup for the last 2 months and I love it ! I've been running superslicer nightlybuild localy to get the latest goodies, is there a way to choose a specific build (nightly/RC) somehow ? I'm not fluent with docker images and I don't know what to change for it to work Cheers ! Quote Link to comment
Jonwork88 Posted December 27, 2023 Share Posted December 27, 2023 Thanks for making the "Slicer" dockers - I'm actually using the OrcaSlicer. I am putting it on my server so we can access remotely. We just got a new 3D printer (our 1st one - so Im pretty new at this), and when we do a bed mesh it won't display the mesh, only provides me with the message "Sorry, your browser does not support WebGL". I'm running Chrome and it does work when I run OrcaSlicer natively on my computer. Any thoughts? I don't see anything referencing WebGL in the log, for both the docker log, and the logfile in AppData for OrcaSlicer. Any idea? Thansk! Jon Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.