--- title: Portall created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, docker, ports, reseau, organisation, typescript] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Docker, https://github.com/need4swede/Portall] --- # 🐳 Portall > **L'annuaire de vos ports Docker** : générez, organisez et partagez la cartographie des ports exposés sur tous vos conteneurs. Fini les conflits 3000/8080 et les onglets oubliés. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | (GitHub) | | **GitHub** | [need4swede/Portall](https://github.com/need4swede/Portall) | | **License** | MIT | | **Langage** | TypeScript | | **Étoiles GitHub** | 838 ⭐ | | **Dernière MAJ** | 2026-05 | | **Catégorie** | [[cat-docker\|Docker]] | ## 📝 Description **Portall** répond à une question que tout homelabber s'est posée : *« sur quel port tourne cette satanée app ? »*. L'outil génère, suit et organise la **cartographie complète des ports** de vos conteneurs Docker à travers **plusieurs hôtes**. Vous importez un `docker-compose.yml`, il en extrait tous les ports publiés, les catégorise, et vous permet de les suivre dans le temps. - ✅ **Parsing automatique** des fichiers `docker-compose.yml` et `docker run` - ✅ **Multi-hôtes** : agrège les ports de plusieurs machines - ✅ **Détection de conflits** : alerte si deux stacks utilisent le même port externe - ✅ **Catégorisation** par service, hôte, protocole (TCP/UDP) - ✅ **Notes et tags** personnalisés sur chaque port - ✅ **Historique** : qui a ouvert quoi et quand - ✅ **Recherche full-text** dans la base - ✅ **Export** CSV, JSON, Markdown - ✅ **API REST** pour intégrations - ✅ **Authentification** intégrée **Public cible** : homelabbers qui jonglent avec **plusieurs serveurs** et **50+ conteneurs** (VPS, NAS, Raspberry Pi, etc.). Le débutant avec 3 services n'en a pas besoin ; l'utilisateur de [[app-dockpeek]] y verra un complément d'inventaire. **Différence avec Dockpeek** : [[app-dockpeek]] scanne les ports **exposés en temps réel** sur un hôte. Portall est un **annuaire statique** (parse de configs), plus adapté à la **planification** et à la **documentation** qu'au scan live. ## 🚀 Installation ### Docker Compose ```yaml # docker-compose.yml version: '3.8' services: portall: image: ghcr.io/need4swede/portall:latest container_name: portall restart: unless-stopped environment: - DATABASE_URL=file:/data/portall.db - JWT_SECRET=changez-ce-secret volumes: - portall-data:/data - /chemin/vers/stacks:/stacks:ro # optionnel : import auto ports: - "7777:3000" volumes: portall-data: ``` ### Docker run ```bash docker run -d \ --name portall \ -p 7777:3000 \ -v portall-data:/data \ -e JWT_SECRET=changez-ce-secret \ ghcr.io/need4swede/portall:latest ``` ## ⚙️ Configuration Initiale 1. **Accéder à l'UI** : `http://IP:7777` 2. **Créer le compte admin** au premier démarrage 3. **Ajouter un hôte** : Hosts > New (nom, adresse, type) 4. **Importer un `docker-compose.yml`** : Stacks > Import > drag & drop 5. **Réviser la cartographie** générée et corriger les conflits éventuels 6. **Exporter** en CSV ou Markdown pour partager avec votre équipe ## 🔄 Alternatives ### Open Source - [[app-dockpeek]] — Dashboard live des ports **exposés** (complémentaire) - **Portainer** — Inclut une vue des ports, mais pas d'agrégation multi-hôte - **Heimdall** — Page d'accueil avec liens vers vos services (pas de gestion de ports) - **Portward** — Annuaire statique similaire, projet plus petit ### Comparaison Portall vs alternatives | Critère | Portall | Dockpeek | Heimdall | Portward | | :--- | :--- | :--- | :--- | :--- | | Source des données | Compose files | Runtime Docker | Manuel | Compose files | | Temps réel | ❌ | ✅ | ❌ | ❌ | | Multi-hôte | ✅ | ❌ | ❌ | ❌ | | Détection conflits | ✅ | ❌ | ❌ | Limité | | Auth | ✅ | ❌ | Optionnel | ❌ | | Export | CSV/JSON/MD | ❌ | ❌ | ❌ | **Verdict** : Portall est **le seul** outil dédié à la **planification** des ports. À utiliser en complément de [[app-dockpeek]] (temps réel) et de [[app-portainer]] (runtime). ### Propriétaires (ce que Portall remplace) - **Manuels Confluence / Notion** — Qu'on finit par ne plus maintenir - **Tableurs maison** — Fonctionnent, mais ne parsent pas les Compose - **Fichiers README** oubliés au fond d'un repo ## 🔐 Sécurité - ⚠️ **Exposition de la topologie** : Portall révèle les ports internes de votre infra. **Ne jamais l'exposer** sans HTTPS ni auth - **Changez `JWT_SECRET`** : valeur par défaut = porte ouverte - **HTTPS obligatoire** via [[app-traefik]] - **Volume `/stacks` en read-only** (`:ro`) : Portall n'a pas besoin d'écrire dedans ## 📚 Ressources - [GitHub need4swede/Portall](https://github.com/need4swede/Portall) - [Issue tracker et démos](https://github.com/need4swede/Portall/issues) ## Pages Liées - [[cat-docker]] — Catégorie Docker - [[app-portainer]] — Runtime Docker - [[app-dockge]] — Compose manager - [[app-yacht]] — Templates Docker - [[app-traefik]] — Reverse proxy HTTPS - [[recettes-docker-compose]] — Stacks - [[securisation-home-lab]] — Sécurité