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 @@
+
+
+
+
+
+
+
+
+_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.
+
+
+
+
+
+
+
+
+
+_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