Blog Projeler Dokümanlar Araçlar Hizmetler Dosyalar Linkler Hakkımda İletişim

Creart-Node.JS-Whois-Software Proje Dokümanı

Markdown olarak görüntüle · Markdown indir

Node.js-based WHOIS lookup software. Developed with Express, it returns domain information in JSON format quickly and reliably. Easy to use.

Proje özeti

Node.js-based WHOIS lookup software. Developed with Express, it returns domain information in JSON format quickly and reliably. Easy to use.

Alan GitHub bilgisi
Depo hamzadenizyilmaz/Creart-Node.JS-Whois-Software
Ana dil JavaScript
Varsayılan dal main
Lisans GPL-3.0
Oluşturulma 2025-10-16
Son kaynak güncellemesi 2025-12-09

Proje README belgesi

Creart-Whois - Comprehensive WHOIS Lookup Platform

Creart-Whois is a modern WHOIS lookup platform for querying domains, IPv4, IPv6, ASN, and CIDR. Powered by Node.js 18+, Next.js 14+, Tailwind CSS, and Framer Motion, it delivers a fast, secure, and extensible solution with a sleek, responsive interface. As the first beta release (v1.2.5-beta), we’re excited to share this with the community and welcome feedback to shape its future!

🚀 Features

🔍 Query Capabilities

  • Domain WHOIS: Detailed registrar, ownership, and name server data.
  • IPv4/IPv6 Lookup: Geolocation, ISP, and security details.
  • ASN Queries: Autonomous System Number details, including provider and routing.
  • CIDR Blocks: Subnet and IP range analysis.
  • DNS Records: Support for A, AAAA, MX, CNAME, TXT, and more.

💻 Technical Highlights

  • Tech Stack: Node.js (backend), Next.js 14+ (frontend), Tailwind CSS, Framer Motion.
  • Real-Time Queries: Optimized for speed with caching support.
  • Responsive UI: Mobile, tablet, and desktop compatibility.
  • RESTful API: Developer-friendly with rate limiting and caching.
  • Security: Helmet, CORS, Joi validation, XSS/SQL injection protection.
  • Performance: SSR/SSG, Gzip/Brotli compression, Redis/node-cache.

🎨 User Experience

  • Modern Design: Glass-morphism, gradients, 60 FPS animations.
  • Dark/Light Mode: Auto-switching themes.
  • Smart Search: Autocomplete, suggestions, and history.
  • Reports: Formatted or raw data views.
  • Accessibility: ARIA-compliant for inclusivity.

📁 Project Structure

Creart-Node.JS-Whois-Software/
├── 📁 backend/                          # Node.js API Server
│   ├── 📁 config/                       # Configuration
│   │   └── constants.js                 # App constants
│   ├── 📁 middleware/                   # Express middleware
│   │   ├── validation.js                # Joi schemas
│   │   ├── rateLimit.js                 # Rate limiting
│   │   ├── errorHandler.js              # Error handling
│   │   ├── cache.js                     # Redis/node-cache
│   │   └── asyncHandler.js              # Async error handler
│   ├── 📁 routes/                       # API routes
│   │   ├── whois.js                     # WHOIS endpoints
│   │   ├── dns.js                       # DNS endpoints
│   │   └── health.js                    # Health checks
│   ├── 📁 utils/                        # Utilities
│   │   ├── whoisParser.js               # WHOIS parser
│   │   ├── ipTools.js                   # IP utilities
│   │   ├── responseFormatter.js         # Response formatting
│   │   ├── database.js                  # DB utilities
│   │   └── cache.js                     # Cache management
│   ├── package.json                     # Dependencies
│   └── server.js                        # Main server
├── 📁 frontend/                         # Next.js Application
│   ├── 📁 components/                   # React components
│   │   ├── 📁 Layout/                   # Layout components
│   │   │   ├── Layout.js                # Main layout
│   │   │   ├── Header.js                # Navigation
│   │   │   └── Footer.js                # Footer
│   │   ├── 📁 Search/                   # Search components
│   │   │   ├── SearchForm.js            # Search form
│   │   │   └── QueryTypes.js            # Query type selector
│   │   ├── 📁 Results/                  # Result components
│   │   │   ├── ResultDisplay.js         # Results view
│   │   │   ├── DomainInfo.js            # Domain display
│   │   │   ├── IPInfo.js                # IP display
│   │   │   └── RawData.js               # Raw data view
│   │   └── 📁 UI/                       # UI components
│   │       ├── Button.js                # Buttons
│   │       ├── Loading.js               # Loading animations
│   │       └── ErrorMessage.js          # Error messages
│   ├── 📁 pages/                        # Next.js pages
│   │   ├── index.js                     # Homepage
│   │   ├── _app.js                      # App wrapper
│   │   └── 📁 api/                      # API routes
│   │       └── hello.js                 # Sample route
│   ├── 📁 styles/                       # Styles
│   │   └── globals.css                  # Global CSS & Tailwind
│   ├── 📁 utils/                        # Frontend utilities
│   │   ├── api.js                       # API calls
│   │   └── formatters.js                # Data formatters
│   ├── public/                          # Static assets
│   ├── next.config.js                   # Next.js config
│   ├── tailwind.config.js               # Tailwind config
│   ├── postcss.config.js                # PostCSS config
│   └── package.json                     # Dependencies
├── 📁 docs/                             # Documentation
├── 📁 scripts/                          # Deployment scripts
├── LICENSE                              # MIT License
└── README.md                            # This file

🛠️ Installation

Prerequisites

  • Node.js: 18.0+
  • npm: 9.0+
  • Git
  • Optional: Docker, Redis, MongoDB

🏃‍♂️ Local Setup

  1. Clone Repository:

    git clone https://github.com/hamzadenizyilmaz/Creart-Node.JS-Whois-Software.git
    cd Creart-Node.JS-Whois-Software
    
  2. Backend Setup:

    cd backend
    npm install
    cp .env.example .env
    

    Edit .env:

    NODE_ENV=development
    PORT=3001
    FRONTEND_URL=http://localhost:3000
    MONGODB_URI=mongodb+srv://test:test@test.mongodb.net/
    RATE_LIMIT_WINDOW_MS=900000
    RATE_LIMIT_MAX_REQUESTS=100
    
  3. Frontend Setup:

    cd frontend
    npm install
    
  4. Run Application:

    • Backend:
      cd backend
      npm start
      
      Output:
      WHOIS API Server Started!
      Port: 3001
      Environment: development
      API URL: http://localhost:3001/api/v1
      Health Check: http://localhost:3001/health
      
    • Frontend:
      cd frontend
      npm run dev
      
      Output:
      ▲ Next.js 14.2.33
      Local: http://localhost:3000
      
  5. Test:

    • Frontend: http://localhost:3000
    • API: http://localhost:3001/api/v1
    • Health Check: http://localhost:3001/health

🌐 Production Deployment

Environment

  • Backend .env:
    NODE_ENV=production
    PORT=3001
    FRONTEND_URL=https://yourdomain.com
    MONGODB_URI=mongodb+srv://test:test@test.mongodb.net/
    RATE_LIMIT_WINDOW_MS=900000
    RATE_LIMIT_MAX_REQUESTS=100
    

Build

  • Backend:
    cd backend
    npm run build
    npm start
    
  • Frontend:
    cd frontend
    npm run build
    npm start
    # Or static export:
    npm run build && npm run export
    

Deployment Options

A) VPS (Ubuntu 20.04+)
ssh user@your-server-ip
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt install nginx -y
sudo npm install -g pm2
git clone https://github.com/hamzadenizyilmaz/Creart-Node.JS-Whois-Software.git
cd Creart-Node.JS-Whois-Software
cd backend
npm install --production
pm2 start server.js --name "whois-backend"
cd ../frontend
npm install --production
npm run build

Nginx Config (/etc/nginx/sites-available/whois-app):

server {
    listen 80;
    server_name api.yourdomain.com;
    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /path/to/Creart-Node.JS-Whois-Software/frontend/out;
    index index.html;
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
    location / {
        try_files $uri $uri/ /index.html;
    }
}
B) Docker

docker-compose.yml:

version: '3.8'
services:
  backend:
    build: ./backend
    ports:
      - "3001:3001"
    environment:
      - NODE_ENV=production
      - MONGODB_URI=mongodb://mongodb:27017/whois-app
      - REDIS_URL=redis://redis:6379
    depends_on:
      - mongodb
      - redis
    volumes:
      - ./backend:/app
      - /app/node_modules
    restart: unless-stopped
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    environment:
      - NEXT_PUBLIC_API_URL=http://localhost:3001
    depends_on:
      - backend
    restart: unless-stopped
  mongodb:
    image: mongo:6.0
    ports:
      - "27017:27017"
    volumes:
      - mongodb_data:/data/db
    restart: unless-stopped
  redis:
    image: redis:7.2-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    restart: unless-stopped
volumes:
  mongodb_data:
  redis_data:

Run:

docker-compose up -d
C) PaaS
  • Vercel (Frontend):
    cd frontend
    npm i -g vercel
    vercel --prod
    
  • Railway/Heroku (Backend):
    cd backend
    railway add
    railway deploy
    

🔧 API Documentation

Base URL

  • Development: http://localhost:3001/api/v1
  • Production: https://api.yourdomain.com/api/v1

Endpoints

🔍 WHOIS Lookup

POST /whois

  • Request:
    { "query": "example.com", "type": "domain" }
    
  • Response:
    {
      "success": true,
      "data": {
        "domainName": "example.com",
        "registrar": "Example Registrar",
        "creationDate": "1995-08-13T00:00:00Z",
        "expiryDate": "2026-08-12T00:00:00Z",
        "nameServers": ["ns1.example.com", "ns2.example.com"],
        "status": "clientTransferProhibited"
      },
      "metadata": { "responseTime": "245ms", "cached": false, "timestamp": "2025-10-22T02:10:00Z" }
    }
    

🌐 DNS Lookup

POST /dns

  • Request:
    { "domain": "example.com", "recordType": "A" }
    
  • Response:
    {
      "success": true,
      "data": { "domain": "example.com", "recordType": "A", "records": ["93.184.216.34"] }
    }
    

📊 Batch Query

POST /whois/batch

  • Request:
    {
      "queries": [
        {"query": "example.com", "type": "domain"},
        {"query": "8.8.8.8", "type": "ipv4"},
        {"query": "AS15169", "type": "asn"}
      ]
    }
    
  • Response:
    { "success": true, "data": [{ "query": "example.com", "type": "domain", "result": {...} }, ...] }
    

❤️ Health Check

GET /health

  • Response:
    { "status": "healthy", "timestamp": "2025-10-22T02:10:00Z", "uptime": 12345.67, "version": "1.2.5-beta" }
    

Query Types

Type Format Example Description
domain FQDN example.com Domain WHOIS info
ipv4 IPv4 Address 8.8.8.8 IPv4 details
ipv6 IPv6 Address 2001:4860:4860::8888 IPv6 details
asn AS Number AS15169 or 15169 ASN info
cidr CIDR Notation 192.168.1.0/24 CIDR block info

🎨 Customization

Theme

Edit frontend/tailwind.config.js:

module.exports = {
  theme: { extend: { colors: { primary: { 500: '#your-custom-color' } } } }
};

Branding

Update frontend/components/Layout/Header.js:

const Header = () => (
  
    
    Your Custom App Name
  
);

New Query Types

  1. Add to backend/config/constants.js (SUPPORTED_QUERY_TYPES).
  2. Create parser in backend/utils/whoisParser.js.
  3. Update UI in frontend/components/Search/QueryTypes.js.

🔒 Security

  • Rate Limiting: Per-IP query limits.
  • CORS: Trusted domains only.
  • Input Validation: Joi schemas.
  • Helmet: Security headers.
  • XSS/SQL Protection: Sanitization and parameterized queries.

📊 Performance

  • Backend: 5-min cache, Gzip/Brotli, connection pooling, cluster mode.
  • Frontend: SSR/SSG, image optimization, code splitting, CDN-ready.

🐛 Troubleshooting

Issues

  1. Backend Failure:
    netstat -tulpn | grep :3001
    pkill -f node
    cd backend && npm start
    
  2. CORS Errors: Check backend/.env:
    FRONTEND_URL=http://localhost:3000
    
  3. Timeouts: Edit backend/utils/whoisParser.js:
    const WHOIS_CONFIG = { timeout: 30000, retries: 3 };
    
  4. Memory Usage:
    pm2 start server.js --name "whois-backend" --max-memory-restart 512M
    

Logs

  • Backend:
    cd backend && npm run dev
    pm2 logs whois-backend
    
  • Frontend:
    cd frontend && npm run build
    # Check browser console (F12)
    

🤝 Contributing

  1. Fork & Clone:
    git clone https://github.com/your-username/Creart-Node.JS-Whois-Software.git
    
  2. Branch:
    git checkout -b feature/your-feature
    
  3. Commit:
    git add .
    git commit -m "feat: your feature description"
    
  4. Push & PR:
    git push origin feature/your-feature
    

Standards

  • ESLint: Airbnb style.
  • Prettier: Code formatting.
  • Commits: Conventional (e.g., feat:, fix:).
  • Tests: Jest.

Testing

cd backend && npm test
cd frontend && npm test
npm run test:e2e

📈 Monitoring

  • Health:
    curl http://localhost:3001/health
    
  • Metrics:
    curl http://localhost:3001/api/v1/stats
    

🔄 Maintenance

  • Updates:
    cd backend && npm update
    cd frontend && npm update
    npm audit fix
    
  • Backup:
    mongodump --uri="mongodb://localhost:27017/whois" --out=./backup/
    cp .env .env.backup
    git tag v1.2.5-beta-backup
    git push --tags
    

📞 Support

📄 License

MIT License

🙏 Acknowledgments

  • WHOIS Protocol (ISC)
  • Node.js, Next.js, Tailwind CSS, Framer Motion

⭐ Star us on GitHub!

Join us to build the future of WHOIS lookups! 🚀

Kaynak ve doğrulama

Bu sayfadaki depo tarihleri ve teknik metadata GitHub public API kaydından alınmıştır. İçeriğin otoritatif ve en güncel sürümü GitHub deposudur.

Creart-Node.JS-Whois-Software Proje Dokümanı — kaynak ve uygulama notları

Proje ve belgeyi birlikte değerlendirin

Bu kayıt için kaynak açıklama korunmuştur. Kurulum, bağımlılık ve lisans kararlarında bu kayda bağlı proje ve dokümanı birlikte inceleyin; doğrulanmamış sürüm, ölçüm veya özellik bu ekle ilan edilmemiştir.

Metinde geçen depo bağlantıları

İlgili okuma yolu