There are many inventory systems for huge companies, but none simple enough to be usable to remind me where I put what during spontaneous house cleaning
This is a self-hosted Telegram Bot with Algolia as search engine, SQLite as DB and local FS as storage for images
Just send your bot a picture with text consisting of one two lines:
- Name of item
- Optional: Integer ID of box where you put it (boxes and shelves are items too)
There are several ways:
Just send bot some text and it will try to find it
From there you will be able to get individual items by clicking /show_{id} links
Just send bot some integer - it will fetch corresponding item
When you get an item - there is "Edit" button. Press it to change Name, Location or Photo
Each item can refer to one location, which is also an item. E.g. "cat (id: 2) is in a box (id: 1)" (or not?)
Here if we fetch info for "box" - we'll be able to query all items inside that box
In our home we have a lot of Ikea stuff, some of it unpacked and forgotten for years.
If there is Ikea article number in name of item - there will be a button to directly go to that item in Ikea.
This behavior is customizable via STORE_BUTTON_TITLE, STORE_BUTTON_URL, STORE_ARTICLE_REGEX
There is /allparents command you can use to list every item that doesn't have parents
- Algolia
- Create free account on https://algolia.com
- Create application and index in it called
items - Write down Application ID, Search key, Write key
- Telegram
- If not registered - do it (https://telegram.org)
- Create new bot by messaging
@BotFather - Write down your bot's token
- Telegram user ids of users allowed to interact with bot
- You can use
@userinfobotto get ids of you and other users of your home
- You can use
Prerequsites: you need docker and docker-compose installed for this method.
- Copy
docker-compose.yml.stubtodocker-compose.ymland edit it:- Replace
/path/to/volumewith directory (recommended) or docker-volume where both database and images will be stored - Replace placeholders with corresponding values in all other lines with
# Change value herecomment
- Replace
- Start your bot to see if it works and check logs: run
docker-compose upfrom the directory withdocker-compose.yml - Stop the bot with
Ctrl-Canddocker-compose downand start it in detached fashion:docker-compose up -d.- When it's running in detached state you can now close terminal
Feel free to build this app using Gradle and deploy it however you want







