--- title: Domain Locker created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, networking, domain-management, dns, whois, portfolio, typescript] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=networking, https://github.com/lissy93/domain-locker] --- # 🌐 Domain Locker > **Portfolio de noms de domaine self-hosted** : centralisez tous vos domaines (tous registrars confondus), surveillez dates d'expiration, certificats SSL, et modifications DNS. L'alternative moderne aux tableurs oubliés et aux emails de rappel perdus. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | [domain-locker.com](https://domain-locker.com) | | **GitHub** | [Lissy93/domain-locker](https://github.com/Lissy93/domain-locker) | | **License** | MIT | | **Langage** | TypeScript (Angular) + Node.js | | **Étoiles** | 1 060 ⭐ | | **Dernière MAJ** | 2026-05-22 | | **Catégorie** | [[cat-networking\|Networking]] | ## Description Domain Locker est un **gestionnaire de portfolio de domaines** auto-hébergé, conçu pour les particuliers et petites organisations qui possèdent des domaines dispersés chez 5, 10, parfois 20 registrars différents (Namecheap, Porkbun, OVH, Gandi, Cloudflare Registrar, GoDaddy…). Le problème classique : on oublie qu'un domaine expire dans 15 jours, on rate la fenêtre de récupération, et un squatter le rafle. Domain Locker résout ça en offrant une **vue unifiée** avec alertes intelligentes. Les fonctionnalités clés : **suivi des dates d'expiration** avec alertes par email/webhook (90, 30, 7, 1 jour(s) avant), **statut WHOIS en temps réel**, **vérification des certificats SSL/TLS** (qui expire ? dans combien de jours ?), **historique des nameservers** (un domaine qui change de NS sans votre accord = compromission), **coût annuel agrégé**, et **notes / tags / catégories** pour organiser le portfolio. L'application supporte plusieurs bases de données (SQLite pour l'homelab, PostgreSQL pour la prod). L'auteur est [[Lissy93]] (Alicia Sykes), prolifique mainteneuse d'outils privacy-first (who-dat, breach-directory, web-check…). Le code est auditable, l'app est concue pour fonctionner sans aucune télémétrie. ## Installation ### Docker Compose (recommandé) ```yaml # docker-compose.yml services: domain-locker: image: lissy93/domain-locker:latest container_name: domain-locker restart: unless-stopped ports: - "8484:8080" environment: - NODE_ENV=production - DB_TYPE=sqlite # ou postgres - DB_PATH=/data/locker.db - SMTP_HOST=smtp.example.com - SMTP_PORT=587 - SMTP_USER=alerts@example.com - SMTP_PASS=*** - SMTP_FROM=Domain Locker - TZ=Europe/Paris volumes: - dl-data:/data volumes: dl-data: ``` ### Avec PostgreSQL (production) ```yaml domain-locker-db: image: postgres:16-alpine container_name: domain-locker-db restart: unless-stopped environment: - POSTGRES_DB=domainlocker - POSTGRES_USER=locker - POSTGRES_PASSWORD=*** volumes: - dl-pgdata:/var/lib/postgresql/data ``` ### Installation manuelle ```bash git clone https://github.com/Lissy93/domain-locker.git cd domain-locker npm ci npm run build npm start # http://localhost:8080 ``` ## Configuration Premier lancement : créer un compte admin, puis ajouter les domaines un par un (FQDN, registrar, date d'expiration, coût annuel, notes). Domain Locker peut **interroger le WHOIS** automatiquement à l'ajout et mettre à jour les champs vides. Alertes configurables dans `Settings → Notifications` : - Email à J-90, J-30, J-7, J-1 - Webhook Discord/Slack/Ntfy - Browser push (PWA) Cron de vérification (par défaut quotidien) : ```yaml # docker-compose, override domain-locker-cron: image: lissy93/domain-locker-cron depends_on: - domain-locker environment: - LOCKER_API_URL=http://domain-locker:8080 - LOCKER_API_KEY=*** ``` ## Alternatives ### Open Source - **DomainMOD** — PHP, plus ancien, plus complexe (vise l'entreprise) - **Domain-Manager (Mike-Amki)** — scripts CLI - **Octopoly / Domstock** — divers forks, faible maintenance - **Vaultwarden + custom field** — pour 1-2 domaines - **handy-man-notes** — tableur self-hosted (sheetable/cellware) - **Netbox** (en partie) — track les DNS records, mais pas l'expiration registrar ### Propriétaire (ce que Domain Locker remplace) - **Domain Monitor (Savy)** — SaaS, 50$/an - **DomainScan** — abandonné - **Spreadsheets manuels** — risques d'oubli, pas d'alerte - **Emails de registrar** — facilement noyés sous le spam - **Hover / Gandi dashboards** — limités à leurs propres TLDs - **Porkbun / Namecheap alerts** — uniquement leurs domaines ## Sécurité - **API keys registrar** : si vous voulez que Domain Locker interroge les APIs (optionnel), stocker les clés de manière chiffrée. Sinon, le WHOIS public suffit pour 90% du suivi. - **HTTPS obligatoire** : l'app révèle vos domaines et leurs coûts. Mettre derrière [[app-caddy]] ou Traefik avec TLS. - **2FA natif** : activer dès la création du compte admin. - **Backup de la base** : `pg_dump` quotidien (si PostgreSQL) ou simple copie du fichier SQLite. - **Rate-limiting WHOIS** : certains TLDs limitent les requêtes ; Domain Locker a un cache mais restez raisonnable. - **Audit des changements DNS** : activez les notifications, ça peut indiquer une compromission. - **Pas d'email d'alerte en clair** : Domain Locker supporte PGP, recommandé si les emails passent par des serveurs tiers. - **Update des deps** : suivre les release GitHub, mise à jour mensuelle conseillée. ## Ressources - [Site officiel](https://domain-locker.com) - [Documentation](https://domain-locker.com/docs) - [GitHub](https://github.com/Lissy93/domain-locker) - [Démo live](https://demo.domain-locker.com) - [Blog de l'auteure](https://aliciasykes.com) ## Pages Liées - [[cat-networking|Networking]] — Catégorie parente - [[cat-dns|DNS]] — Catégorie cousine (résolveurs) - [[app-netbox]] — DCIM / IPAM (vue infrastructure) - [[app-pihole|pi-hole]] ou [[app-adguard-home|AdGuard Home]] — DNS filtrants - [[app-caddy]] — Reverse-proxy TLS - [[recettes-docker-compose|Recettes Docker Compose]] - [[gestion-registrars|Stratégie multi-registrars]]