diff --git a/apps/spoolman/config.json b/apps/spoolman/config.json new file mode 100644 index 00000000..036a7de5 --- /dev/null +++ b/apps/spoolman/config.json @@ -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" + ] + } \ No newline at end of file diff --git a/apps/spoolman/docker-compose.yml b/apps/spoolman/docker-compose.yml new file mode 100644 index 00000000..4df23f9d --- /dev/null +++ b/apps/spoolman/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/apps/spoolman/metadata/description.md b/apps/spoolman/metadata/description.md new file mode 100644 index 00000000..a28b9ea9 --- /dev/null +++ b/apps/spoolman/metadata/description.md @@ -0,0 +1,40 @@ + + + + Icon of a filament spool + + +

+ +_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) + + + + + Icon of a filament spool + + +_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) \ No newline at end of file diff --git a/apps/spoolman/metadata/logo.jpg b/apps/spoolman/metadata/logo.jpg new file mode 100644 index 00000000..a08bb04f Binary files /dev/null and b/apps/spoolman/metadata/logo.jpg differ