5.1 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cannery | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
Cannery 🥫
Un gestionnaire d'inventaire spécialisé munitions et équipements de survie, construit sur Django, fork d'un projet antérieur.
| Métadonnée | Valeur |
|---|---|
| Site web | https://cannery.app/ |
| GitHub | https://github.com/cannery-app/cannery |
| License | AGPL-3.0 |
| Langage principal | Python (Django + Phoenix LiveView) |
| Étoiles GitHub | ⭐0 (projet archivé/relancé) |
| Dernière MAJ | 2025-08-04 |
| Catégorie | cat-tracking |
Description
Cannery est un gestionnaire d'inventaire spécialisé dans les munitions, armes, équipements de tir et de survie. Le projet a une histoire : à l'origine écrit en Elixir/Phoenix LiveView (« Cannery v1 »), il a été réécrit en Django (« Cannery v2 ») avant que le mainteneur principal ne cesse l'activité. La version Django est elle aussi en sommeil.
Le cas d'usage est précis : un tireur sportif, un chasseur ou un prepper veut retracer précisément ses stocks de munitions (calibre, marque, lot, date d'achat, prix, nombre), ses armes (numéro de série, date d'acquisition, valeur d'assurance), et ses recharges (composants : amorces, poudre, projectiles, étuis). Cannery offre des formulaires adaptés à ces besoins spécifiques, là où un Grocy ou un Homebox reste générique.
L'application fournit aussi des rapports de valeur, l'historique d'utilisation (cartes tirées à l'entraînement), et un alerte de stock bas. L'API REST est exposée pour intégrations tierces (scripts d'import, dashboards Grafana).
⚠️ Projet à l'abandon / archivé (⭐0, bus factor 0 à ce stade). À utiliser uniquement comme base de fork, ou comme inspiration pour un projet similaire. Le code reste lisible et bien structuré, parfait pour un port personnel. Pour un usage en production, préférer Grocy ou Homebox (génériques mais vivants).
Installation
Via Docker (recommandé)
services:
cannery:
container_name: cannery
image: ghcr.io/cannery-app/cannery:latest
restart: unless-stopped
ports:
- "8089:4000"
environment:
- SECRET_KEY_BASE=***-base-64-...-long
- DATABASE_URL=postgresql://cannery:***@db:5432/cannery
- HOST=aventure.example.com
depends_on:
db:
condition: service_healthy
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_DB=cannery
- POSTGRES_USER=cannery
- POSTGRES_PASSWORD=*** volumes:
- cannery-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U cannery"]
interval: 10s
timeout: 5s
retries: 5
volumes:
cannery-db:
Installation manuelle
- Pré-requis : Elixir 1.14+, Erlang 25+, Node 20+, PostgreSQL 14+.
- Cloner :
git clone https://github.com/cannery-app/cannery.git mix deps.get && cd assets && npm install && npm run deploy && cd ..mix ecto.setup(migrations + seed)- Configurer
.envavecSECRET_KEY_BASE(générer viamix phx.gen.secret). - Compiler en release :
MIX_ENV=prod mix releasepuis lancer le binaire.
Configuration
- Créer le premier compte via l'interface web, qui devient admin.
- Configurer les unités de mesure par défaut (boîtes de 50, sacs de 1000…).
- Définir les calibres et catégories personnalisées (9mm, .223, 12 gauge, etc.).
- Activer l'authentification à deux facteurs (TOTP) pour le compte admin.
- Brancher le SMTP pour les alertes email (stock bas, expiration amorces).
Alternatives
Open source
- Grocy — gestion d'inventaire domestique complète (alimentaire + objets), très mature
- Homebox — inventaire ménager moderne, multi-photos
- Inventree — orienté makers/électronique
- Part-DB — inventaire de composants électroniques
Propriétaires
- Gunstoc — spécialisé chasse/tir, freemium
- RangeLog — suivi des sessions de tir, pas un inventaire
- Ammoseeker — agrégateur de prix, pas un tracker de stock
Sécurité
- Changer
SECRET_KEY_BASEpar une valeur aléatoire forte (64+ caractères). - HTTPS obligatoire en production (reverse proxy Traefik/Caddy).
- Activer 2FA sur le compte admin — c'est un inventaire d'objets de valeur.
- Sauvegardes PostgreSQL régulières (
pg_dump) — les données saisies manuellement représentent des heures de travail. - Ne pas exposer l'instance publiquement sans authentification (données sensibles : numéros de série d'armes).
- RGPD : si vous invitez d'autres utilisateurs, définir clairement qui voit quoi.
Ressources
- Site officiel (legacy) : https://cannery.app/
- Dépôt GitHub : https://github.com/cannery-app/cannery
- Annonce de réécriture : https://github.com/cannery-app/cannery/discussions
- selfh.st : https://selfh.st/apps/cannery