Initial vault setup
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
---
|
||||
title: Dockpeek
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, docker, securite, dashboard, python, auto-hebergement]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/dockpeek/dockpeek]
|
||||
---
|
||||
|
||||
# 🐳 Dockpeek
|
||||
|
||||
> **Le tableau de bord de vos ports exposés** : voyez d'un coup d'œil quels conteneurs Docker ont des ports ouverts sur votre réseau, et à qui ils sont accessibles. L'outil idéal pour auditer la surface d'attaque d'un homelab.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | (GitHub) |
|
||||
| **GitHub** | [dockpeek/dockpeek](https://github.com/dockpeek/dockpeek) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Python (Flask) |
|
||||
| **Étoiles GitHub** | 1795 ⭐ |
|
||||
| **Dernière MAJ** | 2026-05-28 |
|
||||
| **Catégorie** | [[cat-docker\|Docker]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Dockpeek** est un **dashboard web minimaliste** qui interroge le daemon Docker pour lister tous les conteneurs en cours d'exécution, leurs ports mappés, et — surtout — **qui peut y accéder** (localhost, réseau Docker, IP de l'hôte). C'est un outil d'**audit de surface d'attaque** pensé pour les homelabs.
|
||||
|
||||
L'idée : vous avez 30 conteneurs, vous ne vous souvenez plus de tous les ports mappés sur `0.0.0.0`, et vous ne savez pas si votre base de données exposée sur `5432` est accessible depuis Internet. Dockpeek répond en un coup d'œil.
|
||||
|
||||
- ✅ **Détection automatique des ports mappés** sur `0.0.0.0`, `127.0.0.1`, ou IP spécifique
|
||||
- ✅ **Indicateurs visuels** : vert (sûr, localhost), orange (LAN), rouge (0.0.0.0 = Internet)
|
||||
- ✅ **Scan UPnP / NAT-PMP** : détecte si votre box/routeur a forwardé des ports vers votre hôte Docker
|
||||
- ✅ **Multi-hôte** : peut superviser plusieurs daemons Docker distants (via socket SSH)
|
||||
- ✅ **Page de statut publique** : utile pour partager un inventaire avec l'équipe
|
||||
- ✅ **Léger** : Python + Flask, pas de base de données, peu de RAM consommée
|
||||
- ✅ **Pas de modification** : c'est un outil d'audit **read-only**, il n'arrête/ne touche jamais vos conteneurs
|
||||
|
||||
**Dockpeek vs [[app-portainer|portainer]]** : Portainer fait *tout* (gestion, déploiement, MAJ…) ; Dockpeek fait *une seule chose* (audit des ports) mais le fait bien. C'est le complément idéal de Portainer. Dockpeek vs `docker ps` : Dockpeek ajoute la couche d'intelligence réseau (qui peut joindre ce port ?).
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
dockpeek:
|
||||
image: ghcr.io/dockpeek/dockpeek:latest
|
||||
container_name: dockpeek
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8000:8000" # Web UI
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # ⚠️ lecture seule seulement
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- DP_HOSTNAME=homelab
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.dockpeek.rule=Host(`dockpeek.example.com`)"
|
||||
- "traefik.http.routers.dockpeek.entrypoints=websecure"
|
||||
- "traefik.http.routers.dockpeek.tls.certresolver=letsencrypt"
|
||||
```
|
||||
|
||||
### Python (sans Docker)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/dockpeek/dockpeek.git
|
||||
cd dockpeek && pip install -r requirements.txt
|
||||
python -m dockpeek
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Monter le socket Docker en read-only** : `:ro` est indispensable, Dockpeek n'écrit rien
|
||||
2. **Accéder à l'UI** : `http://IP:8000`
|
||||
3. **Vérifier la liste des conteneurs** : tous les conteneurs actifs s'affichent avec leurs ports mappés
|
||||
4. **Auditer la colonne "Bind"** : repérer les conteneurs liés à `0.0.0.0` et décider si c'est intentionnel
|
||||
5. **Lancer un scan UPnP** (bouton dans l'UI) pour voir si votre box a forwardé un port
|
||||
6. **Ajouter un second hôte Docker distant** dans la config pour superviser un cluster
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- **Portainer** ([[app-portainer]]) — GUI complète, fait beaucoup plus que l'audit
|
||||
- **Dozzle** ([[app-dozzle]]) — viewer de logs, pas d'audit réseau
|
||||
- **Docker Bench for Security** — script d'audit sécurité complet (CIS)
|
||||
- **Trivy** — scanner de vulnérabilités d'images, pas d'audit réseau
|
||||
- **nmap + greffons** — plus bas niveau
|
||||
|
||||
### Comparaison Dockpeek vs alternatives
|
||||
|
||||
| Critère | Dockpeek | Portainer | Docker Bench | Trivy |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| Audit ports exposés | ✅ | ⚠️ partiel | ✅ | ❌ |
|
||||
| Interface web | ✅ | ✅ | ❌ (rapport) | ❌ |
|
||||
| Gestion conteneurs | ❌ | ✅ | ❌ | ❌ |
|
||||
| Scan vulnérabilités | ❌ | ❌ | ⚠️ partiel | ✅ |
|
||||
| Multi-hôte | ✅ | ✅ | ❌ | ❌ |
|
||||
| Setup | 2 min | 5 min | 10 min | 10 min |
|
||||
|
||||
**Verdict** : Dockpeek est **le spécialiste de l'audit des ports**. Si vous voulez juste savoir *« qu'est-ce qui est exposé où ? »*, c'est lui. Pour le reste, combinez avec [[app-portainer]] et un scanner de vulnérabilités.
|
||||
|
||||
### Propriétaires (ce que Dockpeek remplace)
|
||||
- **Censys / Shodan** (scans externes payants)
|
||||
- **Portainer Business** (audit réseau partiel)
|
||||
- **Aqua Security** (payant)
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- ⚠️ **Socket Docker monté** : même en `ro`, le socket reste sensible. Privilégier un accès via [[app-docker-socket-proxy-docker|docker-socket-proxy]] qui filtre l'API
|
||||
- **Ne pas exposer Dockpeek sur Internet** : l'UI révèle votre topologie réseau. Restreindre à localhost ou VPN ([[app-wireguard|wireguard]] / [[app-tailnet|tailscale]])
|
||||
- **Activer un reverse-auth** (ex : [[app-authentik|authentik]] ou [[app-authelia|authelia]]) devant l'UI si elle doit être accessible à plusieurs utilisateurs
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub dockpeek/dockpeek](https://github.com/dockpeek/dockpeek)
|
||||
- [Documentation](https://github.com/dockpeek/dockpeek/blob/main/README.md)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-docker]] — Catégorie Docker
|
||||
- [[app-portainer]] / [[app-dockge]] / [[app-yacht]] — GUI Docker
|
||||
- [[app-traefik]] — Reverse-proxy
|
||||
- [[recettes-docker-compose]] — Compose files
|
||||
- [[securisation-home-lab]] — Bonnes pratiques
|
||||
Reference in New Issue
Block a user