## Watchlist & Monitoring - ✅ Automatic domain monitoring based on subscription tier - ✅ Email alerts when domains become available - ✅ Health checks (DNS/HTTP/SSL) with caching - ✅ Expiry warnings for domains <30 days - ✅ Weekly digest emails - ✅ Instant alert toggle (optimistic UI updates) - ✅ Redesigned health check overlays with full details - 🔒 'Not public' display for .ch/.de domains without public expiry ## Portfolio Management (NEW) - ✅ Track owned domains with purchase price & date - ✅ ROI calculation (unrealized & realized) - ✅ Domain valuation with auto-refresh - ✅ Renewal date tracking - ✅ Sale recording with profit calculation - ✅ List domains for sale directly from portfolio - ✅ Full portfolio summary dashboard ## Listings / For Sale - ✅ Renamed from 'Portfolio' to 'For Sale' - ✅ Fixed listing limits: Scout=0, Trader=5, Tycoon=50 - ✅ Featured badge for Tycoon listings - ✅ Inquiries modal for sellers - ✅ Email notifications when buyer inquires - ✅ Inquiries column in listings table ## Scrapers & Data - ✅ Added 4 new registrar scrapers (Namecheap, Cloudflare, GoDaddy, Dynadot) - ✅ Increased scraping frequency to 2x daily (03:00 & 15:00 UTC) - ✅ Real historical data from database - ✅ Fixed RDAP/WHOIS for .ch/.de domains - ✅ Enhanced SSL certificate parsing ## Scheduler Jobs - ✅ Tiered domain checks (Scout=daily, Trader=hourly, Tycoon=10min) - ✅ Daily health checks (06:00 UTC) - ✅ Weekly expiry warnings (Mon 08:00 UTC) - ✅ Weekly digest emails (Sun 10:00 UTC) - ✅ Auction cleanup every 15 minutes ## UI/UX Improvements - ✅ Removed 'Back' buttons from Intel pages - ✅ Redesigned Radar page to match Market/Intel design - ✅ Less prominent check frequency footer - ✅ Consistent StatCard components across all pages - ✅ Ambient background glows - ✅ Better error handling ## Documentation - ✅ Updated README with monitoring section - ✅ Added env.example with all required variables - ✅ Updated Memory Bank (activeContext.md) - ✅ SMTP configuration requirements documented
87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
reactStrictMode: true,
|
|
// output: 'standalone', // Only needed for Docker deployment
|
|
|
|
// Redirects from old routes to new Terminal routes
|
|
async redirects() {
|
|
return [
|
|
// Old Command Center routes
|
|
{
|
|
source: '/command',
|
|
destination: '/terminal/radar',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/command/:path*',
|
|
destination: '/terminal/:path*',
|
|
permanent: true,
|
|
},
|
|
// Dashboard → RADAR
|
|
{
|
|
source: '/terminal/dashboard',
|
|
destination: '/terminal/radar',
|
|
permanent: true,
|
|
},
|
|
// Pricing → INTEL
|
|
{
|
|
source: '/terminal/pricing',
|
|
destination: '/terminal/intel',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/terminal/pricing/:tld*',
|
|
destination: '/terminal/intel/:tld*',
|
|
permanent: true,
|
|
},
|
|
// Listings → LISTING
|
|
{
|
|
source: '/terminal/listings',
|
|
destination: '/terminal/listing',
|
|
permanent: true,
|
|
},
|
|
// Auctions & Marketplace → MARKET
|
|
{
|
|
source: '/terminal/auctions',
|
|
destination: '/terminal/market',
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: '/terminal/marketplace',
|
|
destination: '/terminal/market',
|
|
permanent: true,
|
|
},
|
|
// Portfolio is now a separate page (not redirected anymore)
|
|
// Alerts → RADAR (will be integrated)
|
|
{
|
|
source: '/terminal/alerts',
|
|
destination: '/terminal/radar',
|
|
permanent: true,
|
|
},
|
|
// SEO → RADAR (premium feature, hidden for now)
|
|
{
|
|
source: '/terminal/seo',
|
|
destination: '/terminal/radar',
|
|
permanent: true,
|
|
},
|
|
]
|
|
},
|
|
|
|
// Proxy API requests to backend
|
|
// This ensures /api/v1/* works regardless of how the server is accessed
|
|
async rewrites() {
|
|
// Determine backend URL based on environment
|
|
const backendUrl = process.env.BACKEND_URL || 'http://127.0.0.1:8000'
|
|
|
|
return [
|
|
{
|
|
source: '/api/v1/:path*',
|
|
destination: `${backendUrl}/api/v1/:path*`,
|
|
},
|
|
]
|
|
},
|
|
}
|
|
|
|
module.exports = nextConfig
|
|
|