Files
2026-06-09 18:40:21 +02:00

116 lines
4.2 KiB
Markdown

---
title: TapMap
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, networking, topology, visualization, typescript, react]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=networking, https://github.com/tapmap/tapmap]
---
# TapMap 🗺️
> Visualiseur interactif de topologie réseau : cartes SVG dynamiques pour représenter switches, routeurs, APs et leurs liens.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://tapmap.app |
| **GitHub** | https://github.com/tapmap/tapmap |
| **License** | MIT |
| **Langage** | TypeScript (React) |
| **Étoiles** | 41 ⭐ |
| **Dernière MAJ** | 2024 |
| **Catégorie** | [[cat-networking]] |
## Description
**TapMap** est une application web qui permet de **dessiner et maintenir une cartographie réseau** précise, à la main ou semi-automatiquement. L'idée : remplacer les schémas Visio/Draw.io statiques par une carte interactive hébergée, qui peut afficher en temps réel l'état (up/down) de chaque équipement via des pings ou des sondes SNMP simples.
L'interface est construite sur un éditeur SVG drag-and-drop. On y place des nœuds (routeur, switch, AP, serveur, caméra) avec leurs icônes, on trace les liens (avec annotations de port, VLAN, débit), et on groupe par bâtiment/baie/salle. Une fois la topologie encodée, l'app peut :
- **Vérifier la connectivité** : ping périodique de chaque nœud, coloration rouge/vert selon l'état.
- **Exporter** : SVG, PNG, JSON pour sauvegarde ou import dans un autre outil.
- **Documenter** : notes par nœud (modèle, firmware, IP de management, MAC).
- **API REST** : interrogation externe possible depuis d'autres outils d'observabilité.
C'est un excellent complément visuel à [[app-uptime-kuma]] ou [[app-zabbix]] : là où ces outils montrent des graphes et alertes, TapMap montre le **« où »** sur le plan physique.
## Installation
### Docker Compose (recommandé)
```yaml
services:
tapmap:
image: ghcr.io/tapmap/tapmap:latest
container_name: tapmap
restart: unless-stopped
environment:
- DATABASE_URL=postgres://tapmap:tapmap@db:5432/tapmap
- JWT_SECRET=changeme-32-chars-random
depends_on:
- db
ports:
- "8087:3000"
volumes:
- ./uploads:/app/uploads
db:
image: postgres:16-alpine
container_name: tapmap-db
restart: unless-stopped
environment:
- POSTGRES_USER=tapmap
- POSTGRES_PASSWORD=change...ndom
- POSTGRES_DB=tapmap
volumes:
- tapmap-db:/var/lib/postgresql/data
volumes:
tapmap-db:
```
### Manuelle (Node.js)
```bash
git clone https://github.com/tapmap/tapmap.git
cd tapmap
npm install
npm run build
npm run start # port 3000 par défaut
```
## Configuration
- Premier lancement : créer un compte admin via l'UI.
- Définir le fuseau horaire, l'intervalle de ping (défaut 60s), le seuil d'alerte.
- Importer un fond de plan (image de la salle/baie) comme base de la carte.
- Configurer les notifications (webhook Ntfy/Discord) optionnelles.
## Alternatives
- **Open Source** : [NetBox](https://github.com/netbox-community/netbox) (DCIM complet, plus lourd), [Node-RED Dashboard](https://nodered.org/) (custom mais sans carto auto), [draw.io](https://github.com/jgraph/drawio) (statique, self-host possible)
- **Propriétaire** : Lucidchart, Visio, NetBox (version commerciale), SolarWinds Network Topology Mapper
- **Lié** : [Nmap](https://nmap.org/) pour la découverte automatique (à coupler pour pré-remplir)
## Sécurité
- **Authentification** : obligatoire, JWT côté backend, changer `JWT_SECRET` par défaut.
- **HTTPS** : obligatoire via reverse-proxy (Traefik, Caddy, NPM).
- **Isolation réseau** : si l'app doit pinger des équipements sensibles, l'isoler dans un VLAN de management.
- **Backups** : sauvegarder la base Postgres ET les images uploadées (fonds de plan).
- **Mises à jour** : suivre les releases, l'app manipule des credentials d'accès réseau.
## Ressources
- [selfh.st — Networking](https://selfh.st/apps/?tag=networking)
- [GitHub tapmap/tapmap](https://github.com/tapmap/tapmap)
- [Demo live](https://demo.tapmap.app) (si disponible)
## Pages Liées
- [[cat-networking]]
- [[recettes-docker-compose]]
- [[app-uptime-kuma]] — monitoring de disponibilité
- [[app-netbox]] — DCIM complet