42 lines
2.2 KiB
Markdown
42 lines
2.2 KiB
Markdown
# Stockroom Inventory
|
|
|
|
A Dockerized inventory system for computers, audio equipment, graphics hardware, long-play records, CDs, displays, peripherals, and other assets.
|
|
|
|
## Run with Docker
|
|
|
|
```bash
|
|
docker compose up --build
|
|
```
|
|
|
|
Open http://localhost:5000. The SQLite database is stored in the project-local `data` folder.
|
|
|
|
## Features
|
|
|
|
- Search by name, brand, model, serial number, asset tag, or location
|
|
- Filter by item type and status
|
|
- Add, edit, and delete inventory records
|
|
- Upload and display up to five device pictures per item (JPG, PNG, GIF, or WebP; up to 10 MB per request)
|
|
- Add more pictures or delete individual pictures while editing an item
|
|
- Computer fields: CPU, RAM, GPU, and disk/storage
|
|
- Media field: format
|
|
- CSV export of the currently visible inventory
|
|
- Responsive web UI for desktop and mobile
|
|
- Account login with read-only, read-and-write, and admin access levels
|
|
- Amin and admins can export inventory and backup or restore data
|
|
- Admins can add users and manage access levels
|
|
|
|
The project-local `data` folder is mounted at `/data`. The SQLite database is stored at `data/inventory.db`, and uploaded pictures are stored in `data/uploads`. Keep this folder with the project when moving it to another computer. Existing databases are migrated automatically when the application starts.
|
|
|
|
On first startup, the app creates an `admin` account with password `admin` and an `Amin` account with password `amin`. Set `ADMIN_USERNAME`, `ADMIN_PASSWORD`, `AMIN_PASSWORD`, and `SECRET_KEY` in the environment before starting the app, then change these credentials for any shared deployment. Admins can add further users from **Manage users**. Read-only users can view inventory, read-and-write users can add and edit items, and admins can add, edit, and delete items as well as manage users. Export, backup, and restore are visible to admins and Amin.
|
|
|
|
Use **Backup data** in the sidebar to download a ZIP containing the database and uploaded pictures. On another computer, start the application and use **Restore data** to upload that ZIP. Restoring replaces the current inventory and pictures.
|
|
|
|
## Local development
|
|
|
|
```bash
|
|
python -m venv .venv
|
|
.venv\\Scripts\\activate
|
|
pip install -r requirements.txt
|
|
python app.py
|
|
```
|