159 lines
6.2 KiB
Markdown
159 lines
6.2 KiB
Markdown
---
|
|
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 <alerts@example.com>
|
|
- 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]]
|