
# Stupid Simple Network Inventory
**Application web auto-hébergée pour l'inventaire réseau et la visualisation de topologie logique**
[English](README.md) · [Español](README.es.md)






[](LICENSE)
---

---
## ✨ Fonctionnalités
- 🗂️ **Inventaire manuel** — ajout et gestion d'équipements (21 types) avec IPs, VLANs, descriptions et liens web optionnels
- 🗺️ **Vue topologie** — disposition en cards par réseau (LAN / VLAN 802.1Q), avec sections WAN et passerelle
- 📡 **Ping ICMP** — vérification de l'accessibilité de tous les hôtes connus en un clic
- 🔍 **Découverte automatique** — ping sweep + lookup PTR DNS sur un sous-réseau pour importer de nouveaux hôtes
- 🏷️ **Logos de marques** — détection et affichage automatiques des logos éditeurs/fabricants (Proxmox, Cisco, Synology, Docker, et plus de 30 autres)
- 🔐 **Authentification** — connexion JWT avec changement de mot de passe forcé à la première utilisation
- 🌙 **Mode sombre** — bascule thème clair / sombre
- 🌍 **i18n** — français, anglais, espagnol
## 🛠️ Stack
| Couche | Technologie |
|--------|------------|
| Backend | FastAPI + SQLAlchemy + SQLite (Python 3.11) |
| Frontend | Vue 3 + Vite, servi par Nginx |
| Auth | JWT HS256, expiration 24h |
| Runtime | Docker Compose |
---
## 🚀 Démarrage rapide
```bash
# 1. Cloner et entrer dans le projet
git clone https://git.raspot.in/olivier/stupid-simple-network-inventory.git
cd stupid-simple-network-inventory
# 2. Créer le répertoire de données appartenant à l'utilisateur courant
mkdir -p db_data
# 3. Configurer l'environnement (requis pour la propriété correcte du bind-mount)
cp .env.example .env
# Éditer .env :
# DOCKER_UID / DOCKER_GID → résultat de : id -u && id -g
# INITIAL_ADMIN_PASSWORD → à définir pour éviter le bootstrap admin/admin par défaut
# 4. Construire et démarrer
docker compose --env-file .env up --build -d
# 5. Ouvrir http://localhost:8080 dans votre navigateur
```
### Première connexion
| Cas | Identifiants | Comportement |
|-----|-------------|--------------|
| `INITIAL_ADMIN_PASSWORD` défini | `admin` / `