Initial vault setup
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user