# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [v1.18.0] ### Added * ci: force image build if source changes in main * build: allow specific upstream versions to be ignored ### Changed * **klipper: update base image(s) to python 3.12** * **klipper, moonraker, klipperscreen, ustreamer: update base image(s) to debian trixie** * klipper: use git to generate version file instead of `make_version.py` * traefik: update to v3.5 * ci: use github action to set up python venv required for build * ci: update multiple actions * renovate: overhaul automerge configs and also generate PRs for debian base images ### Removed * ci: remove zizmor workflow **Full Changelog**: https://github.com/mkuf/prind/compare/v1.17.0...v1.18.0 ## [v1.17.0] - 2024-11-24 ### Added * klipper & moonraker: generate version file during build to correctly display versions (fixes [#74](https://github.com/mkuf/prind/issues/74#issuecomment-2474036799)) * klipper, moonraker & ustreamer: add health check scripts to container images #178 * docs: health check examples for each container and in main readme ### Changed * ci: update build requirements #181 **Full Changelog**: https://github.com/mkuf/prind/compare/v1.16.0...v1.17.0 ## [v1.16.0] - 2024-11-08 ### Fixed * custom: fix config path for klipper in portainer example #165 * ustreamer: add pkg-config to build stage to fix failing build #171 ### Changed * 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 ## [v1.15.0] - 2024-05-30 ### Added * docs: note about video device permissions via #155 reported by @d-graz * moonraker: install additional requirements prior to upstream requirements, fixes https://github.com/Arksine/moonraker/issues/864 ### Changed * docs: rework intro and added table of supported applications * spoolman: serve via traefik subpath `/spoolman` instead of container port `8000` **Full Changelog**: https://github.com/mkuf/prind/compare/v1.14.0...v1.15.0 ## [v1.14.0] - 2024-05-06 ### Fixed * klipper: revert to python 3.11 base images as klipper does not support 3.12 yet to fix #143 and #150 ### Changed * 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 ## [v1.13.0] - 2024-03-23 ### Added - profile: [spoolman by Donkie](https://github.com/Donkie/Spoolman) via #91 **Full Changelog**: https://github.com/mkuf/prind/compare/v1.12.0...v1.13.0 ## [v1.12.0] - 2024-03-23 ### Added * ci: workflow to build images for pull requests to review * custom: add moonraker config snippet for timelapse setup ### Fixed * ustreamer: copy the correct binary to the runtime image and set entrypoint accordingly ### Changed * 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 of `development` 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 ## [v1.11.0] - 2024-02-23 ### Changed - images: all images will now tagged with the [git description](https://git-scm.com/docs/git-describe#_examples) of the upstream repository instead of a shortened SHA in an attempt to make image versions easier to understand (numbers always go up :rocket:) via #114 and #111 - docs: reflect new tagging scheme **Full Changelog**: https://github.com/mkuf/prind/compare/v1.10.0...v1.11.0 ## [v1.10.0] - 2024-02-08 ### Added - docs: add notes about CANBUS - custom: add monitoring example - ci: add yamllint action via #110 by @hz61p1 ### Fixed - docs: fix volume paths in moonraker examples #102 - docs: update links to status badges ### Changed - 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 ## [v1.9.1] - 2023-09-23 ### Fixed - 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 https://github.com/mkuf/prind/issues/46#issuecomment-1714421086 ### Changed - 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 ## [v1.9.0] - 2023-08-20 ### Added - profile: moonraker-obico via #89 ### Changed - docker: update repo url for KlipperScreen - scripts: exclude `out` and `resonances` directory from support archive **Full Changelog**: https://github.com/mkuf/prind/compare/v1.8.0...v1.9.0 ## [v1.8.0] - 2023-08-06 ### Added - CHANGELOG.md - custom/docker-compose.custom.unique-uid-gid.override.yaml ### Fixed - Github Action Runner running out of space ### Changed - 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 ## [v1.7.1] - 2023-06-22 ### Changed - All Images are now based on Debian bookworm https://github.com/mkuf/prind/pull/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 ## [v1.7.0] - 2023-06-17 ### Added - profile: `hostmcu` enables you to use your hosts gpio pins for an additional mcu in klipper - klipper: add `build-hostmcu` and `hostmcu` 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 ### Changed - klipper now always runs in privileged mode and has access to host devices #77/#78 - klipper: the `mcu` image target has been renamed to `tools` resulting in images tagged with `*-tools` instead of `*-mcu` - extra: update image tags to use the `tools` tag instead of the `mcu` 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 - removed all profiles from klipper service - service: klipper-priv used for octoprint ⚠️ The `hostmcu` profile is supported starting with the following image: |Name|Tag| |---|---| |mkuf/klipper|[38e79df](https://hub.docker.com/layers/mkuf/klipper/38e79df/images/sha256-0986dbee88bba491cd776950670a900df3405312d31c5b64d16a0943da79c5ed?context=repo)| **Full Changelog**: https://github.com/mkuf/prind/compare/v1.6.0...v1.7.0 ## [v1.6.0] - 2023-05-28 ### Added - **profile**: add `mobileraker_companion` by @Clon1998 via https://github.com/Clon1998/mobileraker_companion/pull/29 - **custom**: example on how to use moonraker-timelapse https://github.com/mkuf/prind/issues/46 - **docs**: udev rules for serial device permissions https://github.com/mkuf/prind/issues/64 ### Changed - **fluidd**: use docker image from GHCR by @pedrolamas in https://github.com/mkuf/prind/pull/73 - **scripts**: setup-X11: create home directory for `screen` user, install `xserver-xorg-legacy` and create `Xwrapper.config` if it does not exist **Full Changelog**: https://github.com/mkuf/prind/compare/v1.5.0...v1.6.0 ## [v1.5.0] - 2023-04-07 ### Added - ARMv6 Support in https://github.com/mkuf/prind/pull/70 - missing requirements to klipper mcu image ARMv6 support starts with these Image tags: |Name|Tag| |---|---| |mkuf/klipper|[fec7ddd](https://hub.docker.com/layers/mkuf/klipper/fec7ddd/images/sha256-c35ed50bfc707149d41b5922c6def382b58db019ecb912ae14a44b85809233fa)| |mkuf/moonraker|[31e589a](https://hub.docker.com/layers/mkuf/moonraker/31e589a/images/sha256-cf580305cb50b2506336ff3dc4503b86fe64c256348904a8432844b721b42a92)| |mkuf/klipperscreen|[a1c602b](https://hub.docker.com/layers/mkuf/klipperscreen/a1c602b/images/sha256-3704bca307df58d7db346970a214e59e8479f8037e8ea108c5aa4260024c5405)| |mkuf/ustreamer|[28c8599](https://hub.docker.com/layers/mkuf/ustreamer/28c8599/images/sha256-4bdefd6b27bffa44c94a9d005a273cc886e07baa254c04937d66cc6c5ee16f0e)| **Full Changelog**: https://github.com/mkuf/prind/compare/v1.4.0...v1.5.0 ## [v1.4.0] - 2023-01-01 ### Added - moonraker-telegram-bot by @nlef in https://github.com/mkuf/prind/pull/48 ### Changed - moves klipperscreen docs to the additional profiles section **Full Changelog**: https://github.com/mkuf/prind/compare/v1.3.2...v1.4.0 ## [v1.3.2] - 2022-12-18 ### Added - prind specific labels to all services ### Changed - 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 ## [v1.3.1] - 2022-12-08 ### Fixed - log Retrieval for `scripts/get-info.sh` ## [v1.3.0] - 2022-12-01 Thanks to Suggestions made by @derlaft in https://github.com/mkuf/prind/issues/44, Image sizes have been reduced drastically. ### Changed - docker: restructure Dockerfiles for klipper, moonraker and ustreamer ### Notes 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 ## [v1.2.1] - 2022-11-26 ### Changed - klipperscreen: add libraries for python-networkmanager **Full Changelog**: https://github.com/mkuf/prind/compare/v1.2.0...v1.2.1 ## [v1.2.0] - 2022-10-27 ### Added - `custom` directory to store docker-compose files that use images from this project - `docker-compose.custom.multiple-printers.yaml` for multi-printer setups - `docker-compose.custom.portainer.yaml` for starting the stack in portainer **Full Changelog**: https://github.com/mkuf/prind/compare/v1.1.1...v1.2.0 ## [v1.1.1] - 2022-10-19 This release is a bugfix for v1.1.0 and fixes #41 ### Added - 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` ### Changed - 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 ### Removed - moonraker|klipper: docker volume `/opt/printer_data` ### Notes Changes concerning Images are first implemented in the following Tags: |Image|Tag|Digest| |---|---|---| |klipper|[0d9b2cc](https://hub.docker.com/layers/mkuf/klipper/0d9b2cc/images/sha256-05904814522d941cd90b74c680f9a12fb8fb993d7ac1b223ea5dde7920f9cce3?context=repo)
[0d9b2cc-mcu](https://hub.docker.com/layers/mkuf/klipper/0d9b2cc-mcu/images/sha256-b93a6c3a386f45956d96fa8405fb786bd00c77d527106e56a7777cadeea070b6?context=repo)|`sha256:05904814522d941cd90b74c680f9a12fb8fb993d7ac1b223ea5dde7920f9cce3`
`sha256:b93a6c3a386f45956d96fa8405fb786bd00c77d527106e56a7777cadeea070b6`| |moonraker|[4954cc7](https://hub.docker.com/layers/mkuf/moonraker/4954cc7/images/sha256-03d57c0d8b73d54c99dc347e4735ba3ec777b5a4f49f845e1e05d600018589a7?context=repo)|`sha256:03d57c0d8b73d54c99dc347e4735ba3ec777b5a4f49f845e1e05d600018589a7`| **Full Changelog**: https://github.com/mkuf/prind/compare/v1.1.0...v1.1.1 ## [v1.1.0] - 2022-10-18 This release is mainly to support the Changes to Moonraker proposed in https://github.com/Arksine/moonraker/pull/491 and fixes #40. ### Added - 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 ### Changed - 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 to `moonraker.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 ### Removed - moonraker|klipper: docker volumes `/opt/run`, `/opt/cfg`, `/opt/gcode`, `/opt/db` - moonraker: the explicit command definition in `docker-compose.yaml` has been removed ### Notes Changes concerning Images are first implemented in the following Tags: |Image|Tag|Digest| |---|---|---| |klipper|[0d9b2cc](https://hub.docker.com/layers/mkuf/klipper/0d9b2cc/images/sha256-eba5246a3cd2ed4223e790e70fde9c12f2a69ce813da695e5ea054615456d10c?context=repo)
[0d9b2cc-mcu](https://hub.docker.com/layers/mkuf/klipper/0d9b2cc-mcu/images/sha256-078fe53d09ad91f91096c9c3bbd40c9742140404b18f1c6c873624bbbc81d04e?context=repo)|`sha256:eba5246a3cd2ed4223e790e70fde9c12f2a69ce813da695e5ea054615456d10c`
`sha256:078fe53d09ad91f91096c9c3bbd40c9742140404b18f1c6c873624bbbc81d04e`| |moonraker|[f745c2c](https://hub.docker.com/layers/mkuf/moonraker/f745c2c/images/sha256-3ba2e92d9f7975605c834f8e6bf41005138640bc1decc9c0ba6d4745bc18e233?context=repo)|`sha256:3ba2e92d9f7975605c834f8e6bf41005138640bc1decc9c0ba6d4745bc18e233`| **Full Changelog**: https://github.com/mkuf/prind/compare/v1.0.0...v1.1.0 ## [v1.0.0] - 2022-07-09 This is the first major release of prind with a plethora of changes since v0.5.4. Have fun. 🎉 ### Added - Support for klipper input shaper - `latest` tag to `nightly` images to achieve compatibility with docker defaults - `README.md` Files for all Docker Images in their respective directory under `docker/` - 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 ### Changed - 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 ### Removed - 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 ### Notes Changes concerning Images are first implemented in the following Tags: |Image|Tag| |---|---| |klipper|[24a1b50](https://hub.docker.com/layers/klipper/mkuf/klipper/24a1b50/images/sha256-aa17c7a9a946653cf12c3ae9a44a9ab03a265fa31bfecc20824619cf754a68cd?context=repo)
[24a1b50-mcu](https://hub.docker.com/layers/klipper/mkuf/klipper/24a1b50-mcu/images/sha256-d588551af3f072ec5824e7dfdaaa8af37d8a23cbbb8f9918cb778a5e606539e1?context=repo)| |moonraker|[d37f91c](https://hub.docker.com/layers/moonraker/mkuf/moonraker/d37f91c/images/sha256-002deb962ef6932f7ac6dde96b08e605958984c1b8777c31b313964c1fd4a894?context=repo)| |klipperscreen|[050cc13](https://hub.docker.com/layers/klipperscreen/mkuf/klipperscreen/050cc13/images/sha256-ce11b64166e6f3baa22d239f5a5288ff6fe5d1b3f1e14e63ba85886f935de898?context=repo)| |ustreamer|[db5b9d3](https://hub.docker.com/layers/ustreamer/mkuf/ustreamer/db5b9d3/images/sha256-5de0a14ae62ad8f97871d1be1e73b32cb11f8f7f26e974af50f0742806e1694d?context=repo)| **Full Changelog**: https://github.com/mkuf/prind/compare/v0.5.4...v1.0.0 ## [v0.5.4] - 2022-06-13 ### Added - Inital configuration for Octoprint in `config/octoprint.yaml` ### Changed - Octoprints' Config is no longer stored within its volume and is now part of the common config directory ## Notes ⚠️ 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 ``` ## [v0.5.3] - 2022-04-18 ### Added - `/webcam` endpoint provides full access to all ustreamer urls e.g `/webcam/stream`, `/webcam/snapshot`, `/webcam/?action=stream` ### Changed - `ustreamer` service is now called `webcam` to streamline naming for multi-cam setups - updates docs for multi-cam setups - adds the `klipperscreen` profile to `klipper` and `moonraker` services ### Removed - `/stream` endpoint ## Notes 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 ``` ## [v0.5.2] - 2022-03-30 ### Fixes - Mounts `/dev/null` in Places, where Moonraker expects klipper directories to get rid of warnings described in #14 ## [v0.5.1] - 2022-03-25 ### Changed - klipperscreen: mounts the hosts localtime into the service - klipperscreen: removes the dependency from moonraker ### Fixes - moonraker: adds missing libraries to runtime image for preview rendering ## [v0.5.0] - 2022-03-23 ### Added - systemd bindings to moonraker container ### Notes 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](https://github.com/Arksine/moonraker/blob/4b27e5e41d754ba91c7baf6db124721892d2cbc5/docs/configuration.md#machine) 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](https://hub.docker.com/r/mkuf/moonraker/tags) before expecting this feature to work. **Update:** The first Image to Support this change is the current (24.03.2022) nightly: [mkuf/moonraker:4b27e5e](https://hub.docker.com/layers/moonraker/mkuf/moonraker/4b27e5e/images/sha256-83de5a9b7119a28f1ff2a96c5215dbf154d1d465e9f4fa798ac33ce9be8929f6) ## [v0.4.0] - 2022-03-22 ### Added - official Logos for prind ### Changed - script/setup-X11: display prind logo instead of xterm while waiting for klipperscreen - docs: minor wording changes for klipperscreen ## [v0.3.0] - 2022-03-17 ### Added - KlipperScreen (Service, Dockerfile, Docs, Workflow) - X11 Setup Script ## [v0.2.1] - 2022-03-10 ### Changed - updated docker-compose.simulavr.yaml to be compatible with octoprint ## [v0.2.0] - 2022-03-09 ### Added - simulavr service for debugging the stack ### Changed - User specific config is now located in `docker-compose.override.yaml` instead of `docker-compose.yaml` directly. Consider migrating your changes to the override file if you intend to use the new simulavr service ## [v0.1.1] - 2022-02-28 ### Fixed - Service dependencies ## [v0.1.0] - 2022-02-26 - Initial release