---
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]]
