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

5.2 KiB


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
License MIT
Langage TypeScript
Étoiles GitHub 838
Dernière MAJ 2026-05
Catégorie cat-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

# 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

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

Pages Liées