Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Donkie committed May 14, 2023
1 parent 87690b0 commit 3a9bc16
Showing 1 changed file with 26 additions and 34 deletions.
60 changes: 26 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,54 +2,46 @@

_Keep track of your inventory of 3D-printer filament spools._

Spoolman is a python-based web service that helps you keep track of your filament spools and how they are being used.
Spoolman is a web service that helps you keep track of your filament spools and how they are being used.

It is designed to be easily integrated into printer software such as Octoprint and Moonraker where
these services can e.g. list available spools, report filament consumption, etc.

Currently, it has no client GUI, and only operates using HTTP REST commands.
It exposes a REST API which backends can interact with. See the [OpenAPI description](https://donkie.github.io/Spoolman/) for more information.

REST API: https://donkie.github.io/Spoolman/
It also ships with a simple web-based UI that lets you manipulate the stored data, add filaments, etc.

## Prerequisites
## Installation

The data can be stored using any async SQLAlchemy supported database:
### Using Docker

- External databases: PostgreSQL, MySQL, MariaDB, CockroachDB
- Internal database: SQLite
The data can be stored in any of the following databases: SQLite, PostgreSQL, MySQL, MariaDB, CockroachDB.
By default, SQLite is used which is a simple no-install database solution that saves to a single .db file located in the server's user directory.

If none of the below SPOOLMAN_DB_* environment variables are set, a SQLite database located in the user directory will be created and used.
The easiest way to run Spoolman is using Docker. Here is a sample docker-compose.yml to get you started:
```yaml
version: '3.8'
services:
spoolman:
image: ghcr.io/donkie/spoolman:latest
restart: unless-stopped
volumes:
- ./data:/home/app/.local/share/spoolman
ports:
- "7912:8000"
```

Once you have it up and running, you can access the web UI by browsing to `http://your.ip:7912`.

If you want to connect with an external database instead, specify the environment variables from the table below.

Database configuration:
| Variable | Description |
|---------------------------|------------------------------------------------------------------------------------------------------------------------------|
| SPOOLMAN_DB_TYPE | Type of database, any of: "postgres", "mysql", "sqlite", "cockroachdb" |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| SPOOLMAN_DB_TYPE | Type of database, any of: `postgres`, `mysql`, `sqlite`, `cockroachdb` |
| SPOOLMAN_DB_HOST | Database hostname |
| SPOOLMAN_DB_PORT | Database port |
| SPOOLMAN_DB_NAME | Database name |
| SPOOLMAN_DB_USERNAME | Database username |
| SPOOLMAN_DB_PASSWORD_FILE | Path of file which contains the database password. This is more secure than using SPOOLMAN_DB_PASSWORD. |
| SPOOLMAN_DB_PASSWORD | Database password |
| SPOOLMAN_DB_QUERY | Query parameters for the database connection, e.g. set to "unix_socket=/path/to/mysql.sock" to connect using a MySQL socket. |

## Data

The objects that this web service stores are:

### Spool

An individual spool of filament.

Attributes: first use, last use, filament, weight left, location, lot/batch number, comment

### Filament

A type of filament from a specific vendor.

Attributes: name+color, vendor, material, price, density, diameter, net weight, spool weight, article number, comment

### Vendor

A filament producer.

Attributes: name, comment
| SPOOLMAN_DB_QUERY | Query parameters for the database connection, e.g. set to `unix_socket=/path/to/mysql.sock` to connect using a MySQL socket. |

0 comments on commit 3a9bc16

Please sign in to comment.