PrusaSlicer

PrusaSlicer

apps.detail.types.app from junkerderprovinz's Repository

apps.detail.sections.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 over WebRTC (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 (WebRTC), so the 3D plate stays smooth to rotate, zoom and drag — the part of slicing where the old noVNC containers feel laggy.

Buy me a coffee


Table of Contents

  1. What is this?
  2. Screenshots
  3. Why Selkies?
  4. Install on Unraid
  5. Configuration
  6. First use
  7. How it works
  8. Credits
  9. License

1. What is this?

An own-image container that packages PrusaSlicer — the FDM/SLA slicer from Prusa Research — on top of LinuxServer.io's baseimage-selkies and serves its desktop UI straight to your browser. No X client, no VNC viewer, no separate install on your workstation: open the WebUI and slice.

LinuxServer ship OrcaSlicer and Cura on Selkies, but not PrusaSlicer, and the only other browser-based PrusaSlicer images are years-old, abandoned noVNC builds. This is a maintained, modern Selkies (WebRTC) build for amd64 and arm64.

PrusaSlicer itself is installed from Debian trixie's prusa-slicer package (PrusaSlicer no longer ships a Linux AppImage), so it tracks Debian's security updates and works natively on both architectures.


2. Screenshots

PrusaSlicer plater — a model on the 3D build plate, streamed to the browser
The plater — place and arrange models on the 3D build plate, right in your browser over Selkies.


PrusaSlicer sliced preview — colour-coded toolpaths, per-feature breakdown and print-time estimate
Sliced preview — colour-coded toolpaths, a per-feature breakdown and the print-time / filament estimate, then export the G-code.


3. Why Selkies?

Slicing is a 3D-viewport workflow: you rotate the plate, zoom into overhangs, drag and orient models, and scrub the layer/tool-path preview. Over the older noVNC stack that continuous canvas feels laggy because the whole frame is re-encoded on every change. Selkies streams the desktop over WebRTC, the same reason LinuxServer moved Orca, Cura, Blender and FreeCAD onto it — so the plate stays responsive. When the host has a GPU the base wires it through; without one it falls back to software rendering so it still works.


4. Install on Unraid

Requires Unraid 6.12+. Install via Community Applications — search for PrusaSlicer (look for the junkerderprovinz maintainer). Or add the template repository manually under Docker → Add Container → Template repositories:

https://github.com/junkerderprovinz/unraid-apps

Then open the WebUI on the mapped HTTPS port (default 3001).


5. Configuration

Variable Required Description
CUSTOM_USER No WebUI login user. Leave empty (with PASSWORD) for no login on a trusted LAN.
PASSWORD No WebUI login password. Empty = no login; set both to enable HTTP basic auth on the WebUI.
CUSTOM_HTTPS_PORT No HTTPS port the WebUI is served on (default 3001).
PUID / PGID No User/group the app runs as, so files it writes match your share ownership. The Unraid template sets 99/100 (nobody/users).
TZ No Timezone (e.g. Europe/Berlin).

Mount your models/G-code folder to /storage (the Unraid template defaults it to /mnt/user, giving access to all shares) so imports and slices land on your array. PrusaSlicer's own configuration (printer/filament/print profiles) persists under /config.

[!NOTE] The WebUI has no login by default for trusted-LAN use. Never expose it directly to the internet — put it behind a VPN or a reverse proxy that adds authentication, or set CUSTOM_USER + PASSWORD to enable the built-in basic auth.


6. First use

  1. Open the WebUI — PrusaSlicer starts maximised, ready to slice.
  2. Run the Configuration Assistant (first launch) and pick your printer(s) and filament(s).
  3. Import a model (File → Import, or drag it onto the plate from your mounted folder), slice, and export the G-code to your mounted output folder.
  4. Prefer a dark UI? PrusaSlicer has its own Dark mode under Preferences → General → Dark mode; the container's GTK chrome is already dark.

Closing the PrusaSlicer window simply reopens a fresh instance — it is the container's single app (kiosk model), so there is nothing else to manage.


7. How it works

Browser ──WebRTC (Selkies)──> PrusaSlicer container
                              ├─ nginx (Selkies WebUI, HTTPS :3001)
                              ├─ openbox + Selkies desktop
                              └─ /usr/bin/prusa-slicer  (Debian trixie package)
                                 └─ /config  (printer/filament/print profiles, persisted)

Built on ghcr.io/linuxserver/baseimage-selkies:debiantrixie. A small s6 overlay seeds the openbox autostart (which launches PrusaSlicer as the session's single app), keeps the WebUI login-free unless you set credentials, and prints a PRUSASLICER IS READY banner to the container log once the WebUI is serving. Images are built natively per architecture, boot-smoke tested (the binary is present and the WebUI answers) before publishing, and scanned for CVEs.


8. Credits

  • PrusaSlicer by Prusa Research (AGPL-3.0) — the slicer this image packages. Installed from the Debian prusa-slicer package. This project is not affiliated with or endorsed by Prusa Research.
  • LinuxServer.io baseimage-selkies (GPL-3.0) — the Selkies web-desktop base.
  • Selkies — the WebRTC desktop streaming stack.

See NOTICE for the full bundled-software license list. This repository's own wrapper (Dockerfile, rootfs, scripts, artwork) is AGPL-3.0; see LICENSE.


9. License

Copyright (C) 2026 Junker der Provinz.

This repository packages PrusaSlicer as a container for Unraid. The packaging in this repository (Dockerfile, scripts, theme, web assets and everything else original here) is free software under the GNU Affero General Public License v3.0 (AGPL-3.0); see LICENSE. If you distribute it, or run a modified version as a network service, you must release your source under the same AGPL-3.0 terms and keep the existing copyright and attribution notices intact.

Scope. The AGPL applies to this repository's own code and assets. PrusaSlicer itself is a separate project under its own license and name; this repository does not claim it. The banner, logo, theme and other branding original to this repository remain reserved: a fork must use its own branding and may not present itself as this project.


If this saved you a slicer setup, consider buying me a coffee:

Buy me a coffee

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.categories

apps.downloadStats.title

25
apps.downloadStats.metrics.totalDownloads

apps.detail.sections.related

apps.detail.sections.details

apps.detail.details.repository
junkerderprovinz/prusaslicer:latest
apps.detail.details.lastUpdated2026-07-21
apps.detail.details.firstSeen2026-07-21

apps.detail.sections.runtime

apps.detail.details.webui
https://[IP]:[PORT:3001]/
apps.detail.details.network
bridge
apps.detail.details.shell
bash
apps.detail.details.privileged
false
apps.detail.details.extraParams
--restart=unless-stopped --shm-size=1gb

apps.detail.sections.configuration

WebUI Port (HTTPS / Selkies)Porttcp

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

apps.detail.config.target
3001
apps.detail.config.default
3001
apps.detail.config.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.

apps.detail.config.target
3000
apps.detail.config.default
3000
apps.detail.config.value
3000
AppData (/config)Pathrw

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

apps.detail.config.target
/config
apps.detail.config.default
/mnt/user/appdata/prusaslicer
apps.detail.config.value
/mnt/user/appdata/prusaslicer
Models & 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.

apps.detail.config.target
/storage
apps.detail.config.default
/mnt/user
apps.detail.config.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).

apps.detail.config.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.

apps.detail.config.target
PASSWORD
Timezone (TZ)Variable

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

apps.detail.config.target
TZ
apps.detail.config.default
Europe/Vienna
apps.detail.config.value
Europe/Vienna
User ID (PUID)Variable

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

apps.detail.config.target
PUID
apps.detail.config.default
99
apps.detail.config.value
99
Group ID (PGID)Variable

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

apps.detail.config.target
PGID
apps.detail.config.default
100
apps.detail.config.value
100
UMASKVariable

Permission mask for newly created files. Use 000 if you want every container user to read/write everything.

apps.detail.config.default
022|000|002|077
apps.detail.config.value
022