Deploy InvenTree to organise my workplace

November 28, 2020 10:44 PM


I have a garage.

This garage doubles as:

  • a home office & gym,
  • a storage place,
  • a workshop - (vacuum forming, fabrication, soldering, electronics),
  • and a 3D printer farm.

I am able to stay organized in this space for the most part, but every few months a critical mass of clutter accumulates, and the space becomes very ‘noisy’. At this point I re-organise everything, and vow that this will be the last time I will do so.

Though the space is small (and used for more activities than is probably sensible), and I have a lot of stuff (components, materials tools etc.), surely it is possible to break this cycle.

The issue[s] is/are stem from some variation of the following themes:

  1. I don’t remember if I have a thing needed for a project, so I buy one. While I’m waiting for it to arrive I find an example of the thing. Now I have a superfluous thing.
  2. I am 99% convinced I have a thing needed for a project, (but actually don’t), and the phantom thing is lumped in with other similar things. Both the mess made and time taken looking for the thing is proportional to how convinced I was that I had the thing.
  3. I am 50% convinced I have a thing, but hey, I was also 99% sure I had that other thing. The thing is cheap and I’m loath to make a mess looking for the thing I only seem to remember having, so I buy another thing. Now I have another superfluous thing.

Ideally, everything should have a place and everything should be in its place, but before I can work on providing a sensible place for everything (as far as is practicable), I need to make an inventory of what I have.

To achieve this I am going to deploy an open source django app called ‘InvenTree’, which is an “…open-source inventory management system…” which is “…designed to be lightweight and easy to use for SME or hobbyist applications.”, and “…provides a RESTful API, a native Python library, and a powerful plugin system.”


…well that was much easier than I thought it would be.

All that was involved was:

  1. create a virtualenv and call it ‘inventree’
  2. install ‘invoke’ which is a build tool using pip3 (a package manager)
  3. clone the InvenTree source code using Git
  4. navigate to the source directory and and use ‘invoke’ to install
  5. Initalise the database and create an admin user
  6. launch the server and go to

Then you get:

1 Like

I don’t use anything near as fancy as InvenTree for my hobby stock control.

One tip I will give that may or may not work for you.

I no longer try to organise the location of parts. I don’t try to keep like things together. Unless an item is for a specific project it does not get grouped with similar items.

This forces me to open up the stock control spread sheet to find anything. If I already have the stock control system open on the computer I am far more likely to update the levels when I use something.

For example, if you kept all your op-amps in a draw called Op-Amps and you needed an LM358. You would go straight to the draw and find you have one left and use it and think “I will update the stock levels later”

If however you needed an LM358 and you had no idea what draw or box it was in. You HAVE to look on the computer. Find out it is in component box 4 compartment C. Then when you take the last one you already have the database/spreadsheet open to update levels.

This also helps me by not having to categorize things. For example should an EL2321 be in the draw “Op-Amps” or should it be in the draw “Video ICs”. If you just put it in what ever location it fits and then enter it in the database as “Elantec EL2321 100Mhz GBP triple video op-amp” then you can hit F3 and find it via either category.

1 Like

I just noticed a cart with a vacuum pump, a few holding chambers, an unusual swing top lid and a range of switches and levers on top.

I am interested - tell me more.

I’m coming to realise that trying to categorise things at too granular a level is one of the things that causes issues (at least for me). Categorise potatoes as ‘Large’ or ‘Small’. Is a medium sized one a large example of a small potato or a small example of a large one? I could create a ‘Medium’ category, but it only solves my problem until I encounter a potato that could be a large example of a small potato or a small example of a medium…

…and categorising as a way to find something more easily, counter intuitively removes the step in the process that would help ensure an accurate picture of what I’ve got.

With this in mind, I’ll probably go with some broad categories - automotive, 3D printing, electronics and that will be the extent of categorising.

Thank you for your advice.

It’s a ‘manual’ two stage vacuum former, where a lot of the manual work is performed by an arduino nano. There’s a momentary switch for controlling the evacuation of the tanks, a toggle for choosing if you want the pump to participate in the draw once the tanks have done their bit. A 10K sliding potentiometer for choosing draw duration (0.5 - 2 seconds). Two gauges for tank pressure and vacuum pump pressure.

The micro-controller open and close relays that energise a set of 3 solenoids, provide AC to the pump or the nichrome heating element (but not both at the same time!), depending on which of the two rocker switches are closed. The heating element is inset into a pair of refractory bricks that I gouged a pattern into using a drill press and a routing bit.

I’m using it to stretch a skin of plastic over the skeleton of personalised n-95ish respirators. I went with the ‘swing top lid’ (I don’t know the proper name of the mechanism), because I wanted the plastic to contact the flat top of the buck simultaneously to try to maintain a more symmetrical thickness.

Truthfully, it’s a bit of a Rube-Goldberg machine. If I could make it again from scratch, I would do a lot of things differently. The plumbing underneath most so. It was one of those ‘wicked’ problems where you just have build it in order to find out which decisions were silly.

1 Like

I was having a similar problem but with electronic components (resistors, capacitors, IC’s etc).
The time to take look for something > cost of purchasing a new part.
I spent about 2 weeks entering part numbers into a system called
So far it has been a great help to know if I have something and what draw it is in.

Prohtec. Thanks for description. I would not mind making my own vac former one day so I would gladly listen to any decisions you thought were silly so I don’t make same mistakes.

hovo, Any downsides to partkeeper? I can’t seem to work out if they have a “business model” if any. Or am I just being spooked by the sites layout looking a bit commercial and it is 100% open source goodness?

When I built the vacuum former, I didn’t define the problem clearly, develop any requirements, create a detailed design, plan the construction, or work through any of the logic that would go into the code for the micro-controller. I just started building and coding. So I ended up with situations where I’d installed a solenoid backwards, and would have to shift a relay to access it, but I can’t access the relay without taking off the platen platform, but can’t remove that without disconnecting some plumbing, but disconnecting the plumbing more often than not pulls out wires from a breadboard because I made them too short… and so on.

My original thinking was that if I was going to build a vacuum former anyway, I might as well build one as big as was practical, and then I’d have some flexibility to form things larger than the 12 x 12 x 8cm respirators. If you want to form larger things, you need more suction, which means tanks and a more beefy (and expensive) pump.

Once I had 90% finished the thing, I did some research on the price and properties of the raw plastic stock available, and thought more carefully about my use case (high volume in terms of throughput). I came to the conclusion that the extra functionality afforded by a two stage system (and so the extra complexity in terms of solenoids, power supplies, micro-controller), was not justified.

So long story short, If I had decided early to design the vacuum former with a platen to accommodate a buck that would never exceed 12cm x 12cm x 8cm, and use a thinner cheaper plastic, I could have gotten away with a vastly simpler direct pump system. No tanks would make a cart redundant, and I wouldn’t be scratching my car on it every other day.

But since I’ve got all the parts anyway, my plan is to refine the design that ameliorates the annoying issues (make everything more modular and accessible), and then make an adaptor and element for the general use case. I think I’ll document that process in a build log.


I was going to catalog the electronics I’ve accumulated into invenTree, but it would seem that partkeepr is more suited to electronic components… spoilt for choice.

fwiw I gave airtable a go and it was pretty decent and tracking my inventory of electronic parts and other things. They also had a usable free plan iirc. However with things like this I got lazy and stopped updating it.

I think I’ve found how I’ll organise my daughter’s library of books. Am I reading this right though?

Airtable refers to each project as a base, as in database. I’m using the free Airtable service, which gives me unlimited bases, 1,200 records (or items you can keep track of) per base, 2 gigabytes of space per record…

2.4 terabytes for free?