À propos du projet
Stash est un système d'inventaire domestique auto-hébergé et monopropriétaire qui traite les articles principalement comme des objets étiquetés par code-barres/QR code. Plutôt que de servir d'outil de recettes ou de planification de repas, il se concentre sur des flux rapides de réapprovisionnement/consommation, le suivi des stocks bas et des dates de péremption, l'impression d'étiquettes, et une automatisation optionnelle via des webhooks sortants.
Capacités principales :
- Scanner continu en mode Réapprovisionnement (+1) et Consommation (−1) avec astuces de format, résolution accrue, autofocus, bip sonore, retour haptique et bascule de flash faible luminosité. Les codes-barres inconnus créent automatiquement un nouvel article et ouvrent une fiche rapide pour la localisation et le seuil.
- Modèle unifié article+code-barres prenant en charge UPC/EAN, codes QR internes auto-délivrés (profonds vers l'article), codes d'appairage Matter et numéros de série manuels. Un seul bouton d'impression envoie uniquement la symbologie sélectionnée, ce qui compte quand un article porte plusieurs codes.
- Mode actif pour appareils physiques uniques, avec suivi de l'état, saisie de code-barres numéro de série et journal d'historique de maintenance ; les articles actifs sont exclus des listes de courses et de la logique de stock bas.
- Emplacements et catégories imbriqués rendus comme un arbre indenté, avec recherche, filtres, tri, pagination et état du dernier filtre/tri mémorisé. Opérations groupées pour déplacer ou supprimer les articles sélectionnés.
- Détail de l'article incluant quantité, seuil de stock bas, dates de péremption/garantie, prix avec devise par défaut, édition inline nom/unité, pièces jointes et journaux d'ajustement/maintenance.
- Pièces jointes pour reçus, manuels, garanties et photos. Toute image peut devenir l'avatar représentatif de l'article ; les téléchargements sont redimensionnés automatiquement.
- Tableau de bord mettant en évidence la valeur totale de l'inventaire, les articles en stock bas, ceux expirent bientôt et récemment ajoutés, plus une checklist de prise en main pour emplacements, notifications et URL publique.
- Liste de courses construite à partir des articles en stock bas ou ajoutée manuellement, avec mémos et case cochée « acheté » ; les articles disparaissent automatiquement dès que le stock remonte au-dessus de leur seuil.
- Recherches produit optionnelles et branchables (Open Food Facts, UPCItemDB, Naver Shopping) par scan, ou complètement désactivées.
- Import/export CSV, y compris les valeurs de code-barres, pour saisie groupée et allers-retours avec tableurs.
- Impression d'étiquettes en PNG unique ou PDF feuille A4, avec une boîte de recherche dans le sélecteur ; la typographie coréenne est supportée via un sous-ensemble Noto Sans KR intégré.
- Notifications Web Push pour les événements de péremption/garantie et un récapitulatif hebdomadaire de stock bas.
- Suppression douce avec toast d'annulation, restauration et purge automatique après 30 jours.
- PWA hors-ligne : coque d'application en cache, réponses articles en cache et file d'attente de scan hors-ligne qui se synchronise au retour de la connectivité.
- Webhook inventaire sortant pour intégrations imprimante ou Home Assistant, avec les derniers échecs de livraison visibles dans Paramètres et vérification optionnelle de signature HMAC-SHA256.
- Comptes familiaux multi-utilisateurs avec rôles admin/général, bootstrap premier admin, réinitialisation unique du mot de passe admin, déconnexion partout, sauvegarde/restauration, et localisation ko/en avec thème clair/sombre.
Hors périmètre : planification de recettes/repas, multi-location par ménage dans un même processus.
Déploiement disponible en Docker Compose ou installateur Proxmox LXC en un clic. Un environnement de développement local utilise PostgreSQL, migrations Prisma et serveurs API/web distincts. Les images sont publiées sur GitHub Container Registry, et les notes de production couvrent le service subpath, le health checking et la gestion des secrets.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.