All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- klipper & moonraker: generate version file during build to correctly display versions (fixes #74)
- klipper, moonraker & ustreamer: add health check scripts to container images #178
- docs: health check examples for each container and in main readme
- ci: update build requirements #181
Full Changelog: https://github.com/mkuf/prind/compare/v1.16.0...v1.17.0
- custom: fix config path for klipper in portainer example #165
- ustreamer: add pkg-config to build stage to fix failing build #171
- moonraker: update lmdb to 1.5.1 #161
- traefik: update to 3.2 #163 #174
- klipperscreen: updated to python 3.13 #175
- docs: improvements to table of supported applications
- ci: update actions #159 #162 #164 #167 #168 #169 #170 #173
- ci: start review workflow on changes to action definitions
- ci: install build script dependencies in a venv #176
- ci: do not fail fast for review builds
- scripts: update build dependencies #166 #172
- scripts: allow setting image tag suffixes in build.py
- renovate: automerge updates if review passes
- renovate: skip python updates for moonraker and klipper
Full Changelog: https://github.com/mkuf/prind/compare/v1.15.0...v1.16.0
- docs: note about video device permissions via #155 reported by @d-graz
- moonraker: install additional requirements prior to upstream requirements, fixes Arksine/moonraker#864
- docs: rework intro and added table of supported applications
- spoolman: serve via traefik subpath
/spoolman
instead of container port8000
Full Changelog: https://github.com/mkuf/prind/compare/v1.14.0...v1.15.0
- klipper: revert to python 3.11 base images as klipper does not support 3.12 yet to fix #143 and #150
- traefik: upgrade to 3
- moonraker: use
PathRegexp
for router rule to be compatible w/ traefik 3 - ci: update buildx action to v3.3.0
- build: upgrade requirements
Full Changelog: https://github.com/mkuf/prind/compare/v1.13.0...v1.14.0
- profile: spoolman by Donkie via #91
Full Changelog: https://github.com/mkuf/prind/compare/v1.12.0...v1.13.0
- ci: workflow to build images for pull requests to review
- custom: add moonraker config snippet for timelapse setup
- ustreamer: copy the correct binary to the runtime image and set entrypoint accordingly
- klipper: update to python 3.12 base image and move additional python requirements to file
- moonraker: update to python 3.12 base image
- klipperscreen: update to python 3.12 base image
- scripts: rewrite build script using python
- ci: use new build script in github workflows
- ci: consolidate image specific build workflows into a single matrix workflow
- ci: consolidate image specific dockerhub description workflows into a single matrix workflow
- moonraker: make traefik labels compatible with traefik v3.0-rc1
- moonraker-telegram-bot: use
latest
instead ofdevelopment
image via #137 - chore: update traefik to v2.11 via #127
Full Changelog: https://github.com/mkuf/prind/compare/v1.11.0...v1.12.0
- images: all images will now tagged with the git description of the upstream repository instead of a shortened SHA in an attempt to make image versions easier to understand (numbers always go up 🚀) via #114 and #111
- docs: reflect new tagging scheme
Full Changelog: https://github.com/mkuf/prind/compare/v1.10.0...v1.11.0
- docs: add notes about CANBUS
- custom: add monitoring example
- ci: add yamllint action via #110 by @hz61p1
- docs: fix volume paths in moonraker examples #102
- docs: update links to status badges
- docker: pin base images to python:3.11-(slim-)bookworm
- extra: simplify moonraker-timelapse setup
- ci: restructure image build workflows
- ci: add image docs workflow to update dockerhub descriptions automatically
- docs: add note about image origin
Full Changelog: https://github.com/mkuf/prind/compare/v1.9.1...v1.10.0
- klipper: pin numpy to 1.25.2 to fix failing image build on arm/v7 #95
- custom: added wget to moonraker-timelaps as suggested in #46 (comment)
- klipperscreen: mount host dbus into container
- moonraker-obico: run service in privileged mode
Full Changelog: https://github.com/mkuf/prind/compare/v1.9.0...v1.9.1
- profile: moonraker-obico via #89
- docker: update repo url for KlipperScreen
- scripts: exclude
out
andresonances
directory from support archive
Full Changelog: https://github.com/mkuf/prind/compare/v1.8.0...v1.9.0
- CHANGELOG.md
- custom/docker-compose.custom.unique-uid-gid.override.yaml
- Github Action Runner running out of space
- Refactor moonraker-timelapse custom setup into an single override file
- Clarify docs for upgrading the stack related to #86
- Minimize get-info output and prompt user to upload the generated archive
- Improve command handling in get-info
Full Changelog: https://github.com/mkuf/prind/compare/v1.7.1...v1.8.0
- All Images are now based on Debian bookworm #81
- Klipper has been upgraded from Python 2 to Python 3
Full Changelog: https://github.com/mkuf/prind/compare/v1.7.0...v1.7.1
- profile:
hostmcu
enables you to use your hosts gpio pins for an additional mcu in klipper - klipper: add
build-hostmcu
andhostmcu
targets to Dockerfile - klipper: add klipper user to
tty
group - klipper: install correct libusb packages in tools image
- docs: add hostmcu section to additional profiles
- klipper now always runs in privileged mode and has access to host devices #77/#78
- klipper: the
mcu
image target has been renamed totools
resulting in images tagged with*-tools
instead of*-mcu
- extra: update image tags to use the
tools
tag instead of themcu
tag of the klipper image - extra: simplify simulavr compose file as klipper is running in privileged mode
- custom: update examples to run klipper in privileged mode
- docs: update klipper image documentation
- docs: update moonraker image documentation
- removed all profiles from klipper service
- service: klipper-priv used for octoprint
hostmcu
profile is supported starting with the following image:
Name | Tag |
---|---|
mkuf/klipper | 38e79df |
Full Changelog: https://github.com/mkuf/prind/compare/v1.6.0...v1.7.0
- profile: add
mobileraker_companion
by @Clon1998 via Clon1998/mobileraker_companion#29 - custom: example on how to use moonraker-timelapse #46
- docs: udev rules for serial device permissions #64
- fluidd: use docker image from GHCR by @pedrolamas in #73
- scripts: setup-X11: create home directory for
screen
user, installxserver-xorg-legacy
and createXwrapper.config
if it does not exist
Full Changelog: https://github.com/mkuf/prind/compare/v1.5.0...v1.6.0
- ARMv6 Support in #70
- missing requirements to klipper mcu image
ARMv6 support starts with these Image tags:
Name | Tag |
---|---|
mkuf/klipper | fec7ddd |
mkuf/moonraker | 31e589a |
mkuf/klipperscreen | a1c602b |
mkuf/ustreamer | 28c8599 |
Full Changelog: https://github.com/mkuf/prind/compare/v1.4.0...v1.5.0
- moonraker-telegram-bot by @nlef in #48
- moves klipperscreen docs to the additional profiles section
Full Changelog: https://github.com/mkuf/prind/compare/v1.3.2...v1.4.0
- prind specific labels to all services
- use map instead of list for label definitions
- update
get-info.sh
to reference prind specific labels
Full Changelog: https://github.com/mkuf/prind/compare/v1.3.1...v1.3.2
- log Retrieval for
scripts/get-info.sh
Thanks to Suggestions made by @derlaft in #44, Image sizes have been reduced drastically.
- docker: restructure Dockerfiles for klipper, moonraker and ustreamer
Changes concerning Images are first implemented in the following Tags:
Image | Tag | Digest | armv7 size before | armv7 size after |
---|---|---|---|---|
klipper | a42f615 | 0198c7579c77a3f18dcac2faafcda5c772ffb5492037d049d8acc50402a0be50 | 309.54M | 82.37M |
klipper:mcu | a42f615-mcu | 1623b010388115830317e867b507a5f17f2d6b8c32a58cf98f649947521a3022 | 553.7M | 459.71M |
moonraker | dde9bcc | 98f5587e512d13c3c12bae442824c2d8eba419291d9697b835dad52efae9268b | 112.24M | 89.3M |
ustreamer | bf78d8f | 4d50df64cc3752af640f8d92e1c0aa4ae362372ef06fc4c6711432030259b25d | 49.68M | 38.12M |
Full Changelog: https://github.com/mkuf/prind/compare/v1.2.1...v1.3.0
- klipperscreen: add libraries for python-networkmanager
Full Changelog: https://github.com/mkuf/prind/compare/v1.2.0...v1.2.1
custom
directory to store docker-compose files that use images from this projectdocker-compose.custom.multiple-printers.yaml
for multi-printer setupsdocker-compose.custom.portainer.yaml
for starting the stack in portainer
Full Changelog: https://github.com/mkuf/prind/compare/v1.1.1...v1.2.0
This release is a bugfix for v1.1.0 and fixes #41
- moonraker|klipper: new docker volumes
/opt/printer_data/run
,/opt/printer_data/gcodes
,/opt/printer_data/logs
,/opt/printer_data/database
and/opt/printer_data/config
- links in image labels now reference the exact version of prind whith wich the image was built
- moonraker|klipper: updates docs to contain the correct volume paths
- moonraker|klipper: docker volume
/opt/printer_data
Changes concerning Images are first implemented in the following Tags:
Image | Tag | Digest |
---|---|---|
klipper | 0d9b2cc 0d9b2cc-mcu |
sha256:05904814522d941cd90b74c680f9a12fb8fb993d7ac1b223ea5dde7920f9cce3 sha256:b93a6c3a386f45956d96fa8405fb786bd00c77d527106e56a7777cadeea070b6 |
moonraker | 4954cc7 | sha256:03d57c0d8b73d54c99dc347e4735ba3ec777b5a4f49f845e1e05d600018589a7 |
Full Changelog: https://github.com/mkuf/prind/compare/v1.1.0...v1.1.1
This release is mainly to support the Changes to Moonraker proposed in Arksine/moonraker#491 and fixes #40.
- moonraker|klipper: new docker volume
/opt/printer_data
- restart directive for simulavr service in
docker-compose.extra.simulavr.yaml
- error Message to
get-info.sh
if the script is run from the wrong directory - extraction of additional information in
get-info.sh
- additional labels for docker Images to reference the version of prind
- moonraker|klipper: update
docker-compose.yaml
to mount volumes within the new directory structure - moonraker|klipper: update
CMD
s to use new directory structure moonraker.cfg
is renamed tomoonraker.conf
- moonraker:
klippy_uds_address
adheres to the new directory structure - moonraker:
validate_service
has been disabled - updates the Docs for the Klipper and Moonraker Images accordingly
- moonraker|klipper: docker volumes
/opt/run
,/opt/cfg
,/opt/gcode
,/opt/db
- moonraker: the explicit command definition in
docker-compose.yaml
has been removed
Changes concerning Images are first implemented in the following Tags:
Image | Tag | Digest |
---|---|---|
klipper | 0d9b2cc 0d9b2cc-mcu |
sha256:eba5246a3cd2ed4223e790e70fde9c12f2a69ce813da695e5ea054615456d10c sha256:078fe53d09ad91f91096c9c3bbd40c9742140404b18f1c6c873624bbbc81d04e |
moonraker | f745c2c | sha256:3ba2e92d9f7975605c834f8e6bf41005138640bc1decc9c0ba6d4745bc18e233 |
Full Changelog: https://github.com/mkuf/prind/compare/v1.0.0...v1.1.0
This is the first major release of prind with a plethora of changes since v0.5.4. Have fun. 🎉
- Support for klipper input shaper
latest
tag tonightly
images to achieve compatibility with docker defaultsREADME.md
Files for all Docker Images in their respective directory underdocker/
- Naming convention for additional compose files
docker-compose.extra.*.yaml
- labels to docker images with additional infos about their origin
script/get-info.sh
to generate support files to assist in troubleshooting
- simplified instructions on building mcu code
- use the official mainsail docker image #29
- define commands as strings instead of yaml lists in all compose files
- unused octoprint image from
docker/octoprint
container_name
from all compose files to use autogenerated names- mainsail dockerfile and github workflow #29
- redundant command definitions for services
Changes concerning Images are first implemented in the following Tags:
Image | Tag |
---|---|
klipper | 24a1b50 24a1b50-mcu |
moonraker | d37f91c |
klipperscreen | 050cc13 |
ustreamer | db5b9d3 |
Full Changelog: https://github.com/mkuf/prind/compare/v0.5.4...v1.0.0
- Inital configuration for Octoprint in
config/octoprint.yaml
- Octoprints' Config is no longer stored within its volume and is now part of the common config directory
If you are already using prind with Octoprint, copy your config.yaml
from the octoprint volume to config/octoprint.yaml
before upgrading, otherwise all your octoprint settings will be lost.
You can use docker compose to achieve this, e.g.
docker compose --profile octoprint cp octoprint:/octoprint/octoprint/config.yaml ./config/octoprint.yaml
/webcam
endpoint provides full access to all ustreamer urls e.g/webcam/stream
,/webcam/snapshot
,/webcam/?action=stream
ustreamer
service is now calledwebcam
to streamline naming for multi-cam setups- updates docs for multi-cam setups
- adds the
klipperscreen
profile toklipper
andmoonraker
services
/stream
endpoint
This release changes the streaming URL for ustreamer and renames the ustreamer
service to webcam
.
If you are currently accessing your Webcam via http://yourhost/stream
, you'll have to update URLs to http://yourhost/webcam/stream
Be sure to execute docker compose up
with the --remove-orphans
option to avoid the depricated ustreamer service to block your webcam.
e.g.
docker compose --profile fluidd up -d --remove-orphans
- Mounts
/dev/null
in Places, where Moonraker expects klipper directories to get rid of warnings described in #14
- klipperscreen: mounts the hosts localtime into the service
- klipperscreen: removes the dependency from moonraker
- moonraker: adds missing libraries to runtime image for preview rendering
- systemd bindings to moonraker container
It is now possible to run shutdown
, reboot
and systemctl
from within the moonraker container and control the pyhsical host.
This makes it possible to safely shutdown your host from the various GUI implementations or via GCODE. See moonraker/docs/configuration.md for further Infos.
As of writing this (23.03.2022 23:48), there has been no Image built that supports these changes. Be sure to wait for the next nightly to be pushed to the docker registry at mkuf/moonraker before expecting this feature to work.
Update: The first Image to Support this change is the current (24.03.2022) nightly: mkuf/moonraker:4b27e5e
- official Logos for prind
- script/setup-X11: display prind logo instead of xterm while waiting for klipperscreen
- docs: minor wording changes for klipperscreen
- KlipperScreen (Service, Dockerfile, Docs, Workflow)
- X11 Setup Script
- updated docker-compose.simulavr.yaml to be compatible with octoprint
- simulavr service for debugging the stack
- User specific config is now located in
docker-compose.override.yaml
instead ofdocker-compose.yaml
directly. Consider migrating your changes to the override file if you intend to use the new simulavr service
- Service dependencies
- Initial release