User Guide

Everything you need to know about using Inventory Store day to day.

Installation

Inventory Store runs on Windows and on Linux. Both use the same web app, so the screens you see in your browser are identical. Pick your platform below.

Windows

  1. Download InventoryStore-Setup-<version>.exe from the latest release.
  2. Run the installer as Administrator.
  3. The installer will set everything up automatically and launch the app.
Windows requirements: Windows 10 version 1803 or later (x64). OpenSSH Client is required only for Serveo remote access (built in on Windows 10 1809+).

Linux (Ubuntu / Debian)

On Linux there is no tray icon. Inventory Store runs quietly in the background as a service, and you reach it from your browser just like on Windows.

  1. Download InventoryStore-linux-x64-<version>.tar.gz from the latest release.
  2. Open a terminal, unpack it, and run the installer:
tar xzf InventoryStore-linux-x64-<version>.tar.gz
cd InventoryStore-linux-x64-<version>
sudo ./install.sh

The installer sets everything up for you and starts the app at boot. When it finishes, open http://localhost:5050 (or http://<your-server-ip>:5050 from another computer) to create your admin account.

To check on the app or read its logs later, use:

systemctl status inventorystore     # is it running?
journalctl -u inventorystore -f     # watch the logs
sudo systemctl restart inventorystore
Linux requirements: a 64-bit Ubuntu or Debian-based system with systemd. Nothing else to install - the download includes everything it needs. For Serveo remote access only, also install openssh-client.

Upgrading

Windows: run the new installer over the existing installation. It upgrades and restarts automatically. Your data and settings are preserved.

Linux: download the new archive and run sudo ./install.sh again. Your database and settings are kept.

Uninstalling

Windows: use Add or Remove Programs. You will be asked whether to delete the database and settings - choose No to keep your data for a future reinstall.

First Login

Open http://localhost:5050 in a browser, or double-click the tray icon. You will see a one-time setup page - create your admin username and password (minimum 8 characters). This page disappears permanently once an account is created.

To share access with your team, create additional user accounts in Settings → User Management.

Dashboard

The Dashboard is the first screen you see after logging in. It gives a live snapshot of your inventory at a glance.

Stat cards

Four cards across the top show key numbers at a glance:

CardShows
ItemsTotal number of distinct inventory items
In StockSum of all item quantities
Low StockNumber of items at or below their minimum quantity threshold
Checked OutTotal units of reusable items currently checked out

The Low Stock and Checked Out cards are clickable - click either one to jump straight to the matching report.

Available to Checkout panel

At the top of the dashboard, above the other panels, is the Available to Checkout panel. It lists all reusable items that currently have units available. Use the filter box to search by name, category, or location. Use the page size dropdown and arrows at the bottom right to page through the list. Click Checkout on any row to open the scan dialog pre-loaded with that item so you can check it out right away.

Panels

Below the stat cards are four live panels. Each has a View report or Full log link to the corresponding detailed report.

PanelShows
Low StockItems whose available quantity is at or below the minimum. Shows available qty and minimum qty side by side.
Checked OutAll active checkouts. Rows highlighted yellow have been out more than 7 days.
Lost ItemsItems that have been marked lost, with the last person who had them and the date.
Recent ActivityThe 10 most recent actions taken by any user: checkouts, check-ins, edits, imports, and more.

Click any row in the Checked Out panel to open that item's detail screen directly, where you can check it back in right away.

Quick scan

At the top right of the Dashboard there is a SKU field and a Scan button. Type a SKU or item name and press Enter, or click Scan to open the camera. Once an item is found you can check it out, check it in, consume, or restock it without leaving the Dashboard.

Inventory Page

Click Inventory in the top navigation bar to see all items in a searchable, filterable table.

Searching and filtering

Use the search box to find items by name, SKU, location, or category. Select a category from the dropdown next to the search box to narrow the list to a single category. Both filters can be active at the same time. When any filter is active, a clear button (X) appears to reset in one click.

The item table

Each row shows the item's name, type, category, SKU, location, total quantity, available quantity, minimum quantity, expiry date, and status badge. On smaller screens some columns are hidden to fit the layout. Start typing in the search box and the list filters instantly - no need to press Enter or click a button.

Click any row to open the item detail screen, which shows full details and lets you check out, check in, consume, or restock the item without navigating away from the list.

Adding and importing items

Admin and Manager users see an Add Item button and an Import button at the top right. Add Item opens a form to fill in. Import opens the CSV import screen.

Deleting items

Each row has a trash icon at the right. Click it and confirm to permanently delete the item. Requires Admin or Manager role.

Item Types

Every item is one of two types, chosen when you create it. You can change the type later if you need to (see Changing an item's type below).

TypeUse forOperations
Reusable Equipment that leaves and comes back: cameras, laptops, tools, keys Check Out, Check In, Mark Lost
Consumable Stock that is used up: batteries, paper, cleaning supplies Consume, Restock

Available Quantity for Reusable items reflects how many units are physically on hand (not checked out or lost). For Consumables it is the same as the total quantity.

There is also a third type, the Kit, which bundles several other items together so you can hand them out or use them up in one step. Kits are an optional feature you switch on under Settings → Modules → Kits & Bundles. When the module is on, Kit becomes a choice when you add an item. See Kits & Bundles for the full walkthrough.

Changing an item's type

If you set the wrong type, or an item's use changes, you can switch it between Reusable and Consumable. Open the item, click Edit, and use the Convert to … link shown under the type badge (Admin or Manager only). To prevent mistakes you click it once to arm it, then click Confirm to apply.

Before converting a Reusable item you must check in every unit and clear any lost ones - the convert link explains what is still out and stays disabled until the item is fully back. Converting a Consumable to Reusable has no such requirement.

The change is recorded in the activity log. Quantities are kept; only the way the item is tracked changes.

Categories

Categories let you group items (e.g. Tools, Electronics, Safety) and filter the inventory list with one click. Each category can have an optional color for quick visual identification. Requires Admin or Manager role.

Assigning a category

Select a category from the Category dropdown when creating or editing an item. Choose None to leave an item uncategorized.

Creating a category while adding an item

On the Add Item form, click the + button next to the Category dropdown. A small form appears right there where you can enter a name and pick a color. Click Create - the new category is added to the dropdown and selected automatically. No need to leave the page.

Filtering by category

On the Inventory page, use the All Categories dropdown in the search bar to filter the list to a single category. When a filter is active the item count below the table changes to Showing X of Y items with a Clear filters link to reset in one click.

Deleting a category sets all items in that category to None - it does not delete the items.

Assigning items to a category from Settings

In Settings → Categories, each category row has a list icon button. Click it to open a panel showing all items currently in that category and a dropdown to add other items. Use Remove to take an item out of the category, or select from the dropdown and click Add to assign one. This lets you reorganize categories without opening each item individually.

Tags

Tags are short, free-form labels you can stick on an item, such as "fragile", "on loan", or "needs repair". Unlike a category (an item has one), an item can have as many tags as you want. Each tag is automatically given its own color, so the same tag looks the same everywhere it appears.

Adding tags to an item

On the Add Item and Edit Item forms there is a Tags field. Start typing to pick from tags you already use, or type a new word and press Enter to create it on the spot. Click the small x on a tag to take it off the item. New tags are saved when you save the item.

Where tags show up

Tags appear as small colored pills on an item's detail screen and on the Terminal screen. The Inventory search box also matches tags, so typing a tag name brings up every item that has it.

Managing tags from Settings

Go to Settings → Tags to see every tag you have. From there you can add a tag, rename one, or delete one. You can also open a tag to see which items use it and add it to or remove it from items in one place. Requires Admin or Manager role.

Deleting a tag removes it from every item - it does not delete the items.

Locations

The Location field on an item is free text (e.g. "Shelf A3", "Bin 12", "Office Closet"). When typing a location on the Add Item or Edit Item form, existing locations appear as suggestions - select one to keep naming consistent.

Manage all locations in one place from Settings → Locations. See Managing Locations for bulk rename, clear, and item assignment.

Adding Items

Click Inventory in the top navigation bar, then Add Item. Requires Admin or Manager role - the button is not shown to Viewers.

FieldRequiredNotes
NameYesDisplayed everywhere; used in search
Item TypeYesReusable or Consumable - cannot be changed after creation
QuantityYesTotal units you own
Minimum QuantityNoTriggers Low Stock warning on dashboard when available stock reaches this level
SKU / BarcodeNoScan with camera or type; used for barcode labels and scan-to-checkout
LocationNoShelf, bin, room - appears in reports and search results
CategoryNoColor-coded group (create categories first in Settings)
Expiry DateNoShows Expired / Expiring Soon badges; drives the Expiry report
Scan WarningNoMessage shown in a yellow alert whenever this item is scanned
DescriptionNoFree-text notes visible in the item detail panel

Editing Items

Click any item row to open its detail screen, then click the Edit button (pencil icon). The detail screen closes and the edit form opens in its place - you never leave the inventory list. Every field can be changed, and the item's type can be converted from the link under the type badge (see Changing an item's type). Requires Admin or Manager role.

The form is grouped into Basics (name, quantity, minimum), Identification (SKU, location, category), and Details (expiry, scan warning, description). The labels adapt to the item type - Consumables show In Stock, while Reusables show Total Quantity with a reminder of how many units are currently checked out so you don't set the total below what is out. Expiry Date only appears for Consumables.

Click the magnifying glass button inside the SKU field to look up the product by its barcode (see Product Lookup & Metadata). Choosing a match fills in the name and links the product's image, brand, category, size, and weight to the item when you save. After saving, the detail screen reopens automatically with the updated information.

Deleting items

Click the trash icon on the item row and confirm. Deletion is permanent. Requires Admin or Manager role.

Expiry Dates

Any item (Reusable or Consumable) can have an optional expiry date. When set, the item shows a badge in the inventory list:

  • Expired - expiry date has passed
  • Exp MMM D - expiring within the next 30 days
  • Plain date text - expiry is more than 30 days away

Expiry report

Go to Reports → Expiry to see a full breakdown:

  • Expired - all items past their expiry date, sorted oldest first
  • Expiring within 90 days - sorted by date; items within 30 days are highlighted yellow, within 7 days shown in red

Setting expiry dates

Add or update the expiry date on the Add Item or Edit Item form using the date picker. The field accepts any date; leave it blank for items that do not expire.

Clients

The Clients page lets you keep a list of the people who borrow items. Every checkout is linked to a client so you always know who has what.

Viewing clients

Click Clients in the top navigation bar. The list shows each client's name, phone number, and date of birth. Use the search box to find someone by name or phone. Click any row to see their full details.

Viewing a client's checkout history

Click any client row to open their contact card. Below the contact details (phone, email, address, etc.) you will see a Checkout History section listing every item that client has ever borrowed. Each row shows the item name, the date it was checked out, and its current status:

  • Active - still checked out
  • Returned - checked back in
  • Lost - marked as lost

If a client has never borrowed anything, the history section is not shown.

Adding a client

Click Add Client (Admin or Manager only). Fill in at least the first name, then optionally add a last name, phone, date of birth, address, and notes. Click Save.

Editing a client

Click any client row to open their details, then click Edit. You can update any field. Click Save when done.

Deleting a client

Click the trash icon on the client row and confirm. Requires Admin or Manager role.

Creating a client during checkout

If you are checking out an item and the person is not in the client list yet, type their name in the Client field and select Create "[name]" from the dropdown. A client record is created automatically so you can continue without leaving the checkout flow.

Check Out & Check In

Reusable items support check-out and check-in workflows. Requires Admin or Manager role. Viewers can open an item's detail screen and see the Active Checkouts list (who has what, for how long) but cannot check out, check in, or mark items lost.

Checking out

  1. Click any item row to open its detail screen
  2. In the Check Out section, type a name in the Client field. Matching clients from your list appear as you type - select one, or pick Create "[name]" to add a new client on the spot
  3. Set the quantity (default 1) and optional notes
  4. Click Check Out
A client name is required to check out an item. If the person is not in your client list yet, just type their name and choose Create "[name]" from the suggestions.

The item's Available Quantity decreases immediately. The checkout appears under Active Checkouts in the detail screen, showing the person's name and how many days the item has been out.

Checking in

  1. Click the item row to open its detail screen
  2. Under Active Checkouts, find the record
  3. Click Check In
You can also check items in directly from the Checked Out panel on the Dashboard - click any row there to go straight to that item's detail screen.

Marking as lost

If an item is not returned, click Mark Lost on the checkout record. The quantity is removed from the available count and appears in the Lost Items report.

Marking a lost item as found

If a previously lost item turns up, open the item's detail screen. A Lost Items section appears below Active Checkouts, showing each lost record. Click Mark Found - the quantity is restored to available stock and the record is removed from the Lost Items report.

Consumables

Consumable items track stock levels using a single Adjust Stock control. Requires Admin or Manager role - Viewers can see quantities but the adjust buttons are not shown to them.

Consuming and restocking

  1. Click the item row to open its detail screen
  2. In the Adjust Stock control, set the quantity and optional notes
  3. Click the button to consume (use) stock, or the + button to add stock

The In Stock figure briefly flashes red when stock is consumed or green when stock is added, so you get instant confirmation without the screen jumping. Both operations are recorded in the activity log.

Barcode Scanning

Any device with a camera can scan barcodes to quickly look up and action items - no app install required. Access the web UI from any device on the same network (or via a tunnel for remote access).

Quick scan from anywhere

Click the barcode icon in the top navigation bar to open the scanner from any page. At the top of the scanner screen there are two search modes:

  • SKU / Barcode - type or scan a barcode. If no exact match is found the app automatically searches by name and shows the closest results.
  • Name - type part of an item name. All matching items are shown so you can pick the right one.

If multiple items match, a list appears. Click any result to load that item. Once an item is loaded you can check it out, check it in, consume, or restock it without navigating away.

Adding an item from the scanner

If no item is found, an Add Item button appears (Admin and Manager only). Click it to fill in a quick form right inside the scanner: name, type (Reusable or Consumable), quantity, and optional location. Click Add & Continue to create the item and load it immediately. If you scanned a barcode, the SKU is attached to the new item automatically.

If you searched by name and got multiple results, an Add New Item Instead button appears at the bottom of the results list if you want to create a brand new item rather than picking an existing one.

Scanning in the inventory list

Click the scan icon next to the SKU field on the Add Item or Edit Item forms to scan a barcode directly into that field.

Assigning SKUs

Edit an item and scan or type a value into the SKU / Barcode field. Any barcode format supported by your device's camera works.

Scan warnings

If an item has a Scan Warning set (e.g. "Requires PPE", "Check expiry date"), a yellow alert is shown every time the item is scanned.

Printing barcode labels

  1. Ensure items have SKUs assigned
  2. Go to Reports → Barcode Sheet
  3. Click Print - the page formats itself with one barcode per item in a label-friendly grid

Terminal Mode

Terminal Mode is a simple, full-screen page built for a tablet or shared front-desk device. It has large touch-friendly buttons and only the controls needed to hand items out, take them back, and use up stock. It lives at /terminal (for example http://localhost:5050/terminal).

Finding an item

There is one search box at the top. Type a SKU or part of an item name and matches appear as you type, or tap Scan with camera to read a barcode. Pick a result to open it. If only one item matches it opens on its own.

What you can do on the Terminal

  • Check out a reusable item to a person, and check in items that come back
  • Consume (use up) consumable stock by tapping the red button next to the quantity
  • Restock with the green + button - only Admins and Managers see this

There is no add, edit, or delete on the Terminal. It is meant for quick day-to-day handouts, not for managing the catalog.

If an item has none left, a red Out of stock message appears at the top of its card and the check out or consume button is turned off, so you cannot hand out something you do not have.

The Staff role

There is a user role called Staff made for the Terminal. A Staff user can check out, check in, and consume stock, but cannot add items, restock, or open the reports or settings. When a Staff user logs in they are taken straight to the Terminal, and logging out brings them back to the Terminal sign-in so the device is always ready for the next person.

Create a Staff user the same way as any other - go to Settings → User Management, click Add User, and choose Staff (Terminal) as the role.

Admins and Managers can open the Terminal any time from the tablet icon in the top bar, and they get the Restock button and a home button to return to the main app. Staff do not see the home button.

Using it on a tablet

Open /terminal in the tablet's browser. Buttons are sized for fingers, and the page remembers your light or dark theme choice using the moon and sun button in the corner. When you are done with one item, tap Next item to clear the screen for the next person.

Product Lookup & Metadata

Instead of typing product details by hand, Inventory Store can look up a barcode against free public product databases and fill the information in for you.

Sources

SourceBest for
Open LibraryBooks (ISBN barcodes beginning 978 / 979)
UPC Item DBGeneral retail products
Open Food FactsFood & beverages

For each match the app stores the product name, image, brand, category, size, and weight where the source provides them.

Looking up a product

  1. On the Add Item or Edit Item form, type or scan a barcode into the SKU / Barcode field
  2. Click the magnifying glass button in the SKU field (or Lookup Product on the Add form)
  3. A results list shows every match with its image and details. Click Use This on the one you want
  4. The product name is filled in and the metadata is linked to the item when you save

Once linked, the item's detail screen shows the product image alongside its stats, and a Product Details button reveals the brand, category, and full description.

Lookups are cached, so the same barcode is only fetched from the internet once. Use the Metadata library below to force a fresh copy.

The metadata library

Click the Metadata button at the top of the Inventory page (Admin or Manager) to open the metadata library - a table of every product record cached from lookups. Each row shows the image, barcode, source, name, brand, category, size, weight, how many items are linked to it, and when it was last fetched.

The two buttons on the left of each row let you:

  • Refresh (circular arrow) - re-fetch that product from its source and update the stored copy. Existing item links are preserved.
  • Delete (trash) - remove the cached record. Click once to arm the button, then click Confirm to proceed. Deleting unlinks the product from every item that was using it, then removes it from storage.

About Modules

Modules are optional add-ons. Each one is off by default and stays completely out of the way until an Admin turns it on, so you only see the extra features your team actually needs.

Turning a module on or off

  1. Go to Settings → Modules (Admin only)
  2. Find the module and flip its switch to Enabled or Disabled
  3. When a module is on, click Configure to manage its settings and data

The available modules are Safety Data Sheets, Cost & Valuation, Consumption Forecasting, and Webhooks & Integrations, each described below.

Turning a module off hides its buttons and screens but does not delete anything it has stored. Turn it back on and your data is still there.

Safety Data Sheets

If your team stores or uses chemicals, the optional Safety Data Sheets (SDS) module lets you keep hazard information on file for an item. It looks up safety data by chemical name from PubChem, a free public database run by the US National Institutes of Health. No account or API key is needed.

Turning the module on

An Admin enables it once: go to Settings → Modules → Safety Data Sheets and flip the switch to Enabled. While it is off, none of the SDS buttons appear anywhere in the app.

Attaching safety data to an item

You can do this while adding an item or later by editing it (Admin or Manager). Both screens have a Safety Data Sheet section.

  1. On the Add Item or Edit screen, find the Safety Data Sheet section and enter the chemical name (for example "sodium hypochlorite" rather than "bleach")
  2. Click Look up SDS
  3. If a match is found, the safety details are attached to the item (right away when editing, or as soon as you save a new item)

For each match the app stores the signal word (Danger or Warning), hazard pictograms, hazard statements, precaution statements, the CAS number, and a link to the full PubChem page.

PubChem lists chemicals, not brand-name products. If you search a product or common name that has no exact match, the app shows a short list of close chemical names you can click to try instead.

Viewing safety info

Once an item has safety data attached, the standard hazard pictograms (the red diamond symbols) appear next to its name in the inventory list and on the scan screen. The item's detail panel and the scan card also show a Safety section with the signal word and pictograms, plus a View SDS Info button (visible to everyone, including Viewers) that opens the full hazard summary and a link to the PubChem record.

The metadata table

To see everything on file, go to Settings → Modules → Safety Data Sheets and click Configure. The table lists each item that has safety data, along with its chemical name, CAS number, signal word, and hazards. Click the trash button on a row to remove that item's safety data.

Cost & Valuation

The optional Cost & Valuation module lets you record what each item costs and see what your whole inventory is worth. Turn it on under Settings → Modules → Cost & Valuation.

Adding a cost to an item

  1. Open an item and click Edit (Admin or Manager)
  2. In the Cost & Valuation section, enter the unit cost. Optionally add a purchase date and a useful life in months (used for depreciation on reusable items)
  3. Click Save Cost

The item's detail panel then shows its unit cost and the line value (unit cost times quantity).

Seeing your inventory value

Click Configure on the module, or open Reports → Valuation, to see your total value, a book value after straight-line depreciation, a breakdown by category, and a per-item table. You can set your preferred currency symbol on the Configure screen.

Depreciation applies only to reusable items that have both a purchase date and a useful life. Consumables are always valued at full cost.

Consumption Forecasting

The optional Consumption Forecasting module predicts when your consumable items will run out, so you can reorder in time. Turn it on under Settings → Modules → Consumption Forecasting.

The app keeps a usage history every time you consume or restock a consumable. It then works out an average daily usage over a recent window of days and projects a run-out date from your current stock.

Viewing the forecast

Click Configure on the module, or open Reports → Forecast, to see each consumable with its average daily use, the days of stock remaining, and the projected run-out date, sorted soonest first. Items due to run out within two weeks are highlighted.

Setting the window

On the Configure screen you can change the usage window (30 days by default). A shorter window reacts faster to recent changes; a longer window smooths out day-to-day swings.

The usage history is recorded as soon as you install this version, even before you turn the module on, so a forecast is ready the moment you enable it.

Webhooks & Integrations

The optional Webhooks & Integrations module sends a small message to a web address (URL) of your choice whenever something happens in your inventory. Use it to connect Inventory Store to tools like Slack, Zapier, or Make, or to your own scripts. Turn it on under Settings → Modules → Webhooks & Integrations.

Adding an endpoint

  1. Click Configure on the module
  2. Enter the payload URL that should receive the messages
  3. Optionally enter a shared secret so the receiver can verify the message is genuine
  4. Tick the events you want to send (checkout, check in, lost, found, consumed, restocked, low stock, item created, updated, or deleted)
  5. Click Add. Use the Test button on a row to send a sample message and confirm it arrives

Each message is sent as JSON and includes the event name, a timestamp, and details of the item. When you set a shared secret, the app adds a signature header (X-InventoryStore-Signature) so the receiving system can confirm the message really came from your app and was not changed in transit.

Kits & Bundles

The optional Kits & Bundles module lets you group several items into a single kit, so you can hand them out or use them up all at once instead of one item at a time. Think of a kit as a shell that points to other items, for example a "New Hire Kit" that contains a laptop, a charger, and a welcome pack. Turn it on under Settings → Modules → Kits & Bundles.

A kit can mix item types freely. It can hold reusable items (which come back), consumable items (which get used up), or both. A kit does not hold any stock of its own. What it can do depends entirely on the items inside it.

Creating a kit

  1. On the Inventory page, click Add Item (Admin or Manager)
  2. Choose Kit as the item type, give it a name, and save
  3. Open the new kit, click Edit, and use the Kit Items box to search for items and add them
  4. For each item, set how many are needed for one kit (the "per kit" amount)

You add the items in the Edit screen because the kit needs to exist first before you can link things to it. You can add or remove items, and change the per-kit amounts, any time. A kit cannot contain another kit.

How many kits you can build

The kit's Available number tells you how many complete kits you could put together right now. It is set by the item you have the least of. For example, if one kit needs 2 of an item and you only have 5 in stock, you can build 2 kits from that item. The scarcest item always decides the total.

Checking out a kit

Open the kit, enter a borrower, choose how many kits, and click Check Out Kit. The app then does the right thing for each item inside:

  • Reusable items are checked out and tracked, so they can be returned later.
  • Consumable items are used up straight away, the same as if you had consumed them on their own.

When you check the kit back in, every reusable item inside comes back in one step. You can also mark a whole kit as lost, which marks all of its reusable items lost together.

By default, consumable items are not restored when a kit comes back, because they were treated as used when the kit went out. If you want to account for what was really used, switch on consumable reconciliation (see below).

Counting what was used when a kit comes back

Often a kit goes out with more supplies than it needs, and some come back unused. Consumable reconciliation lets you record what was actually used so the leftover goes back into stock instead of being written off.

Turn it on under Settings → Modules → Kits & Bundles → Configure. There you can also choose how the count is phrased:

  • Count what was used: when a kit comes back you enter how many of each consumable were used.
  • Count what is left: you enter how many of each consumable came back unused.

With reconciliation on, checking a kit in opens a short pop-up that lists each consumable, with a plus and minus button to set the count for each one. Whatever was not used is added straight back to stock. You can also tap Skip for now to check the kit in right away and count it later.

Any kit you skip is flagged and appears on the Reconciliation report (see Reports). Open it from there whenever you are ready, count what came back, and the leftover returns to stock. Counting a skipped kit later always asks how many are left, since the kit is already back in front of you.

When stock runs short

If you ask for more kits than you can build, the app stops and shows you exactly which items are short. What happens next depends on a per-kit setting called Allow partial, which an Admin or Manager sets on the kit's Edit screen:

  • Allow partial is off (the default): a kit must be complete to go out. You are told what is missing and can cancel.
  • Allow partial is on: you can choose to take what is available, and the app hands out or uses only the items that are in stock.

Kits on the Terminal

Kits work on the Terminal too. Staff can scan or search for a kit and check it out or check it back in as a single unit, with the same low-stock prompts. If consumable reconciliation is on, checking a kit in on the Terminal shows the same count pop-up, with a Skip for now option. The individual items inside a kit are not handled separately on the Terminal; the kit is always treated as one thing.

Incomplete Kits report

While the module is on, Reports gains an Incomplete Kits tab. It lists every kit that cannot be built right now, along with the exact items that are short and how many more you need. Kits with no items added yet show up here too. It is a quick way to see what to reorder so your kits are ready when you need them.

Turning the module off later does not delete any kits you already made; it just hides the Kit option and the kit report. Switch it back on to manage them again.

CSV Import & Export

Exporting

Go to Reports and click Export CSV (top right). A dated file is downloaded containing all items with all fields. Available to all roles.

Importing

Requires Admin or Manager role. The Import button is not shown to Viewers.

  1. Go to Inventory and click Import
  2. Prepare a CSV file. The first row must be the header:
Type,Name,Quantity,MinimumQuantity,SKU,Location,Category,ExpiryDate,Description,ScanWarning,Tags
ColumnRequiredNotes
TypeYesReusable or Consumable (case-insensitive). Kits cannot be imported from CSV; build them in the app instead.
NameYesItem name
QuantityYesWhole number, 0 or higher
MinimumQuantityNoDefaults to 0
SKUNoLeave blank to skip
LocationNoFree text
CategoryNoCategory name - created automatically if it doesn't exist
ExpiryDateNoFormat: YYYY-MM-DD (e.g. 2027-06-01)
DescriptionNoFree text
ScanWarningNoFree text
TagsNoOne or more tag names separated by ; (or commas inside a quoted field) - created automatically if they don't exist

After upload, a summary shows how many rows were imported and any rows that failed (with row number and reason).

Wrap field values in double-quotes if they contain commas. Use "" to escape a literal quote within a quoted field.

Reports

Click Reports in the top navigation bar. Use the menu on the left to switch between report types. All reports support printing via the Print button. The Export CSV button (top right) downloads all items regardless of which report is active.

TabShows
Stock LevelsAll items with quantities, availability, and expiry. Filterable by type and low-stock flag.
Checked OutAll active checkout records - who has what, for how long.
Lost ItemsItems marked lost, with the last person who checked them out.
Take InventoryPrintable checklist for physical stock counts - SKU, location, expected quantity, and a blank field for actual count.
Incomplete KitsKits that cannot be built right now, with the items that are short. Shown only when the Kits & Bundles module is on.
ReconciliationChecked-in kits that still need their consumables counted. Each one opens a pop-up where you record what came back, and the leftover returns to stock. Shown only when the Kits & Bundles module has consumable reconciliation switched on.
ExpiryExpired items and items expiring within 90 days, grouped and color-coded by urgency.
Barcode SheetPrintable barcode grid for all items that have a SKU.
Activity LogFull audit trail. Filter by date range and action type. Timestamps shown as date.

Managing Categories

Go to Settings → Categories (Admin or Manager). Here you can create, rename, recolor, delete categories, and manage which items belong to each category.

Creating a category

  1. Click Add Category
  2. Enter a name and choose a color from the swatch palette
  3. Click Create

Editing and deleting

Click the pencil icon on a category row to change its name or color. Click the trash icon to delete it - items in that category become uncategorized but are not deleted.

Assigning items to a category

Click the list icon on any category row to open the item panel. It shows all items currently in that category with a Remove button on each, and a dropdown to add other items to the category. Changes take effect immediately.

Managing Locations

Go to Settings → Locations (Admin or Manager). The table lists every location currently assigned to at least one item, along with how many items use it.

Adding a location

Click Add Location, enter a name, then click Next. The item assignment panel opens immediately so you can assign items to the new location right away.

Assigning items to a location

Click the list icon on any location row to open the item panel. It shows all items currently at that location with a Remove button on each, plus a dropdown to add other items. Changes take effect immediately without a page reload.

Renaming a location

Click the pencil icon on a location row, enter the new name, and click Rename. Every item at that location is updated at once.

Clearing a location

Click the X icon to remove the location value from all items that use it. The items remain in inventory with no location set.

User Management

Go to Settings → User Management (Admin only).

Creating users

Click Add User and fill in the username, optional name/email, password, and role.

Editing users

Click the pencil icon on any user row. You can change their name, email, role, and password. Leave the password field blank to keep the existing password.

Suspending and deleting users

Click the pause icon to suspend a user - suspended users cannot log in but their history is preserved. Click the play icon to reactivate. Click the trash icon to permanently delete a user.

Admins can suspend or delete other admins. You cannot suspend or delete your own account - the suspend and delete buttons are hidden on your own row as a safeguard against accidental lockout.

Roles

RoleCan do
AdminEverything - manage users, settings, categories, database backup/restore, and all inventory operations
ManagerAll inventory operations (checkout, consume, restock, add/edit/delete items, manage categories); run all reports; cannot manage users, remote access, or database settings
StaffTerminal only. Can check out, check in, and consume stock from the Terminal, but cannot restock, add/edit/delete items, or change settings. Sent straight to the Terminal at login.
ViewerView inventory and reports only. Can see item details and active checkouts but cannot check out, consume, edit, delete, or import items.

Network & Remote Access

Go to Settings → Network (Admin only) to configure tunnels and HTTPS. Once a tunnel is active, the public URL is shown in the tray icon menu and in the settings panel.

Serveo (recommended)

Serveo gives you a free persistent subdomain - the same URL every time you start the tunnel. Requires a free Serveo account.

One-time setup:

  1. Click Generate SSH Key.
  2. Copy the public key using the clipboard button.
  3. Open console.serveo.net, sign up, and add the public key under SSH Keys.
  4. Choose a subdomain name (e.g. myinventory) and click Save Subdomain. Your URL will be https://myinventory.serveousercontent.com.
  5. Click the green Serveo button to start. The tunnel status updates to Running when ready.
Free Serveo accounts show a visitor interstitial page. Upgrade to Serveo Pro ($6/month) to remove it.

To start Serveo automatically whenever the app starts, go to Auto-start and select Serveo.

Quick Tunnel (Cloudflare)

Zero configuration - click Quick Tunnel and a temporary HTTPS URL is generated instantly via Cloudflare. No account needed. The URL changes every time the tunnel is started, so it is suitable for one-off sharing only.

localtunnel

Enter a subdomain name to claim yourname.loca.lt. Free but shows an interstitial page to visitors (a known limitation of the loca.lt service). First-come-first-served subdomain - not guaranteed to be available.

Stopping a tunnel

Click Stop Tunnel in the status card.

HTTPS / TLS

If you own a domain, you can run Inventory Store over a secure https:// address on port 443 without any tunnel. This is the right choice when the server is reachable from the internet on a fixed address. There are two ways to do it: let the app get a free certificate for you automatically, or upload one you already have.

Automatic certificate (Let's Encrypt)

This is the easiest option. Inventory Store will fetch a free certificate from Let's Encrypt, turn on HTTPS, and renew the certificate on its own before it ever runs out, all in the background.

What you need first:

  • A domain name whose DNS points at this server's address
  • Ports 80 and 443 open and reachable from the internet (check your router or firewall, and any cloud provider's security group)

Steps:

  1. Go to Settings → Network (Admin only)
  2. Open the HTTPS / TLS (Port 443) section
  3. Under Automatic certificate (Let's Encrypt), turn on Enable automatic HTTPS
  4. Enter your domain (for example inventory.mycompany.com) and an email address for renewal notices
  5. Tick the box to accept the Let's Encrypt Terms of Service
  6. Click Save, then restart the service

After the restart, the app contacts Let's Encrypt, gets the certificate, and switches on HTTPS. From then on it renews the certificate by itself, so you do not have to think about it again.

When automatic HTTPS is on, visitors who type the plain http:// address are sent to the secure one. The app still answers on http://localhost:5050 for use on your own network. On Linux the service is allowed to use ports 80 and 443 even though it does not run as the root user.

Upload your own certificate

If you already have a certificate, you can use it instead of the automatic option.

What you need:

  • A domain name pointing to your server's IP address (via your DNS provider)
  • An SSL certificate in .pfx format (certificate + private key bundled together)
  • Port 443 open on your firewall/router forwarding to the server

Creating a .pfx file

If you have a certificate from Let's Encrypt or another provider in PEM format (two separate files - a certificate and a private key), combine them into a single .pfx with:

openssl pkcs12 -export -out https.pfx -inkey privkey.pem -in fullchain.pem

You will be asked to set a password for the .pfx - keep this, you will need it in the next step.

Setting up HTTPS with your own certificate

  1. Go to Settings → Network (Admin only)
  2. Open the HTTPS / TLS (Port 443) section
  3. Under Or upload your own certificate, enter your domain name and port (default 443)
  4. Upload your .pfx file and enter its password
  5. Check Enable HTTPS
  6. Click Save
  7. Restart the service - the app will stop and start back up with HTTPS on

After restart, Inventory Store will be available at both http://localhost:5050 (local HTTP) and https://yourdomain.com (HTTPS on your chosen port).

The certificate password is stored in the app database. The .pfx file is stored next to your database in the app's data folder (%ProgramData%\InventoryStore on Windows, /var/lib/inventorystore on Linux). Back up your certificate separately.

Removing HTTPS

To turn off automatic HTTPS, untick Enable automatic HTTPS, click Save, and restart the service. To remove an uploaded certificate, click Remove Certificate in the HTTPS / TLS section, then restart the service. Either way the app reverts to HTTP only.

Changing the certificate

Upload a new .pfx file and click Save, then Restart Service. The old certificate is replaced immediately.

Public View

Public View exposes a read-only, login-free page at /public that shows whichever inventory items you choose. Embed it in any website or intranet portal with a single <iframe> tag.

Enabling public view

  1. Go to Settings → Public View (Admin only).
  2. Check Enable public view and click Save.
  3. An embed code and direct link appear immediately.

Selecting visible items

With public view enabled, a table lists every item in your inventory. Toggle the switch on any row to make that item visible on the public page. Changes take effect instantly - no save button needed.

Items with no toggle enabled are not shown even if public view is on. Disabling public view hides all items regardless of individual toggles.

The embed code

Copy the <iframe> snippet from the Embed Code card and paste it into any web page. The iframe shows item names, type (Reusable / Consumable), category, location, and live availability - it refreshes when the page is reloaded.

For external access, use your tunnel URL instead of the local address. The settings panel shows a ready-made tunnel link when a tunnel is active.

<iframe src="http://YOUR_HOST/public" width="100%" height="600"
        frameborder="0" style="border:none;border-radius:8px;"></iframe>

What visitors see

  • Items grouped by category, sorted alphabetically
  • A colored availability pill: X available / X available (low stock) / 0 available
  • Item location (if set)
  • A small type indicator dot (blue = Reusable, green = Consumable)

Visitors cannot log in, check out items, or modify anything from the public page.

Permissions

ActionAdminManagerViewer
Enable / disable public view
Toggle individual item visibility

Push Notifications

Inventory Store can send instant push notifications to your phone whenever something important happens - an item is checked out, stock runs low, or someone logs in. Notifications are sent through ntfy, a free and open-source service.

Go to Settings → Notifications (Admin only) to configure this feature.

How ntfy works

ntfy is a simple push notification service. You create a private "topic" (think of it like a private channel name), and anyone subscribed to that topic receives the messages sent to it. The free tier at ntfy.sh works for most teams, or you can run your own ntfy server if you prefer to keep everything self-hosted.

  1. Install the ntfy app on your phone (available for iOS and Android - search "ntfy" in your app store)
  2. In the app, subscribe to a topic of your choosing (e.g. my-inventory-alerts). Use a name that others are unlikely to guess to keep your alerts private
  3. In Inventory Store, go to Settings → Notifications and enter the same topic name
If you want your notifications to be private, use a long or hard-to-guess topic name - anyone who knows your topic name can read your notifications on the public ntfy.sh service. Alternatively, set up a free ntfy account and use an auth token to lock it down.

Setting up notifications

FieldNotes
Server URLLeave as https://ntfy.sh unless you run your own ntfy server
TopicYour private channel name - must match what you subscribed to in the ntfy app. Leave blank to disable all notifications.
Auth TokenOptional. If you have a paid ntfy account or a self-hosted server with access control, paste your token here to authenticate. Leave blank for the free public service.

Choosing which events send a notification

Each event has its own on/off switch. Turn on only the ones that matter to you:

EventWhen it fires
Item checked outAny time a reusable item is checked out to someone
Item returnedAny time a checked-out item is returned
Item marked lostAny time a checkout record is marked as lost
Low stock alertAfter a consumable item is used and the quantity falls to or below the minimum level
User loginAny time any user logs into the app

Testing your setup

After filling in the Server URL and Topic, click Save, then click Send Test. A test notification is sent immediately. If you see it on your phone, everything is working. The result (HTTP status) is shown next to the button so you can diagnose any issues.

Clearing your token

If you need to remove a saved auth token, click Clear token next to the token field. The token is deleted and future notifications are sent without authentication.

Dark Mode

Inventory Store includes a built-in dark theme. Click the moon icon in the top navigation bar (to the left of your username) to switch to dark mode. Click the sun icon to return to light mode.

If your operating system is set to dark mode and you have not chosen a preference in the app, the app (including the login page) will automatically follow your system setting.

Your preference is remembered per device and persists across sessions. Changing the theme on one device does not affect other devices or other users.

Dark mode applies to the full app UI including panels, tables, cards, and forms. It does not affect printed reports - those always print in light mode.

Database Backup & Restore

Go to Settings → Database (Admin only) to download a backup of your data or restore from a previous backup.

Downloading a backup

Click Download Backup. The app creates a clean snapshot of your data while staying fully online, then downloads it as a .db file named with the current date and time.

Store backups in a safe location outside the server machine. A good habit is to download a backup before any major change (bulk import, user restructure) and before upgrading the app.

Restoring from a backup

  1. Go to Settings → Database.
  2. Click Choose File under Restore from Backup and select a .db file previously downloaded from this page.
  3. Click Restore Database and confirm the prompt.

The app automatically saves a copy of your current data before overwriting, giving you a safety net if the restore needs to be undone.

Restore replaces all current data. Every item, user, checkout record, and setting is overwritten with the contents of the backup file. Always download a fresh backup immediately before restoring so you have a copy of the current state.

Updates

Inventory Store checks for new releases on GitHub automatically in the background. When an update is available you will see a notice without needing to do anything.

When a newer version is available, a small notice appears above the logout button in the sidebar with the new version number and a link to the GitHub release. The notice persists until the app is updated - it does not need to be dismissed.

To trigger an immediate check, go to Settings → App Info and click Check for Updates. The result appears inline - either a version badge linking to the release page or a confirmation that the current version is up to date.

To update, download and run the new installer. It upgrades and restarts automatically, typically in under 30 seconds.

The current version is shown in Settings → App Info.

Tray Icon

The tray icon sits in the Windows system tray and provides quick access to common actions.

ActionWhat it does
Double-click iconOpen Inventory Store in your default browser
Open Inventory StoreOpen Inventory Store in your browser
Local: http://...Shows your local network address. Click to copy.
Tunnel: ...Shows the active tunnel URL. Click to copy.
Reset Admin PasswordReset the admin password without logging in. Useful if you are locked out.
ExitClose the tray icon. Inventory Store keeps running and stays accessible.

Role Reference

ActionAdminManagerStaffViewer
View inventory
View reports
Export CSV
Check out / check in items
Consume stock
Restock items
Add / edit / delete items
Import CSV
Manage categories & locations
Manage users
Configure remote access & tunnels
Configure HTTPS / TLS (automatic or uploaded certificate)
Configure push notifications
Enable / disable public view
Toggle item visibility in public view
Database backup & restore
Change own password

Status Badges

These badges appear on item rows in the Inventory list and Stock Levels report.

BadgeMeaning
OKAvailable quantity is above the minimum threshold
Low StockAvailable quantity is at or below the minimum quantity
OutOne or more units are currently checked out (Reusable)
LostOne or more units have been marked lost
ExpiredExpiry date has passed
Exp MMM DExpiry date is within the next 30 days
ReusableItem type indicator
ConsumableItem type indicator