--- 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