App/spoolman (#3049)

* Add spoolman

* Add spoolman

* Add spoolman

* Add spoolman

* Update docker-compose.yml

* fix: run the app as root

---------

Co-authored-by: shaman <shaman@core>
Co-authored-by: Stavros <steveiliop56@gmail.com>
This commit is contained in:
Nazim-ua 2024-04-08 15:35:40 +03:00 committed by GitHub
parent 5cc1ea2f65
commit 08c08107d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 101 additions and 0 deletions

21
apps/spoolman/config.json Normal file
View File

@ -0,0 +1,21 @@
{
"name": "Spoolman",
"available": true,
"port": 7912,
"exposable": true,
"id": "spoolman",
"description": "Spoolman is a web service that helps you keep track of your filament spools and how they are being used. It acts as a database, where other printer software such as Octoprint and Moonraker can interact with to have a centralized place for spool information. For example, if used together with Moonraker, your spool weight will automatically be reduced as your print is progressing.",
"tipi_version": 1,
"version": "0.16.1",
"categories": [
"utilities",
"automation"
],
"short_desc": "Keep track of your inventory of 3D-printer filament spools",
"author": "Donkie",
"source": "https://github.com/Donkie/Spoolman",
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -0,0 +1,40 @@
version: '3.8'
services:
spoolman:
container_name: spoolman
image: ghcr.io/donkie/spoolman:0.16.1
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data:/home/app/.local/share/spoolman
ports:
- ${APP_PORT}:8000
environment:
- TZ=${TZ}
- PUID=0
- PGID=0
networks:
- tipi_main_network
labels:
traefik.enable: true
traefik.http.middlewares.spoolman-web-redirect.redirectscheme.scheme: https
traefik.http.services.spoolman.loadbalancer.server.port: 8000
# Web
traefik.http.routers.spoolman-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.spoolman-insecure.entrypoints: web
traefik.http.routers.spoolman-insecure.service: spoolman
traefik.http.routers.spoolman-insecure.middlewares: spoolman-web-redirect
# Websecure
traefik.http.routers.spoolman.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.spoolman.entrypoints: websecure
traefik.http.routers.spoolman.service: spoolman
traefik.http.routers.spoolman.tls.certresolver: myresolver
# Local domain
traefik.http.routers.spoolman-local-insecure.rule: Host(`spoolman.${LOCAL_DOMAIN}`)
traefik.http.routers.spoolman-local-insecure.entrypoints: web
traefik.http.routers.spoolman-local-insecure.service: spoolman
traefik.http.routers.spoolman-local-insecure.middlewares: spoolman-web-redirect
# Local domain secure
traefik.http.routers.spoolman-local.rule: Host(`spoolman.${LOCAL_DOMAIN}`)
traefik.http.routers.spoolman-local.entrypoints: websecure
traefik.http.routers.spoolman-local.service: spoolman
traefik.http.routers.spoolman-local.tls: true

View File

@ -0,0 +1,40 @@
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/Donkie/Spoolman/assets/2332094/4e6e80ac-c7be-4ad2-9a33-dedc1b5ba30e">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/Donkie/Spoolman/assets/2332094/3c120b3a-1422-42f6-a16b-8d5a07c33000">
<img alt="Icon of a filament spool" src="https://github.com/Donkie/Spoolman/assets/2332094/3c120b3a-1422-42f6-a16b-8d5a07c33000">
</picture>
<br/><br/>
_Keep track of your inventory of 3D-printer filament spools._
Spoolman is a web service that helps you keep track of your filament spools and how they are being used.
It acts as a database, where other printer software such as Octoprint and Moonraker can interact with to have a centralized place for spool information.
For example, if used together with Moonraker, your spool weight will automatically be reduced as your print is progressing.
It exposes a HTTP API which services can interact with. See the [OpenAPI description](https://donkie.github.io/Spoolman/) for more information.
## Client
Spoolman includes a web-client that lets you directly manipulate all the data. It also has a few additional nice features such as label printing.
![image](https://github.com/Donkie/Spoolman/assets/2332094/33928d5e-440f-4445-aca9-456c4370ad0d)
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://hosted.weblate.org/widget/spoolman/287x66-black.png">
<source media="(prefers-color-scheme: light)" srcset="https://hosted.weblate.org/widget/spoolman/287x66-white.png">
<img alt="Icon of a filament spool" src="https://hosted.weblate.org/widget/spoolman/287x66-white.png">
</picture>
_The web client is translated by the community using [Weblate](https://hosted.weblate.org/projects/spoolman/)._
## Integration status
Spoolman doesn't depend on any specific printer software, but to make the most out of it, you should use it together with a frontend that supports it.
It is currently only supported in the Klipper ecosystem, with official support for the major frontends. Support for other ecosystems like Octoprint is ongoing.
* ✔️ Moonraker - See the [Moonraker Documentation](https://moonraker.readthedocs.io/en/latest/configuration/#spoolman)
* ✔️ Fluidd
* ✔️ KlipperScreen
* ✔️ Mainsail
* ✖️ Octoprint - A plugin is in progress: [OctoPrint-Spoolman](https://github.com/mkevenaar/OctoPrint-Spoolman)
* ✔️ Home Assistant integration (https://github.com/Disane87/spoolman-homeassistant)

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB