Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
domain-locker — Gerenciador centralizado de portfólio de domínios com dados WHOIS, DNS e SSL buscados automaticamente, alertas de vencimento, monitoramento de tempo de atividade e análises visuais. Auto-hospedável com Docker. | Kitploit
Ferramentas/GitHubGitHub/lissy93/domain-locker
Segurança Web
GitHublissy93/domain-locker

domain-locker

Gerenciador centralizado de portfólio de domínios com dados WHOIS, DNS e SSL buscados automaticamente, alertas de vencimento, monitoramento de tempo de atividade e análises visuais. Auto-hospedável com Docker.

Ver RepositórioSite
1.5k117há 6 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Domain Locker

O Centro Central para todos os seus Nomes de Domínio
🌐domain-locker.com

Conteúdo
  • Sobre
    • Captura de Tela
    • Recursos
    • Demonstração ao Vivo
  • Começar
    • Domain-Locker.com
    • Auto-hospedagem
  • Desenvolvimento
    • Configuração do App
    • Arquitetura
  • Contribuindo
  • Atribuições
  • Licença

Sobre

O objetivo do Domain Locker é fornecer visibilidade completa do seu portfólio de nomes de domínio, em um único local central.

Para cada domínio que você adiciona, analisamos e buscamos todos os dados associados. Em seguida, monitoramos continuamente seus domínios e notificamos você (de acordo com suas preferências) quando algo importante muda ou quando está próximo de expirar. Assim, você obterá análise detalhada do domínio, insights de segurança, histórico de alterações, desempenho recente, dados de avaliação e muito mais.

Com o Domain Locker, você nunca mais perderá o controle de seus domínios, perderá uma expiração ou esquecerá qual registrador e provedores cada domínio utiliza.

Captura de Tela

Mais capturas de tela...

(Desculpe pelos 5 fps, queria manter o tamanho do arquivo baixo!)


Recursos

  • 👁️ Visibilidade total de todos os seus domínios e próximas expirações
  • 📡 Dados obtidos automaticamente: certificados SSL, hosts, registradores, IPs, subdomínios, DNS, etc
  • 🔬 Veja métricas e análises detalhadas para cada domínio
  • 📊 Análises visuais, detalhamentos e tendências em todo o seu portfólio
  • 💬 Alertas configuráveis e notificações via webhook
  • 🗃️ Importação/exportação fácil, além de acesso a dados via API
  • 📜 Acompanhe mudanças na configuração do domínio ao longo do tempo
  • 📈 Monitore a saúde, segurança e desempenho do site
  • 💹 Mantenha registro dos preços de compra e custos de renovação
  • 🔖 Adicione categorias e vincule recursos relacionados aos domínios
  • 🎨 Suporte a vários idiomas, temas escuro/claro/personalizados
Mais recursos...```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 ```

Demonstração

Experimente a demonstração ao vivo em demo.domain-locker.com
(Usuário: [email protected] Senha: domainlocker)


Comece Agora

Para usar o Domain Locker, você tem duas opções:

  1. 💻 A instância gerenciada, em domain-locker.com (grátis)
  2. 🏗️ Ou auto-hospedagem via Docker (também grátis, claro!)

Opção 1: Domain-Locker.com

Acesse nosso site e cadastre-se com Google, GitHub ou seu e-mail.
O plano inicial é gratuito e nenhuma configuração é necessária. Basta fazer login, adicionar seus domínios e começar a monitorá-los.

Opção 2: Auto-Hospedagem```bash

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

root@kitploit:~
Use o one-liner acima ou use o [`docker-compose.yml`](https://github.com/Lissy93/domain-locker/blob/main/docker-compose.yml)

<details>
	<summary>Detalhes</summary>

 
- **Pré-requisitos**:
  - O Domain Locker é projetado para ser executado em um contêiner, portanto você precisará ter o Docker [instalado](https://docs.docker.com/engine/install/) em seu sistema host.
- **Contêineres**:
  - Temos uma imagem Docker publicada em [`lissy93/domain-locker`](https://hub.docker.com/r/lissy93/domain-locker).
  - Você também precisará de um banco de dados Postgres, como o contêiner [`postgres:15-alpine`](https://hub.docker.com/_/postgres?tab=tags&name=15-alpine).
- **Ambiente**:
  - Ao iniciar o contêiner, vincule `3000` no contêiner à sua `PORT` do host (padrão `3000`).
  - Em seguida, especifique as variáveis do Postgres: `DL_PG_HOST`, `DL_PG_PORT`, `DL_PG_USER`, `DL_PG_PASSWORD` e `DL_PG_NAME`.
- **Volumes**:
  - Monte um volume em `/var/lib/postgresql/data` para persistir seus dados Postgres
- **Crons**
  - `/api/domain-updater` - Execute isso diariamente para manter os dados de domínio atualizados e disparar notificações
  - `/api/domain-monitor` - Execute isso a cada 15 minutos para monitorar o tempo de atividade e desempenho do site
  - `/api/cleanup-monitor-data` - Execute isso semanalmente para agregar dados antigos de monitoramento

- **Exemplo**:
  - Juntando tudo, você pode usar nosso arquivo [`docker-compose.yml`](https://github.com/Lissy93/domain-locker/blob/main/docker-compose.yml).
  - Para mais detalhes, veja a [Documentação de Autohospedagem](https://domain-locker.com/about/self-hosting)


<details>
<summary>Diagrama Docker</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

Opção 3: Aplicativos Não Oficiais

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

Desenvolvimento

Configuração do Projeto```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:~
- **Pré-requisitos**
  - Você precisará do Git e do Node instalados no seu sistema.
- **Configuração**
  - O arquivo de exemplo `.env.sample` inclui as credenciais públicas para nossa instância de desenvolvimento do Supabase
  - Para usar um banco de dados alternativo, veja a seção [Banco de Dados](#database) abaixo para configurar com Postgres
- **Implantação**
  - Você pode compilar o código com `npm run build` e depois executar com `npm start`
  - Ou, com Docker, construir o contêiner com `docker build -t domain-locker .`
  - Não use a instância de desenvolvimento do Supabase em produção, pois ela é frequentemente limpa

---

## Arquitetura do App

#### Pilha Tecnológica

O Domain Locker é composto por um aplicativo, um banco de dados e alguns endpoints de API.
- **O aplicativo** é construído com Angular, usando Analog+Nitro com componentes PrimeNg, e Tailwind para estilização
- **O servidor** é uma série de endpoints Deno com funções TypeScript
- **O banco de dados** pode ser Postgres ou Supabase

Embora a instância auto-hospedada seja destinada a ser implantada de forma independente, a versão gerenciada depende de alguns serviços adicionais de terceiros, que você pode ver abaixo, [cuja documentação está aqui](https://domain-locker.com/about/developing/third-party-docs).

<details>
<summary>Por quê</summary>
Por que Angular? Como uma piada de mau gosto para o eu do futuro, que então precisa manter isso.
</details>


<p align="center">
<img width="800" src="https://assets.kitploit.com/production/public/readmes/264/1449d16cb6a07bd766d3b86a8de608aaa4075270a0a634cd6f6af1f1a1d70c49.png" />
<br>
<span>Você pode ver a documentação das tecnologias e serviços usados <a href="https://domain-locker.com/about/developing/third-party-docs">aqui</a></span>
</p>


#### Arquitetura

A arquitetura é bastante simples.
Temos um aplicativo (composto por um frontend e endpoints de API), onde o usuário pode ler e escrever no banco de dados (através de adapters). Em seguida, um serviço cron chamará periodicamente os endpoints da API para manter os dados do domínio atualizados, rastrear alterações, monitorar a saúde e disparar notificações em certas alterações (de acordo com a preferência do usuário) ou antes de uma expiração iminente.```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;

Database

É necessário um banco de dados para armazenar todos os seus domínios e informações associadas. O Domain Locker oferece suporte tanto ao Supabase quanto ao Postgres padrão para armazenar dados. O banco de dados usado dependerá de quais variáveis de ambiente estão definidas.

  • Supabase: Siga a documentação de self-hosting do Supabase (https://supabase.com/docs/guides/self-hosting), depois use dl-sb-iac para importar o esquema e configurar autenticação, edge functions, e-mails, etc.

    • Em seguida, defina as variáveis de ambiente: SUPABASE_URL e SUPABASE_ANON_KEY
  • Postgres: Implante uma instância Postgres e aplique o schema.sql

    • Se o banco já existir: psql -h $DL_PG_HOST -U $DL_PG_USER -d $DL_PG_NAME -f ./db/schema.sql
    • Se criar do zero: Use setup-postgres.sh (requer acesso de superusuário)
    • Em seguida, defina: 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>Pode descarregar o esquema de <a href="https://github.com/Lissy93/domain-locker/blob/main/db/schema.sql"><code>db/schema.sql</code></a></sub></p>

---

### Contribuir

Contribuições, de qualquer tipo, são sempre bem-vindas e muito apreciadas! 💗

Se é novo no Git, o fluxo geral para contribuir é o seguinte:
- Faça um fork do repositório, [clicando aqui](https://github.com/lissy93/domain-locker/fork)
- Clone o seu fork (com `git clone [email protected]:[your_username]/domain-locker.git`)
- Siga a [Configuração do Projeto](#project-setup) acima, para colocar o projeto em modo de desenvolvimento
- Implemente a sua nova funcionalidade fantástica ou correção de bug incrível...
- Crie uma branch, com `git checkout -b feature-branch`, depois `git add` as suas alterações e `git commit` usando commits convencionais, antes de `git push` para a sua branch
- Volte ao GitHub e abra um PR contra a nossa branch `main`. Não se esqueça de incluir o que alterou, porquê e ligação a quaisquer problemas associados.
- Depois, iremos rever, dar feedback e fundir, e uma vez lançadas, as suas alterações irão para produção, bem como estarão disponíveis na imagem Docker mais recente.

<details>
	<summary>Exemplo de Branch Git</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)"

Atribuições

Contribuidores

contribuidores

Patrocinadores

patrocinadores


Licença

Lissy93/Domain-Locker é licenciado sob MIT © Alicia Sykes 2025.
Para informações, consulte TLDR Legal > MIT

Expandir Licença``` 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>

<!-- Licença + Direitos Autorais -->
<p  align="center">
  <i>© <a href="https://aliciasykes.com">Alicia Sykes</a> 2025</i><br>
  <i>Licenciado sob <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>Obrigado pela visita :)</sup>
</p>

<!-- Dinossauros são Incríveis -->
<!-- 
                        . - ~ ~ ~ ~ - .
      ..     _      .-~                 ~-.
     //|     \ `..~                        `.
    || |      }  }                /       \  \
(\   \\ \~^..'                   |         }  \
 \`.-~  o      /       }         |        /    \
 (__          |       /          |       /      `.
  `- - ~ ~ -._|      /_ - ~ ~ ~ ^|      /- _      `.
              |     /            |     /     ~-.     ~- _
              |_____|            |_____|         ~ - . _ _~_-_
-->
Baixar ferramenta
(Planejado)

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