PrusaSlicer

PrusaSlicer

Docker app from junkerderprovinz's Repository

Overview

PrusaSlicer, the FDM/SLA 3D-printing slicer from Prusa Research, on a Selkies web desktop. Slice in your browser: no VNC client, no local install. LinuxServer ship OrcaSlicer and Cura on Selkies but no PrusaSlicer; the only other browser images are years-old, abandoned noVNC builds. This is a maintained, modern Selkies (WebRTC) build for amd64 and arm64. What you get: • The full PrusaSlicer desktop app, streamed as H.264 video (Selkies) so the 3D plate stays smooth to rotate, zoom and drag, the part of slicing where the old noVNC containers feel laggy. • Installed from Debian trixie's prusa-slicer package (PrusaSlicer no longer ships a Linux AppImage), so it tracks Debian security updates. • PrusaSlicer's own Dark mode (Preferences → General); dark GTK chrome by default. • Printer / filament / print profiles persist under /config. Notes: • WebUI opens via HTTPS on port 3001 (self-signed cert, accept it once). The Selkies web client requires a secure connection, so open the WebUI directly ONLY over HTTPS (3001). Port 3000 (HTTP) is for a reverse proxy that terminates TLS in front of the container; opening it directly shows a "requires a secure connection (HTTPS)" error. • Mount your models / G-code folder to /storage (default /mnt/user) so imports and slices land on your array. • PUID/PGID default to 99/100 (nobody/users on Unraid). • Auth: leave "WebUI Username" and "Password" EMPTY to run without login. Set both to enable HTTP-basic auth on the WebUI. Recommended whenever the container is reachable beyond your LAN. • GPU: a passed-through GPU is used when present; otherwise it falls back to software rendering. Source on GitHub: https://github.com/junkerderprovinz/prusaslicer

PrusaSlicer: have your model and slice it too

Build  Lint  Docker Pulls  Image Size  Arch  PrusaSlicer  Unraid  License: AGPL-3.0

PrusaSlicer, in your browser. Slice from any device. No VNC client, no local install.
This runs the full PrusaSlicer desktop app inside a single container and streams it to your browser over Selkies (H.264 video), so the 3D plate stays smooth to rotate, zoom and drag, the part of slicing where the old noVNC containers feel laggy.


Table of Contents

  1. Download
  2. Support
  3. What it looks like
  4. What it does
  5. Getting started
  6. How AI is used here

1. Download

Server

Install from Unraid's Community Applications   Install from the MOS Hub   Install from the ZimaOS and CasaOS store   Install from the umbrelOS community app store

Download the docker-compose file   Download the source archive


2. Support

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto


3. What it looks like

The models in these pictures are the 3DBenchy and the bunny from PrusaSlicer's own shape gallery, sliced in a test container.

PrusaSlicer in a browser window with a 3DBenchy and a bunny on the build plate of a Prusa CORE One
The plater: place, scale and arrange models on the 3D build plate, right in your browser

The sliced preview with the toolpaths of both models, the feature legend and the print-time estimate
The sliced preview: toolpaths by feature, print time and filament, then export the G-code


4. What it does

  • The full PrusaSlicer desktop app in a single container, for amd64 and arm64. No X client, no VNC viewer and nothing to install on your workstation.
  • Selkies instead of noVNC. The desktop arrives as H.264 video, so rotating, zooming and dragging on the 3D plate stays smooth, which is where the old noVNC containers lag. A GPU on the host is used when there is one, and software rendering takes over when there is not.
  • PrusaSlicer from Debian trixie's prusa-slicer package, since Prusa no longer ships a Linux AppImage, so it gets Debian's security updates and runs natively on both architectures.
  • Profiles that persist. Printer, filament and print profiles live in /config, and closing PrusaSlicer starts a fresh one instead of leaving a black screen.

5. Getting started

On Unraid, install PrusaSlicer from Community Applications. Map your models and G-code folder to /storage (the template uses /mnt/user, which reaches all shares), then open the WebUI on the HTTPS port, 3001 by default.

Without Unraid:

docker run -d --name prusaslicer --shm-size=1gb \
  -p 3001:3001 \
  -e PUID=99 -e PGID=100 \
  -v /path/to/appdata/prusaslicer:/config \
  -v /path/to/models:/storage \
  junkerderprovinz/prusaslicer:latest

Open https://<server-ip>:3001/ and accept the self-signed certificate once. On the first launch the Configuration Assistant asks for your printers and filaments. After that, import a model with File → Import, slice it and export the G-code into /storage.

[!NOTE] The WebUI has no login by default, for use on a trusted network. Never expose it to the internet directly: put it behind a VPN or a reverse proxy with authentication, or set CUSTOM_USER and PASSWORD to turn on the built-in login.

Other Docker hosts

compose.yaml runs PrusaSlicer on any Linux server with Docker. Put it in a folder of its own, point the folders under volumes at your files and start it with docker compose up -d. The folders are created next to the file.

  • Synology: in Container Manager, create a project from the file (DSM 7.2 or newer).
  • Proxmox: run it in a VM or an LXC container that has Docker.
  • MOS: install PrusaSlicer from the MOS Hub.
  • ZimaOS and CasaOS: add the community store and install PrusaSlicer from it.
  • umbrelOS: add the community app store and install PrusaSlicer from it.

6. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


Questions, bugs, ideas or feature requests? Please open a GitHub issue.


The packaging in this repository is AGPL-3.0. PrusaSlicer by Prusa Research is AGPL-3.0 as well, and this project is not affiliated with or endorsed by Prusa Research. Every bundled component and its licence is listed in NOTICE.

Download Statistics

13,111
Total Downloads

Related apps

Details

Repository
junkerderprovinz/prusaslicer:latest
Last Updated2026-10-15
First Seen2026-07-21

Runtime arguments

Web UI
https://[IP]:[PORT:3001]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped --shm-size=1gb

Template configuration

WebUI Port (HTTPS / Selkies)Porttcp

HTTPS port of the Selkies WebUI (self-signed cert). This is the default WebUI, and HTTPS is required for clipboard support in the browser. Accept the self-signed certificate once.

Target
3001
Default
3001
Value
3001
WebUI Port (HTTP / Selkies)Porttcp

HTTP port of the Selkies WebUI. For a reverse proxy that terminates TLS in front of the container, NOT for direct browser access. The Selkies web client requires a secure context, so opening http://IP:3000 directly shows a 'requires a secure connection (HTTPS)' error. For direct access use the HTTPS port 3001.

Target
3000
Default
3000
Value
3000
AppData (/config)Pathrw

Persistent PrusaSlicer configuration: printer, filament and print profiles, history and preferences.

Target
/config
Default
/mnt/user/appdata/prusaslicer
Value
/mnt/user/appdata/prusaslicer
Models &amp; G-code (/storage)Pathrw,slave

Where you keep your STL/3MF models and where sliced G-code is saved. Default /mnt/user gives access to all shares. Import models and export G-code under /storage inside PrusaSlicer's file dialogs.

Target
/storage
Default
/mnt/user
Value
/mnt/user
WebUI UsernameVariable

Optional. Username for HTTP-basic-auth on the WebUI. Leave EMPTY together with the password for no login. Set both fields to enable login (recommended outside trusted LANs).

Target
CUSTOM_USER
WebUI PasswordVariable

Optional. Password for HTTP-basic-auth on the WebUI. Leave EMPTY together with the username for no login. STRONGLY recommended whenever the container is reachable from outside your LAN.

Target
PASSWORD
Timezone (TZ)Variable

Container timezone (affects log timestamps and file mtimes). Use this instead of a /etc/localtime bind-mount, because the LSIO base image manages /etc/localtime internally via TZ.

Target
TZ
Default
Europe/Vienna
Value
Europe/Vienna
User ID (PUID)Variable

User-ID PrusaSlicer runs as. Default 99 (nobody on Unraid).

Target
PUID
Default
99
Value
99
Group ID (PGID)Variable

Group-ID. Default 100 (users on Unraid).

Target
PGID
Default
100
Value
100
UMASKVariable

Permission mask for newly created files. The default 000 lets every container user read and write them, which is what you want when other containers touch the same shares. Set 022 or 077 for stricter permissions.

Default
000|022|002|077
Value
000