Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
domain-locker — Zentralisierter Domain-Portfolio-Manager mit automatisch abgerufenen WHOIS-, DNS- und SSL-Daten, Ablaufwarnungen, Uptime-Überwachung und visuellen Analysen. Selbst hostbar mit Docker. | Kitploit
Tools/GitHubGitHub/lissy93/domain-locker
Websicherheit
GitHublissy93/domain-locker

domain-locker

Zentralisierter Domain-Portfolio-Manager mit automatisch abgerufenen WHOIS-, DNS- und SSL-Daten, Ablaufwarnungen, Uptime-Überwachung und visuellen Analysen. Selbst hostbar mit Docker.

Repository anzeigenWebseite
1.5k117vor 6 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Domain Locker

Die zentrale Anlaufstelle für alle deine Domainnamen
🌐domain-locker.com

Inhalt
  • Über
    • Screenshot
    • Funktionen
    • Live-Demo
  • Erste Schritte
    • Domain-Locker.com
    • Selbst hosten
  • Entwicklung
    • Projekt einrichten
    • Architektur
  • Mitwirken
  • Danksagungen
  • Lizenz

Über

Das Ziel von Domain Locker ist es, dir vollständige Transparenz über dein Domain-Portfolio an einem zentralen Ort zu bieten.

Für jede Domain, die du hinzufügst, analysieren wir sie und rufen alle zugehörigen Daten ab. Dann überwachen wir deine Domains kontinuierlich und benachrichtigen dich (gemäß deinen Einstellungen), wenn sich etwas Wichtiges ändert oder bald abläuft. So erhältst du detaillierte Domain-Analysen, Sicherheitseinblicke, Änderungshistorie, aktuelle Leistung, Bewertungsdaten und vieles mehr.

Mit Domain Locker wirst du nie wieder den Überblick über deine Domains verlieren, ein Ablaufdatum verpassen oder vergessen, welchen Registrar und Anbieter jede Domain verwendet.

Screenshot

Weitere Screenshots...

(Entschuldigung für die 5fps, ich wollte die Dateigröße klein halten!)


Funktionen

  • 👁️ Vollständige Transparenz über alle deine Domains und anstehende Ablaufdaten
  • 📡 Automatisch abgerufene Daten: SSL-Zertifikate, Hosts, Registrar, IPs, Subdomains, DNS usw.
  • 🔬 Detaillierte Metriken und Analysen für jede Domain anzeigen
  • 📊 Visuelle Analysen, Aufschlüsselungen und Trends über dein Portfolio
  • 💬 Konfigurierbare Benachrichtigungen und Webhook-Benachrichtigungen
  • 🗃️ Einfacher Import/Export sowie API-Datenzugriff
  • 📜 Änderungen in der Domain-Konfiguration im Laufe der Zeit verfolgen
  • 📈 Überwache Website-Gesundheit, Sicherheit und Leistung
  • 💹 Kaufpreise und Verlängerungskosten festhalten
  • 🔖 Kategorien hinzufügen und verwandte Ressourcen mit Domains verknüpfen
  • 🎨 Mehrsprachige Unterstützung, Dunkel-/Hell-/Benutzerdefinierte Designs
Weitere Funktionen...```mermaid %%{init: {"theme": "default"}}%% kanban 🌐 Domain Data 🛰️ Auto-fetch assets: SSL, hosts, registrars, IPs, DNS, subdomains 🔎 Detailed domain data like SSL, hosts, registrars, IPs and more 🏷️ Enrich data with tags, notes, costs, and other metadata to track 🖇️ Connection with external tools for more data 📊 Metrics 🗂️ Breakdown of domain providers: registrars, SSL, hosts 🕒 Timeline of registrations and upcoming expirations 📶 Monitor domain uptime, performance and health 💹 Record valuation, purchase prices and renewal costs 🔔 Notifications ⏱️ Get notified before your domain is due to expire 📲 Configurable alerts for monitoring changes in domain config 📬 Multiple channels: webhook, email, SMS, Slack, Telegram, WhatsApp and more 🛤️ Track change history of each domain 🛡️ Data 💽 Own your data: Export, import, delte at any time ⌨️ Programatic access via a REST or GraphQL API, or with RSS, iCal, Prometheus integrations 📈 Keep detailed change logs of all domain updates 🔐 Transparent privacy policy 🛠️ Customization 👤 SSO and 2FA supported 🎨 Custom themes, fonts, light/dark mode 🌍 Multi-language support 💻 Open-source and self-hostable ✅ Accessible, responsive, and well-documented ```

Demo

Probieren Sie die Live-Demo unter demo.domain-locker.com
(Benutzername: [email protected] Passwort: domainlocker)


Erste Schritte

Um Domain Locker zu nutzen, haben Sie zwei Optionen:

  1. 💻 Die verwaltete Instanz unter domain-locker.com (kostenlos)
  2. 🏗️ Oder Self-Hosting via Docker (ebenfalls kostenlos, natürlich!)

Option 1: Domain-Locker.com

Gehen Sie zu unserer Website und melden Sie sich mit Google, GitHub oder Ihrer E-Mail an.
Der Starter-Plan ist kostenlos und erfordert keine Einrichtung. Melden Sie sich einfach an, fügen Sie Ihre Domains hinzu und beginnen Sie mit der Verfolgung.

Option 2: Self-Hosting```bash

curl -fsSL https://install.domain-locker.com | bash

root@kitploit:~
Verwenden Sie den obigen Einzeiler oder nutzen Sie die [`docker-compose.yml`](https://github.com/Lissy93/domain-locker/blob/main/docker-compose.yml)

<details>
	<summary>Details</summary>

 
- **Voraussetzungen**:
  - Domain Locker ist für den Betrieb in einem Container vorgesehen, daher benötigen Sie Docker, das auf Ihrem Host-System [installiert](https://docs.docker.com/engine/install/) ist.
- **Container**:
  - Wir haben ein Docker-Image unter [`lissy93/domain-locker`](https://hub.docker.com/r/lissy93/domain-locker) veröffentlicht.
  - Sie benötigen außerdem eine Postgres-Datenbank, z. B. den Container [`postgres:15-alpine`](https://hub.docker.com/_/postgres?tab=tags&name=15-alpine).
- **Umgebung**:
  - Beim Starten des Containers binden Sie `3000` im Container an Ihren Host-`PORT` (Standard: `3000`).
  - Geben Sie dann die Postgres-Variablen an: `DL_PG_HOST`, `DL_PG_PORT`, `DL_PG_USER`, `DL_PG_PASSWORD` und `DL_PG_NAME`.
- **Volumes**:
  - Mounten Sie ein Volume auf `/var/lib/postgresql/data`, um Ihre Postgres-Daten dauerhaft zu speichern.
- **Crons**:
  - `/api/domain-updater` – Führen Sie dies täglich aus, um die Domaindaten aktuell zu halten und Benachrichtigungen auszulösen.
  - `/api/domain-monitor` – Führen Sie dies alle 15 Minuten aus, um die Verfügbarkeit und Leistung der Website zu überwachen.
  - `/api/cleanup-monitor-data` – Führen Sie dies wöchentlich aus, um alte Überwachungsdaten zu aggregieren.

- **Beispiel**:
  - Alles zusammen: Sie können unsere [`docker-compose.yml`](https://github.com/Lissy93/domain-locker/blob/main/docker-compose.yml)-Datei verwenden.
  - Weitere Details finden Sie in der [Self-Hosting-Dokumentation](https://domain-locker.com/about/self-hosting).


<details>
<summary>Docker-Diagramm</summary>```mermaid
flowchart TB
  subgraph Volume Mounts
    direction TB
    Vpostgresdata([📦 postgres_data]) x-. /var/lib/postgresql/data .-x postgres[(🐘 PostgreSQL DB)]
    Vdbschemasql{{📄 ./db/schema.sql}} -. Mounted on Init .-> postgres
  end

  subgraph Network
    direction TB
    domainlockernetwork[/🌐 domain_locker_network/]
  end

  postgres -.- domainlockernetwork

  subgraph app[⚙️ App Container]
    SSR[HTTP Server]
    CLIENT[Client App]
    API[API Endpoints]
    SSR --> CLIENT
    SSR --> API
  end

  app -.- domainlockernetwork

Option 3: Inoffizielle Apps

  • ArtifactHub
  • DockerHub
  • Umbrel
  • Supabase
  • Proxmox
  • TrueNAS
  • EasyPanel (Ausstehend)
  • Unraid

Entwicklung

Projekt-Setup```bash

git clone [email protected]:Lissy93/domain-locker.git # Get the code cd domain-locker # Navigate into directory npm install --legacy-peer-deps # Install dependencies cp .env.example .env # Set environmental variables npm run dev # Start the dev server

root@kitploit:~
- **Voraussetzungen**
  - Sie benötigen Git und Node auf Ihrem System installiert.
- **Konfiguration**
  - Die Beispiel-Datei `.env.sample` enthält die öffentlichen Anmeldeinformationen für unsere Supabase-Entwicklungsinstanz.
  - Um eine alternative Datenbank zu verwenden, lesen Sie den Abschnitt [Datenbank](#database) weiter unten zur Konfiguration mit Postgres.
- **Bereitstellung**
  - Sie können den Code mit `npm run build` erstellen und dann mit `npm start` ausführen.
  - Oder mit Docker, indem Sie den Container mit `docker build -t domain-locker .` erstellen.
  - Verwenden Sie die Entwicklungs-Supabase-Instanz nicht in der Produktion, da sie häufig zurückgesetzt wird.

---

## App-Architektur

#### Technologie-Stack

Domain Locker besteht aus einer Anwendung, einer Datenbank und einigen API-Endpunkten.
- **Die App** ist mit Angular erstellt, unter Verwendung von Analog+Nitro mit PrimeNg-Komponenten und Tailwind für das Styling.
- **Der Server** ist eine Reihe von Deno-Endpunkten mit TypeScript-Funktionen.
- **Die Datenbank** kann entweder Postgres oder Supabase sein.

Während die selbst gehostete Instanz als eigenständige Bereitstellung gedacht ist, hängt die verwaltete Version jedoch von einigen zusätzlichen Drittanbieterdiensten ab, die Sie unten sehen können; [die Dokumentation dazu finden Sie hier](https://domain-locker.com/about/developing/third-party-docs).

<details>
<summary>Warum</summary>
Warum Angular? Als eine Art kranker Scherz für mein zukünftiges Ich, das dies dann warten muss.
</details>


<p align="center">
<img width="800" src="https://assets.kitploit.com/production/public/readmes/264/1449d16cb6a07bd766d3b86a8de608aaa4075270a0a634cd6f6af1f1a1d70c49.png" />
<br>
<span>Sie können die Dokumentation für die verwendeten Technologien und Dienste <a href="https://domain-locker.com/about/developing/third-party-docs">hier</a> einsehen</span>
</p>


#### Architektur

Die Architektur ist recht einfach.
Wir haben eine App (bestehend aus einem Frontend und API-Endpunkten), in der der Benutzer Daten aus der Datenbank lesen und in sie schreiben kann (über Adapter). Ein Cron-Dienst ruft dann regelmäßig API-Endpunkte auf, um Domain-Daten aktuell zu halten, Änderungen zu verfolgen, den Zustand zu überwachen und bei bestimmten Änderungen (gemäß Benutzereinstellungen) oder vor einem bevorstehenden Ablauf Benachrichtigungen auszulösen.```mermaid
graph TD;
    subgraph User Interactions
        User[👤 User] -->|Enter domain| WebApp[🌐 Frontend];
        WebApp -->|Send API request| API[⚙️ Nitro API];
        API -->|Auth Check| Auth[🔐 Auth Service];
        API -->|Store domain info| Database[🗄️ PostgreSQL / Supabase];
    end

    subgraph Automated Cron Jobs
        CronService[⏳ Cron Service] -->|Trigger Updates| EdgeFunctions[⚡ Edge Functions];
        EdgeFunctions -->|Fetch WHOIS, DNS, SSL| ExternalAPIs[🌎 Analysis Services];
        EdgeFunctions -->|Store Data| Database;
        
        CronService -->|Monitor Uptime| WebsiteMonitor[📡 Uptime Monitor];
        WebsiteMonitor -->|Store Metrics| Database;

        CronService -->|Check Expirations| ExpiryChecker[📆 Expiration Check];
        ExpiryChecker -->|Update Status| Database;
        
        CronService -->|Send Notifications| NotificationService[🔔 Notification System];
        NotificationService -->|Email| Resend[📧 Resend];
        NotificationService -->|SMS| Twilio[📱 Twilio];
    end

    Database -->|Serve Data| WebApp;

Datenbank

Eine Datenbank ist erforderlich, um alle Ihre Domains und zugehörigen Informationen zu speichern. Domain Locker unterstützt sowohl Supabase als auch standardmäßiges Postgres zum Speichern von Daten. Die verwendete Datenbank hängt davon ab, welche Umgebungsvariablen gesetzt sind.

  • Supabase: Folgen Sie der Supabase Self-Hosting-Dokumentation, verwenden Sie dann dl-sb-iac, um das Schema zu importieren und Authentifizierung, Edge-Funktionen, E-Mails usw. zu konfigurieren.

    • Setzen Sie dann: SUPABASE_URL und SUPABASE_ANON_KEY als Umgebungsvariablen
  • Postgres: Stellen Sie eine Postgres-Instanz bereit und wenden Sie dann das schema.sql an.

    • Wenn die Datenbank bereits existiert: psql -h $DL_PG_HOST -U $DL_PG_USER -d $DL_PG_NAME -f ./db/schema.sql
    • Bei der Erstellung von Grund auf: Verwenden Sie setup-postgres.sh (erfordert Superuser-Zugriff)
    • Setzen Sie dann: DL_PG_HOST, DL_PG_PORT, DL_PG_USER, DL_PG_PASSWORD, `DL_PG_NAME````mermaid classDiagram class users { uuid id text email timestamp created_at timestamp updated_at }
root@kitploit:~
<p align="center"><sub>Sie können das Schema herunterladen von <a href="https://github.com/Lissy93/domain-locker/blob/main/db/schema.sql"<code>db/schema.sql</code></a></sub></p>

---

### Mitwirken

Beiträge jeglicher Art sind jederzeit willkommen und sehr geschätzt! 💗

Wenn Sie neu bei Git sind, ist der allgemeine Ablauf für Beiträge wie folgt:
- Forken Sie das Repository, indem Sie [hier klicken](https://github.com/lissy93/domain-locker/fork)
- Klonen Sie Ihren Fork (mit `git clone [email protected]:[Ihr_Benutzername]/domain-locker.git`)
- Folgen Sie der [Projekt-Einrichtung](#project-setup) oben, um das Projekt im Entwicklungsmodus zum Laufen zu bringen
- Implementieren Sie Ihre großartige neue Funktion oder Ihren erstaunlichen Bugfix...
- Wechseln Sie zu einem Branch mit `git checkout -b feature-branch`, dann `git add` Sie Ihre Änderungen und `git commit` Sie mit konventionellen Commits, bevor Sie mit `git push` auf Ihren Branch pushen
- Gehen Sie zurück zu GitHub und öffnen Sie dann einen PR gegen unseren `main`-Branch. Vergessen Sie nicht, anzugeben, was Sie geändert haben, warum und verlinken Sie zugehörige Issues.
- Wir werden dann überprüfen, Feedback geben und zusammenführen. Sobald die Änderungen veröffentlicht sind, werden sie in der Produktion live gehen und auch im neuesten Docker-Image verfügbar sein.

<details>
	<summary>Git Branch Beispiel</summary>```mermaid
%%{init: {"theme": "default"}}%%
gitGraph
    commit id: "Initial commit"
    branch trunk
    commit id: "Feature A"
    commit id: "Feature B"
    commit id: "v1.0.0 (Tag)"
    branch demo
    checkout main
    commit id: "Feature C"
    commit id: "v1.1.0 (Tag)"
    checkout demo
    merge main id: "Merge main into demo"
    checkout main
    commit id: "Feature D"
    commit id: "v1.2.0 (Tag)"
    checkout demo
    merge main id: "Merge main into demo (v1.2.0)"
    checkout main
    branch feature-branch-1
    commit id: "Contributor Feature 1"
    checkout main
    merge feature-branch-1 id: "Merge contributor feature 1"
    commit id: "v1.3.0 (Tag)"
    checkout demo
    merge main id: "Merge main into demo (v1.3.0)"
    checkout main
    branch feature-branch-2
    commit id: "Contributor Feature 2"
    checkout main
    merge feature-branch-2 id: "Merge contributor feature 2"
    commit id: "v1.4.0 (Tag)"
    checkout demo
    merge main id: "Merge main into demo (v1.4.0)"

Namensnennungen

Mitwirkende

contributors

Sponsoren

sponsors


Lizenz

Lissy93/Domain-Locker ist lizenziert unter MIT © Alicia Sykes 2025.
Für Informationen, siehe TLDR Legal > MIT

Lizenz erweitern``` The MIT License (MIT) Copyright (c) Alicia Sykes

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub-license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included install copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

root@kitploit:~
</details>

<!-- License + Copyright -->
<p  align="center">
  <i>© <a href="https://aliciasykes.com">Alicia Sykes</a> 2025</i><br>
  <i>Lizenziert unter <a href="https://gist.github.com/Lissy93/143d2ee01ccc5c052a17">MIT</a></i><br>
  <a href="https://github.com/lissy93"><img src="https://assets.kitploit.com/production/public/readmes/264/2dd6b50bb46f34f56ce0166642faf6ef16cd4102cd8a3805f1be707c9f7c0a3d.png" /></a><br>
  <sup>Danke fürs Vorbeischauen :)</sup>
</p>

<!-- Dinosaurier sind großartig -->
<!-- 
                        . - ~ ~ ~ ~ - .
      ..     _      .-~                 ~-.
     //|     \ `..~                        `.
    || |      }  }                /       \  \
(\   \\ \~^..'                   |         }  \
 \`.-~  o      /       }         |        /    \
 (__          |       /          |       /      `.
  `- - ~ ~ -._|      /_ - ~ ~ ~ ^|      /- _      `.
              |     /            |     /     ~-.     ~- _
              |_____|            |_____|         ~ - . _ _~_-_
-->
Tool herunterladen
(Geplant)

class domains { uuid id uuid user_id text domain_name date expiry_date text notes timestamp created_at timestamp updated_at uuid registrar_id timestamp registration_date timestamp updated_date }

class registrars { uuid id text name text url uuid user_id }

class tags { uuid id text name text color text description text icon uuid user_id }

class domain_tags { uuid domain_id uuid tag_id }

class notifications { uuid id uuid user_id uuid domain_id text change_type text message boolean sent boolean read timestamp created_at }

class billing { uuid id uuid user_id text current_plan timestamp next_payment_due text billing_method timestamp created_at timestamp updated_at jsonb meta }

class dns_records { uuid id uuid domain_id text record_type text record_value timestamp created_at timestamp updated_at }

class domain_costings { uuid id uuid domain_id numeric purchase_price numeric current_value numeric renewal_cost boolean auto_renew timestamp created_at timestamp updated_at }

class domain_hosts { uuid domain_id uuid host_id }

class domain_links { uuid id uuid domain_id text link_name text link_url timestamp created_at timestamp updated_at text link_description }

class domain_statuses { uuid id uuid domain_id text status_code timestamp created_at }

class domain_updates { uuid id uuid domain_id uuid user_id text change text change_type text old_value text new_value timestamp date }

class uptime { uuid id uuid domain_id timestamp checked_at boolean is_up integer response_code numeric response_time_ms numeric dns_lookup_time_ms numeric ssl_handshake_time_ms timestamp created_at }

class ssl_certificates { uuid id uuid domain_id text issuer text issuer_country text subject date valid_from date valid_to text fingerprint integer key_size text signature_algorithm timestamp created_at timestamp updated_at }

class whois_info { uuid id uuid domain_id text country text state text name text organization text street text city text postal_code }

class user_info { uuid id uuid user_id jsonb notification_channels timestamp created_at timestamp updated_at text current_plan }

class hosts { uuid id inet ip numeric lat numeric lon text isp text org text as_number text city text region text country uuid user_id }

class ip_addresses { uuid id uuid domain_id inet ip_address boolean is_ipv6 timestamp created_at timestamp updated_at }

class notification_preferences { uuid id uuid domain_id text notification_type boolean is_enabled timestamp created_at timestamp updated_at }

class sub_domains { uuid id uuid domain_id text name timestamp created_at timestamp updated_at jsonb sd_info }

users --> domains : user_id registrars --> domains : registrar_id users --> registrars : user_id users --> tags : user_id domains --> domain_tags : domain_id tags --> domain_tags : tag_id users --> notifications : user_id domains --> notifications : domain_id users --> billing : user_id domains --> dns_records : domain_id domains --> domain_costings : domain_id domains --> domain_hosts : domain_id hosts --> domain_hosts : host_id domains --> domain_links : domain_id domains --> domain_statuses : domain_id domains --> domain_updates : domain_id users --> domain_updates : user_id domains --> uptime : domain_id domains --> ssl_certificates : domain_id domains --> whois_info : domain_id users --> user_info : user_id users --> hosts : user_id domains --> ip_addresses : domain_id domains --> notification_preferences : domain_id domains --> sub_domains : domain_id