Commit Graph
54 Commits
Author SHA1 Message Date
Donkie 789b7fd88f Render a sponsors board in the README
A nightly workflow runs sponsorkit against the GitHub Sponsors API and commits
.github/media/sponsors.svg when it changes, so the board stays current without
any manual work.

Ko-fi has no API to query, so tips that arrive there are kept in a small
hand-maintained list in the config and fed in through a custom provider. A tip
counts toward a tier for 30 days and then drops to Past Sponsors on its own,
which is how sponsorkit treats real Ko-fi tips and how a one-time GitHub
sponsorship ages out. marko-p's $10 tip is the first entry.
2026-09-01 21:21:20 +02:00
Donkie a039095360 Replace Ko-fi buttons with GitHub Sponsors
Both frontends and the README now point at github.com/sponsors/Donkie.

The GitHub-suggested iframe embed is not usable here: Spoolman is often
run on a LAN with no internet access, so it would render as an empty box,
and it cannot be translated or themed. The existing buttons keep their
shell and get an inlined Octicon heart plus a translated label instead.

Only the en locale source is touched; the new "sponsor" key goes out to
the other locales via Weblate.
2026-08-23 17:38:31 +02:00
Donkie e3dbd3e609 Move the security notes out of the README and into the Wiki's remit
The README carries no config reference at all -- env vars and deployment
guidance live in the Wiki -- so documenting SPOOLMAN_CORS_ORIGIN and the
reverse-proxy host requirement here gave them two homes to drift apart in.
2026-07-31 09:19:42 +02:00
Donkie 388e87ec96 Merge branch 'master' into security/backend-audit-todo
# Conflicts:
#	pyproject.toml
2026-07-31 09:15:22 +02:00
Donkie b00c1b875d Add dashboard and label-designer screenshots to the README
The library screenshot shows one of the client's four pages. The two
that are hardest to guess at from a feature list -- spools as draggable
cards grouped by location, and labels built from arbitrary spool fields
-- now sit under it in a two-column table, so they cost one screen's
height between them rather than one each.

They are captured at a narrower viewport than the library shot rather
than scaled down from it: at half width a 1440px page reduces to
unreadable, whereas 900px reflows the dashboard to two columns and the
designer to a tighter grid, so the text survives the downscale. Both are
cropped to a 3:2 aspect and have the nav bar removed -- it is already in
the shot above -- so the pair sits level.

Fixed along the way, since it would otherwise have been immortalised in
the dashboard screenshot: the card separators lost a space where they
met an {#if} boundary, which Svelte trims, rendering "Bambu Lab -Bambu
Green" and "1 kg- Last used 2 days ago". The optional parts are now
built as one expression, which has no block edge to trim.

demo_seed gains a note on why label designs aren't seeded: they're a
blob of a client-side schema, so writing one from Python would duplicate
it. The designer's own "Create your first label" is the honest route.
2026-07-31 08:37:47 +02:00
Donkie c781869d09 Refresh the README screenshot and note the legacy-client rollback
The screenshot was the 2023 React client -- a different application from
the one a new visitor now installs. The replacement is client_v2's
library with a spool's details open beside it, which is where anyone
using Spoolman spends their time, and it lives in the repo rather than
on user-content URLs so it can be regenerated with the client.

The feature list gains search/group/filter, which client_v2 makes a
first-class part of the library rather than per-column table filters.

Installation now mentions SPOOLMAN_LEGACY_CLIENT. Someone whose setup
the new client misbehaves on will look here before .env.example, and
the useful thing to know is that both clients ship in every release and
share the API, so falling back costs nothing.

Claude-Session: https://claude.ai/code/session_01UB5KocsTBm9GL5x3Uuup5F
2026-07-30 21:00:36 +02:00
Donkie 1b1dbbb78f security: drop CORS credentials under a wildcard origin, document the model
allow_origins=["*"] with allow_credentials=True makes Starlette echo the
caller's origin back and set Access-Control-Allow-Credentials, which tells the
browser it may send cookies to whichever site asked. Spoolman has no cookies of
its own, so this looked harmless, but plenty of instances sit behind a reverse
proxy that does the authentication with one -- and there it let any website the
user visited make authenticated requests as them. Now credentials are refused
whenever the resolved origin list contains "*" (todo.md task 5).

Adds a README Security section. The README has no configuration reference at
all -- that lives in the Wiki -- so rather than starting one, this documents the
things a user has to know before deciding where to run Spoolman: that there is
no authentication by design, that it belongs behind an authenticating reverse
proxy if it is reachable beyond the LAN, what SPOOLMAN_CORS_ORIGIN is for, why
"*" is a bad idea on a shared network, and that a reverse proxy needs to forward
the original Host.

Verified with SPOOLMAN_CORS_ORIGIN=* against a real server: the response now
carries `access-control-allow-origin: *` and no credentials header, where the
audit saw the caller's origin echoed with credentials allowed.
2026-07-27 19:36:47 +02:00
Marco Thiel 4854e322dc docs: add MCP server to integrations list (#890)
Add spoolman-mcp to the list of integrations. It's a Model Context
Protocol server that lets you manage your filament inventory through
AI assistants like Claude.
2026-07-07 11:05:19 +02:00
Donkie b942d1f8a1 Replaced pdm with uv, updated backend deps, python 3.10 minimum, simplified install script 2026-01-07 22:01:02 +01:00
Donkie 1372d75d90 Update README.md 2024-11-25 21:36:19 +01:00
Donkie ba488655bf Update README.md 2024-11-07 21:07:15 +01:00
Donkie 0ef4649927 Update README.md 2024-11-06 22:24:02 +01:00
Donkie 281e6cbe44 Update README.md 2024-11-06 22:21:36 +01:00
Donkie 111eab1f24 Update README.md 2024-06-08 23:51:37 +02:00
Quinn Damerell 9bc0a03582 Adding the OctoEverywhere integration to the readme.md. 2024-05-30 21:23:46 -07:00
Darren Gibson 98aa1fdf8b Update README.md 2024-05-14 14:29:52 -05:00
Darren Gibson c6520d336e Update OctoPrint plugin in README.md
original plugins repo was archived, putting in new link found from Octoprint plugin site
2024-05-13 16:16:18 -05:00
Donkie 595fd82b56 Minor fix in readme 2024-05-12 10:49:09 +02:00
Donkie 1962ffb43e Added install from source guide 2024-05-11 19:03:08 +02:00
Donkie 88705a7f18 Readme updates, removed env var section in favour of the .env.example file 2024-05-10 12:00:46 +02:00
Donkie 1ddd9fb94a Merge pull request #335 from CooperGerman/master
Create install_arch.sh
2024-05-04 20:28:50 +02:00
Dmitry Belousov 91d922d0b8 fixed version prometheus-client
added env variable SPOOLMAN_METRICS_ENABLED for enabled database collector

set metrics path as /metrics

checked Null values at vendors, init weight and price
removed some logs
2024-04-15 00:17:36 +03:00
CooperGerman 1696759325 Update install script in readme 2024-04-08 11:27:44 +02:00
hcooper 1273b20224 Support dynamic ports 2024-01-23 11:16:57 -08:00
Donkie ee22904383 Updated development chapter 2024-01-07 09:55:41 +01:00
Michael Benz 85a352da72 Update README.md fix prerequisites typo
Fixed typo prerequisites in README.md
2024-01-05 19:38:53 +01:00
Donkie cf4add2753 Updated install script and README with new build setup 2023-12-29 13:02:24 +01:00
Donkie 0be9ab5a8f Added PUID and PGID environment variable support 2023-12-29 11:18:25 +01:00
Donkie 59b1603f6b New standalone installation instructions 2023-12-02 12:05:05 +01:00
Donkie 1bf77f7539 Added a link to how to setup Caddy for reverse proxy 2023-11-15 18:01:16 +01:00
Maurice Kevenaar 17be351600 (docs) add initial list of FAQs 2023-11-12 20:24:55 +01:00
Marco Franke 42afb17479 docs: added reference to home assistant integration 2023-11-03 08:15:09 +01:00
Donkie ecec122420 Added standalone installation
Resolves #27
2023-10-21 11:49:00 +02:00
Donkie 3c8ea136b3 Update README.md 2023-10-08 12:39:43 +02:00
Donkie a3ec58d0fc Mainsail now supports Spoolman! 2023-10-07 21:25:26 +02:00
Donkie 324bd7a650 Added weblate link 2023-09-24 11:18:02 +02:00
Donkie f7fb9fdf43 Clarified docker volume a bit 2023-09-23 10:37:13 +02:00
Donkie d13eca1a72 Update README.md 2023-08-21 21:03:29 +02:00
Donkie 63dbf9c7d2 Update README.md 2023-08-20 13:26:22 +02:00
Donkie a335b16abd Added client dev section to README 2023-07-24 19:55:56 +02:00
Donkie 4da5518c10 Improved docker-related info in README 2023-07-07 18:23:03 +02:00
Donkie f24b9610e8 Added automatic nightly SQLite backups
Resolves #22
2023-07-04 14:59:05 +02:00
Donkie 243d634f75 Documented SPOOLMAN_LOGGING_LEVEL 2023-07-04 13:34:33 +02:00
Donkie d4afc56173 Added Moonraker info to README 2023-06-27 20:28:41 +02:00
Donkie d127602904 Extended README with basic docker info 2023-06-27 20:26:20 +02:00
Donkie 2caee6120e Added note in README about data folder and it's permissions 2023-06-25 15:38:58 +02:00
Donkie a8a0de3daa Update README.md 2023-05-17 21:47:38 +02:00
Donkie 9a063fcf5d Update README.md 2023-05-16 21:06:01 +02:00
Donkie 3a9bc167ae Update README.md 2023-05-14 09:45:20 +02:00
Donkie 1a148c0991 Added proper support for all databases 2023-04-06 16:19:33 +02:00