Files
wiki/Catalogue-Self-Hosted/apps/app-cannery.md
T
2026-06-09 18:40:21 +02:00

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
catalogue
tracking
inventaire
munitions
survival
django
python
medium false
https://selfh.st/apps/cannery
https://github.com/cannery-app/cannery

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

  1. Pré-requis : Elixir 1.14+, Erlang 25+, Node 20+, PostgreSQL 14+.
  2. Cloner : git clone https://github.com/cannery-app/cannery.git
  3. mix deps.get && cd assets && npm install && npm run deploy && cd ..
  4. mix ecto.setup (migrations + seed)
  5. Configurer .env avec SECRET_KEY_BASE (générer via mix phx.gen.secret).
  6. Compiler en release : MIX_ENV=prod mix release puis 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_BASE par 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

Pages Liées