Hacker News new | past | comments | ask | show | jobs | submit login
Shelf – open-source asset management software (github.com/shelf-nu)
320 points by CarlosVirreira on July 10, 2023 | hide | past | favorite | 77 comments



Another great open source asset management system to check out is Snipe-IT. https://github.com/snipe/snipe-it

I have used it for years both self hosted and with them hosting and it's been a great low cost solution for asset management.


We have more than 6k assets, 2k+ users, hundreds of licences, component's, and it's still fast. LDAP, api, tons of filters and exports possibilities, selfhosted. Best solution IMO.


It also has a healthy community around it as the following shows:

https://devboard.gitsense.com/snipe/snipe-it

Full disclosure: The insights are from my tool.


If I may provide a bit of feedback: Provide more background about GitSense. Who is behind it, what is the privacy policy. Things like that.


Thanks. DevBoard just came out of stealth mode, but there are still things that need to be done, like those that you pointed out.


Devboard looks nice, congrats!


Thanks!


Thanks for this recommendation. Been looking at asset management systems so Shelf caught my eye but the install process looks too painful, whereas this one I can just drop easily onto an existing LAMP server.


Pay them to host it. $400/year. Literally a rounding error. Works out cheaper than a cloud compute and SQL server


I have a $6/mo VPS on which I think I can run Snipe quite happily. I get that some people are OK to pay significantly more for services like this but I have the resources and interest in self-hosting to make it worthwhile.


If your company is of type "enterprise" i.e. large enough to have a compliance department or security-conscious enough to go through a pre-sale vendor assessment, and you intend to "sync" users from LDAP/AD with the intent to use your AD user to log in, I strongly urge against hosting on their cloud platform. The LDAP Sync job pulls the password plaintext using the OpenLDAP protocol encrypts it with an APP_KEY they control, and stores that password in the Snipe-IT database. If you ever had an AD user who couldn't log into SnipeIT, then you "sync'd" users And it magically worked - chances are that user changed their password and the correct password needs to be re-acquired before the LDAP user-bind will be successful.

In our assessment we found that these APPKEYs are also included in the backup file - which makes the SnipeIT backup ZIP files a vector for exposing all users and passwords (as well as all encrypted fields data) because of a default setting by the framework's backup provider.

That said - if you are concerned about security, you will be on-prem or within your own cloud provider to begin with. The SnipeApp company offers an "enterprise" level support at a somewhat reasonable rate for big companies, and they were a great help assisting with our installation and integrating the SnipeIT API to import new devices and licenses automatically in a way that we can control from say a PO.

This password issue may not be a problem for you as I understand they now have connectors for SSO or another OAUTH provider. That and the fact that they asked us to share our backup via email during onboarding and they did not specify to keep the secrets out of the backup made our decision to go in-house. Still a good, scrappy product, and when we asked them if they had access to our company's passwords that was not disclosed, we didn't get a response. That's OK - and it was a good lesson for my team in evaluating an open source framework behind the product vis-a-vis "trust but verify."

Its always going to be a vector of our own partial design (and/or someone we are paying), a rogue backup source of truth that is ejected into the ether like atoms forming salts in an acid-base reaction.


Visually, it looks GREAT. Thanks for sharing this. I do care more about the feature set than the UI tho', so I have some questions.

AM to me is the foundational part of any security management. I care about 3 main things:

  1) API support (for custom tooling)
  2) Integration with other tools (Jira, Salesforce, etc)
  3) Relationships/Dependencies with other assets (to determine the blast radius if there is an incident, or if this asset can be deco'd and what the impact would be)
Assets are more than just devices, are these catered for?

The feature set looks like it steps into EDM, which is a totally different problem space to AM IMO.


> Assets are more than just devices, are these catered for?

What does that mean?


Each organisation has a different interpretation, with some being as broad as anything which has an owner and would have an impact to the business if confidentiality, integrity or availability of the asset is affected.

However, the best definitions typically come from NIST which, as a non-US resident, I still recognise are leaders in this space.

https://csrc.nist.gov/glossary/term/asset


Unfortunately, both shelf and snipe are limited asset management systems that do not cover the broader asset management situations and issues.

Having worked in asset management at one time, the field has some quite difficult aspects that are often missed by these relatively simple systems.

I am not disparaging what either of these systems do. There is a lot of time and effort that has been put into them. However, full blown asset management is a much bigger area than most people understand or have built systems for.

One asset class that can act as a test case for any asset management system that you might like to try your hand at building is a multi-story multi-use building. Once you get into the weeds on this one, you begin to see just how complex asset management is.

One feature of asset management is the oft forgotten maintenance sequences and forecasting of maintenance and refurbishment.

A number of other comments here have commented on such aspects


Agreed, asset management isn't only about knowing and tracking what the business possesses. A good system

1. Separates, but inter-connect the Asssets and CI. An asset will never change during its lifecycle. A CI is the actual configuration(s) of an asset. It could be a simple laptop (asset) with a standard OS (CI, one-to-one relationship), or it could be a server (asset) with multiple virtual machines (CI, one-to-many relationship)

2. Will handle the entire lifecycle of the equipment.

3. Will be an integral part of the purchasing, receiving and decommission process.

4. Will allow you to predict and plan the replacement of old assets with a high level of confidence.

The product presented by OP only touches a sliver of what asset management is. For some it might be just enough, but most don't realize how complex it can become.


These are fantastic insights!

I'm aware of Snipe-IT, but could you recommend any other open-source solutions?

I have a hunch that the scope and requirements of such software are often tailored exclusively to enterprises, which only comes with a price tag.


On the open-source side I'm ot aware of any solution that covers everything like this from one end to the other.


IT wise, It's been a fair few years since I've been in a department that does asset management, we used to use GLPI with it's warts and all, which got replace with https://github.com/netbox-community/netbox


I guess I'm old and boring. I have a storage.txt file that just has a box#(literally written on the box/object) and then a description, tab seperated. That's the entirety of my inventory management. Searching through the text file is easy peasy.


Text files are massively underrated


The database backing this, Supabase, describes itself as "stable enough for most non-enterprise use-cases".

I suppose that means this tool is "stable enough for most non-enterprise use-cases", which means I can't use it despite wanting to.


The capabilities of Shelf are going to be the limiting factor to enterprise use far before Supabase/Postgres will be.


I assure you that you're not going to reach the level of enterprise we're talking about there (where some sort of sharding strategy becomes important).

Basically - if you would run it on RDS, you can run it on Supabase


Supabase uses PostgreSQL and they support offboarding from Supabase so you probably could make this enterprise ready.


On the pricing page, the paid plans are “production ready.” I wonder how they define an enterprise.


Is there something like this but for “home” usecases? What’s in my pantry, how much of y do I have left in my medicine cabinet, etc.


As anyone who has done inventory management could tell you, the admin involved in keeping your pantry inventory up to date would massively outweigh any utility you'd get from this.


Yeah, I wrote a simple pantry manager that used both barcodes on the food items (used an api to lookup and pre-fill basic info) and then small QR codes that I added to the item (to track the individual instance), it was my "pandemic project". It was cool but not the most user friendly (unsurprising, UI/UX are not my strong suits) and it was a little tedious. It was relatively easy to write through and I enjoyed working on it. I was also tracking things like expiration with the intention to have a list of things I should focus on using first.

At the end of the day I abandoned it but the tech stack and the hardware I bought (small Dymo label printer) actually led to me building a side business on top of some of the basic ideas behind it which has grown steadily since.


Maybe it could be worth it for only some items that you always forget to use before they expire. or if it's for saving money by waiting for stuff to get on sale, maybe only for items that are really worth it.


I built this for my chest freezer years ago (including the domain chowcaster.com), which used a barcode scanner to add/remove items. It worked better than a pantry because 1. Less items and typically higher cost, 2. You usually make a trip to your freezer and 3. It's hard to know what's in there. It basically replaced the clipboard my mom still uses to track her freezer inventory.


Good point. Nice.


The only way it would make sense is if you took a video/picture of it and software did everything else.


Same question, but more focus on home electronics. I'd love to track my appliances and home lab setup better than I do today in just a spreadsheet. It'd be nice to get depreciation / warranty tracking, diagrams which show tags/position in the rack for my home lab. Basically similar to enterprise asset management just on a much smaller scale and without needing to operate a full ITIL shop + deploy enterprise scale.

I once, many moons ago, barcode asset tagged all my stuff and was scanning it into an app that could track where it was in your house on a basic 2d wireframe home, which let you report for insurance scheduling purposes. Besides just tracking generally, knowing what stuff you have that is valuable, depreciable, and could be stolen/destroyed is very useful data even for individuals.


I have had some ideas over the years around home electronics (tools and components) management.

I was thinking about building myself a system of QR labelled ziplock bags (inc. antistatic ones) and QR labelled containers.

The main concept of my particular system would be to have a camera covering my workspace, and a camera covering a storage area for containers.

The system would automatically track which QR labelled bags are in which QR labelled container, and also keep a 'last seen' graph of bags that are near other bags, and containers near other containers, so that you don't have to spend too much effort maintaining the system, and when you want a list of things to work with, the system could help you perform a 'computer enhanced rummage' by using your smartphone and have it highlight containers that you want, and ziplocks that contain the things on your list.

Take all those ziplocks out, lay them on your workspace, boom, they are all checked out of the containers by the overhead camera.

Place the containers back on your shelves, boom, the shelve cameras know the positions of the boxes.

When you are done with the items, place a box on your workspace (recognised by camera) and put the packets back in the one box (those packets then checked in to that box).

I don't have a nice workspace to build the system yet, but when I settle into a place I am going to spend more time thinking about it.


Someone mentioned https://inventree.org which looks cool, but there is no distributor API connections AFAIK. I really wanted to ability to scan my Digikey bags and have it auto fill all of the parameters so I made a super basic app to do that. I'm planning on open sourcing it once I clean it up.


https://grocy.info/

This is what you're looking for.


Homebox (https://github.com/hay-kot/homebox) is one I've been looking at recently. Haven't actually set it up yet though, so YMMV.


It's only really good for groceries, but if you use Paprika's shopping list it will track what you have at home and subtract from it as you complete recipes.



maybe grocy


OMG ... information horder in me will resist this temptation.


A wiki or a spreadsheet


Yes. They're on your face right now, above your nose.


Seems interesting. It would be nice if a user could record maintenance events. For example: rotate tires, change oil. Also, I would like to upload user manuals - not just hyperlinks.


Request Tracker is an older ticket system that also does asset management and can associate tickets with assets.

It can be rather tedious to configure, as I recall, but it can do almost whatever you want. Hope you know some perl. Have not used it in at least 5 years.

https://bestpractical.com/request-tracker


This looks great - I was looking for something like this and other solutions are split into pretty much a) way too expensive for a small business using it casually b) very basic systems without mobile support. Ended up just using Airtable directly with the mobile app - not amazing, but also not bad at all.

One thing I couldn't figure out from the website/GitHub - can I attach more than one image to the item? For example I'd like to save both the photo and the pdf of the invoice.


We are planning on improving the UX of our comment module, so you can drag images or upload images as a GitHub comment on your asset page.


The other day I was looking for a Windows desktop app for managing home assets (Where is this tool? What is inside my box A1 located in room B?)

There is very little software like that. Everything is a website or a smartphone app. I want a Windows desktop program.


For electronics or manufacturing I can recommend inventree. https://inventree.org/

It can even do things like defining projects that are made of sub-components that are made of parts you may or may not have on stock (and if you added a prize for each of the parts it will spit out a total cost). It can handle prize brackets etc.

For a most basic system or hobbyist needs this might be total overkill tho.

Why not start an excel sheet with everything you have and put an location next to the thing? The major work with such systems tends to be first entry and then keeping things up to date, so starting on a small subset of things and trying it out would be a wise way to go about it.


From lurking in the German mikrocontroller.net forum there are a few hobby alternatives like - EleLa : http://www.mmvisual.de/elela/ [] - PartDB : https://github.com/Part-DB/Part-DB-server

The page on the forum wiki is https://www.mikrocontroller.net/articles/Elektronik_Lagerver... [] and it speaks mostly about EleLa.

[*] these links are in German.

EleLa is a desktop app for Windows and Linux written in FreePascal with Lazarus PartDB isa PHP server for self hosting


Honestly, some version of a sqlite database and form maker is probably all you need.

If Docker is an option and you only need it for a single machine, maybe NocoDB?


We will be releasing a desktop app for this. However, it will require internet access.


What do you guys use for managing digital assets, and by that I mean what software is installed where, what usernames/passwords are required for operating (databases, 3rd party API, etc), which versions, etc?


Those are notes in my big digital notebook (currently managed by Obsidian)


Notion. I have a network of related databases and knowledge base style articles, interlinked as much as possible so as to allow clicking through. This works pretty well for us.


1pass

And infrastructure as code


Category selection and location selection is sketchy at best, it's using those advanced selection lists but at the first tap of the field, the list opens, the keyboard opens and the list closes, only at the second tap I get an open selection list -_-


I tried the hosted demo and IMO it feel way too barebone.

* No basic fields like a serial number, model, etc * You can't change the color of a category once created * It lacks the ability to make assets templates * No obvious ways to create custom fields


Having worked with EAM (Enterprise Asset Management) & CMMS (Computerized Maintenance Management Software) for 13+ years. I agree completely. It also completely misses the “management" part by not having any type of maintenance schedules, tasklists, & safety/PPE information.


No custom fields is a wild oversight. Yowza.



Click through

Look for screenshot

Don't find

Close tab


There is a link to a product home page...


Is there? I scrolled through the readme 4 times looking for one and couldn't find it.


It is in the "About" section of the repo. https://shelf.nu


Looks beautiful. Also, congrats on shipping it with a MIT license, which is great.

One downside: the blog entries look like it was written by ChatGPT or similar.


Replacing QR stickers with a visual tagging model seems like it could reduce the friction of data entry dramatically.


Could you tell me more? I do not know much about visual tagging model.


It should be possible to use the vector embeddings produced by an image to text (AI) model as database identifiers. The text tags produced by this type of embedding could replace most human metadata entry required for object registration with AI suggested metadata and human approval.


What's the best way to get involved in the development of Shelf? Looks like a fun project to contribute to!


I'd say you can make an issue, introduce yourself and we can get in touch!


Can anyone recommend a warehouse management system that's open source?


Nice! I was thinking of building something like this at some point.


Hopefully someone can gain value from this!


I will definitely use this to manage both my personal and business assets. Thank you for sharing, this is great work.


and not a single screenshot in the readme

edit: oh its only on the website




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: