Ctrl K
ComunidadGuías…

docs/customization/configuration.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Configuration Reference

Complete list of environment variables for DOMINUS. All variables are read
from the environment (`.env` file or process env).

## Core

| Variable        | Default             | Required | Description                                                                  |
| --------------- | ------------------- | -------- | ---------------------------------------------------------------------------- |
| `DATABASE_PATH` | `./data/dominus.db` | No       | SQLite database file path                                                    |
| `PORT`          | `3000`              | No       | HTTP server port                                                             |
| `HOST`          | `127.0.0.1`         | No       | Network interface to bind                                                    |
| `LOG_LEVEL`     | `info`              | No       | Pino log level: `fatal`, `error`, `warn`, `info`, `debug`, `trace`, `silent` |
| `LOG_PRETTY`    | `false`             | No       | Pretty-print logs (development)                                              |

## Data Sources

| Variable            | Default | Description                                |
| ------------------- | ------- | ------------------------------------------ |
| `KEYWORD_DATA_PATH` | —       | Path to Google Keyword Planner JSON export |
| `COMPS_DATA_PATH`   | —       | Path to NameBio comparable sales CSV       |

## Scoring Engine

| Variable                        | Default   | Description                                                                       |
| ------------------------------- | --------- | --------------------------------------------------------------------------------- |
| `BUY_MAX_ABSOLUTE_CAP`          | `0`       | Absolute cap on suggestedBuyMax (EUR); 0 = uncapped (evidence-anchored, ADR-0055) |
| `SCORING_WEIGHTS_OVERRIDE`      | —         | Path to scoring weights JSON override                                             |
| `TLD_BONUSES_PATH`              | —         | Path to TLD bonus multipliers JSON                                                |
| `SCORING_IDEAL_LENGTH`          | `7`       | Ideal SLD length                                                                  |
| `SCORING_MAX_LENGTH`            | `20`      | Max SLD length                                                                    |
| `SCORING_MAX_VOLUME`            | `1000000` | Max monthly search volume                                                         |
| `SCORING_MAX_CPC`               | `50`      | Max CPC                                                                           |
| `SCORING_FLOOR_VALUE`           | `500`     | Floor market value (EUR)                                                          |
| `SCORING_HIGH_VALUE`            | `10000`   | High market value (EUR)                                                           |
| `SCORING_MAX_AGE_YEARS`         | `20`      | Max domain age                                                                    |
| `SCORING_MAX_BACKLINKS`         | `1000`    | Max backlinks                                                                     |
| `SCORING_MAX_WAYBACK`           | `500`     | Max Wayback snapshots                                                             |
| `SCORING_BUY_MAX_RATIO`         | `0.5`     | Buy-max ratio                                                                     |
| `SCORING_LIST_PRICE_MULTIPLIER` | `2.5`     | List price multiplier                                                             |
| `SCORING_BASE_MARKET_VALUE`     | `500`     | Base market value (EUR)                                                           |
| `SCORING_CONFIDENCE_BASE`       | `0.2`     | Base confidence (1 signal)                                                        |
| `SCORING_CONFIDENCE_PER_SIGNAL` | `0.3`     | Confidence per extra signal                                                       |
| `SCORING_CONFIDENCE_CAP`        | `0.8`     | Confidence cap                                                                    |

## Trademark Providers

| Variable              | Default                                                   | Description                  |
| --------------------- | --------------------------------------------------------- | ---------------------------- |
| `USPTO_SEARCH_URL`    | `https://tmsearch.uspto.gov/tmsearch`                     | USPTO Elasticsearch endpoint |
| `EUIPO_CLIENT_ID`     | —                                                         | EUIPO OAuth2 client ID       |
| `EUIPO_CLIENT_SECRET` | —                                                         | EUIPO OAuth2 client secret   |
| `EUIPO_AUTH_URL`      | `https://euipo.europa.eu/oauth2/token`                    | EUIPO token endpoint         |
| `EUIPO_API_URL`       | `https://api.euipo.europa.eu/trademark-search/trademarks` | EUIPO search API             |
| `TM_CACHE_TTL_DAYS`   | `7`                                                       | Trademark cache TTL          |

## Trademark Matching

| Variable                                    | Default | Description                                                                              |
| ------------------------------------------- | ------- | ---------------------------------------------------------------------------------------- |
| `TRADEMARK_MIN_TOKEN_LENGTH_FUZZY`          | `4`     | Min token length for Levenshtein                                                         |
| `TRADEMARK_MIN_MARK_TOKEN_LENGTH_SUBSTRING` | `3`     | Min mark length for substring                                                            |
| `TRADEMARK_MAX_LEVENSHTEIN`                 | `1`     | Max edit distance                                                                        |
| `TRADEMARK_PROVIDER_TIMEOUT_MS`             | `15000` | Per-provider gate deadline in ms (min 1000); a fired deadline counts as provider failure |

## Pipeline

| Variable               | Default | Description               |
| ---------------------- | ------- | ------------------------- |
| `DEFAULT_KEYWORD_TLD`  | `.com`  | TLD for bare keywords     |
| `DNS_BULK_CONCURRENCY` | `200`   | Concurrent DNS checks     |
| `WHOIS_LOOKUP_TIMEOUT` | `10000` | WHOIS socket timeout (ms) |

## Portfolio

| Variable                    | Default | Description                   |
| --------------------------- | ------- | ----------------------------- |
| `DROP_SCORE_THRESHOLD`      | `25`    | Drop threshold (0-100)        |
| `DROP_RENEWAL_HORIZON_DAYS` | `60`    | Renewal horizon for drop eval |

## Notifications

| Variable                      | Default | Description                        |
| ----------------------------- | ------- | ---------------------------------- |
| `RENEWAL_WARNING_DAYS`        | `30`    | Warning alert days before renewal  |
| `RENEWAL_CRITICAL_DAYS`       | `7`     | Critical alert days before renewal |
| `NOTIFIER_DESKTOP_ENABLED`    | `false` | Desktop notifications              |
| `NOTIFIER_WEBHOOK_URL`        | —       | Webhook URL                        |
| `NOTIFIER_TELEGRAM_BOT_TOKEN` | —       | Telegram bot token                 |
| `NOTIFIER_TELEGRAM_CHAT_ID`   | —       | Telegram chat ID                   |

## Scheduler

| Variable                       | Default       | Description               |
| ------------------------------ | ------------- | ------------------------- |
| `SCHEDULER_ENABLED`            | `false`       | Enable in-process cron    |
| `SCHEDULER_RENEWAL_CHECK_CRON` | `0 8 * * *`   | Renewal check cron        |
| `SCHEDULER_RESCORE_CRON`       | `0 9 * * 1`   | Rescore cron (Monday)     |
| `SCHEDULER_PRUNE_CRON`         | `0 10 1 * *`  | Prune cron (1st of month) |
| `SCHEDULER_WATCHLIST_CRON`     | `0 */6 * * *` | Watchlist poll cron       |

## Watchlist

| Variable                        | Default | Description                 |
| ------------------------------- | ------- | --------------------------- |
| `WATCHLIST_POLL_INTERVAL_HOURS` | `6`     | Hours between polls         |
| `WATCHLIST_RDAP_DELAY_MS`       | `200`   | Delay between RDAP requests |

## API

| Variable                | Default          | Description                       |
| ----------------------- | ---------------- | --------------------------------- |
| `API_KEYS`              | —                | Comma-separated API keys for auth |
| `CORS_ORIGIN`           | `*`              | CORS allowed origin               |
| `RATE_LIMIT_WINDOW_MS`  | `900000` (15min) | Rate limit window                 |
| `RATE_LIMIT_MAX`        | `100`            | Max requests per window           |
| `CLOUDFLARE_API_TOKEN`  | —                | Cloudflare API token              |
| `CLOUDFLARE_ACCOUNT_ID` | —                | Cloudflare account ID             |