UI & Management

Dockhand

Interface web Docker self-hosted SvelteKit/Bun - gestion conteneurs, stacks, scan Grype/Trivy, OIDC/SSO, agent Hawser. BSL 1.1, Apache 2.0 en 2029.

Dockhand est une interface web de gestion Docker self-hosted construite avec SvelteKit et Bun, orientée sécurité et équipes. Elle intègre nativement le scan de vulnérabilités via Grype ou Trivy sur les images déployées, l'authentification SSO/OIDC et un RBAC optionnel (Enterprise). L'agent Hawser (MIT, écrit en Go) permet de gérer des hôtes Docker distants en initiant des connexions sortantes vers le hub central - aucun port exposé côté agent. Dockhand est sous licence BSL 1.1, qui passe automatiquement sous Apache 2.0 le 1er janvier 2029.


Informations essentielles

Origine : Communauté (Finsys)  ·  Licence : BSL 1.1 (→ Apache 2.0 le 01/01/2029)  ·  Architectures : x86_64, ARM64

Liens : Site officiel  ·  GitHub  ·  Releases

Support : Projet communautaire actif, releases fréquentes depuis fin 2025.

Stack par défaut

ComposantValeur
BackendSvelteKit 2 + Svelte 5 + Bun
Base de donnéesSQLite (défaut) ou PostgreSQL
InterfaceDashboard web
Agent distantHawser - MIT, Go (hôtes Docker remote)
Scan imagesGrype ou Trivy (configurable)
AuthLocal, OIDC/SSO
Port3000 (HTTP)

Prérequis

RessourceValeur
DockerEngine installé
Port3000 (UI)
RAM~100 Mo pour le container Dockhand

Installation

Docker Compose

# docker-compose.yml
services:
  dockhand:
    image: fnsys/dockhand:latest
    container_name: dockhand
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dockhand_data:/app/data
    environment:
      - DOCKHAND_SECRET=changeme-secret-key
      # OIDC (optionnel)
      # - OIDC_ISSUER=https://accounts.google.com
      # - OIDC_CLIENT_ID=xxx
      # - OIDC_CLIENT_SECRET=xxx

volumes:
  dockhand_data:
docker compose up -d

# Accéder à l'UI
# http://localhost:3000

Docker (standalone)

docker run -d \
  --name dockhand \
  --restart always \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v dockhand_data:/app/data \
  -e DOCKHAND_SECRET=changeme \
  fnsys/dockhand:latest

Vérification

docker ps | grep dockhand
curl http://localhost:3000/api/health

Agent Hawser (hôtes distants)

Hawser est l'agent Go (MIT) à déployer sur les hôtes Docker distants. Il initie des connexions sortantes vers le hub Dockhand - aucun port entrant à ouvrir côté agent.

# Sur l'hôte distant
docker run -d \
  --name hawser \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e HAWSER_TOKEN=token-secret \
  -e DOCKHAND_URL=https://dockhand.example.com \
  ghcr.io/finsys/hawser:latest

Dans l'UI Dockhand : SettingsHostsAdd host → entrer le token Hawser généré.


Scan de vulnérabilités

Dockhand peut scanner les images des containers déployés via Grype ou Trivy. La configuration se fait dans les paramètres de l'UI :

# Variables d'environnement
SCANNER=grype          # ou trivy
SCAN_ON_DEPLOY=true    # Scanner automatiquement à chaque déploiement

Les résultats sont affichés dans l'interface par container avec le niveau de sévérité (Critical, High, Medium, Low).


Fonctionnalités principales

FonctionnalitéDescription
Gestion containersStart, stop, restart, remove, logs, exec
Stacks ComposeDéployer et gérer des stacks Docker Compose
ImagesPull, suppression, liste avec tailles
VolumesListe, inspection
RéseauxListe, création
Scan vulnérabilitésVia Grype ou Trivy sur les images
Multi-hôtesGestion via agent Hawser
Auth OIDC/SSOGoogle, Keycloak, Authentik…

Mise à jour

docker compose pull && docker compose up -d

Troubleshooting

# Logs
docker logs dockhand --tail 50

# Vérifier l'accès au socket Docker
docker exec dockhand docker ps

# Réinitialiser les données
docker stop dockhand && docker rm dockhand
docker volume rm dockhand_data
# Relancer

Ressources

Newsletter · 2 000+ abonnés

Reste au courant de ce qui bouge en prod

RudeOps veille devops hebdo, droit au but.

Gratuit · Sans spam · Désinscription en un clic