A selfhosted management tool for yarn enthusiasts.
Keep track of your inventory, match your collection with available recipes.
Get an overview over the status of each yarn roll, is it allocated to a currently active project, is it used, or is it free to start that new exciting project you have been considering.
- Go 48.1%
- TypeScript 41.1%
- CSS 10.4%
- HTML 0.2%
- JavaScript 0.1%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| backend | ||
| docs | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.override.yml | ||
| docker-compose.yml | ||
| LICENSE | ||
| README.md | ||
| review.md | ||
yarnman
A selfhosted management tool for yarn enthusiasts. Keep track of your inventory, match your collection with available recipes. Get an overview over the status of each yarn skein: free, allocated to a project, or used.
Yarn lifecycle
Each physical skein is tracked individually:
- free — in stash (optionally at a storage location)
- allocated — reserved for a project (in progress)
- used — marked consumed on a project; still owned; still counts toward recipe coverage
Consuming yarn marks progress without removing allocation coverage or destroying owned stock.
History is recorded in an append-only event log (GET /api/v1/yarn/:id/events, GET /api/v1/projects/:id/events).
Projects are soft-deleted (archived): in-progress yarn returns to free; used yarn stays linked for history.
Upgrade (Docker Compose)
Schema migrations run automatically when the API container starts.
# 1. Backup
docker compose exec -T db pg_dump -U postgres yarnman > backup-$(date +%F).sql
# 2. Pull and restart
docker compose pull
docker compose up -d
# 3. Check logs if needed
docker compose logs api
No manual multi-step migration tools are required.