UNPKG

@luminati-io/luminati-proxy

Version:

A configurable local proxy for brightdata.com

138 lines (134 loc) 4.18 kB
// LICENSE_CODE ZON ISC 'use strict'; /*jslint node:true, esnext:true*/ const lpm_api_models = require('./lpm_api_models.js'); const prop_by_type = (props, type)=> Object.keys(props).filter(k=>props[k].type==type); const conf = { version: undefined, is_win: process.platform=='win32', is_lum: undefined, daemon_name: 'luminati_proxy_manager', github_repo: 'luminati-io/luminati-proxy', work_dir: '', min_node: '16.9.0', max_node: '20.12.1', is_electron: process.versions && !!process.versions.electron, proxy_fields: Object.assign({}, lpm_api_models.proxy_fields, lpm_api_models.manager_fields), mgr_fields: Object.keys(lpm_api_models.manager_fields), numeric_fields: prop_by_type(lpm_api_models.proxy_fields, 'integer'), boolean_fields: prop_by_type(lpm_api_models.proxy_fields, 'boolean'), credential_fields: ['account_id', 'customer', 'zone', 'password', 'token_auth', 'lpm_token', 'customer_id'], hola_agent: undefined, args: { added_descriptions: { 'no-www': 'Disable local web', 'no-config': 'Working without a config file', daemon: 'Start as a daemon', 'restart-daemon': 'Restart running daemon', 'stop-daemon': 'Stop running daemon', 'delete-daemon': 'Delete daemon instance', upgrade: 'Upgrade proxy manager', downgrade: 'Downgrade proxy manager (if backup exists on disk)', dir: 'Path to the directory with database and configuration files', status: 'Show proxy manager processes current status', 'gen-cert': 'Generate cert', 'auto-upgrade': 'Enable auto upgrade', 'start-upgrader': 'Install CRON process that checks upgrades', 'stop-upgrader': 'Removes CRON process that checks upgrades', 'insecure-http-parser': 'Disables the strict checks', }, alias: { help: ['h', '?'], port: 'p', daemon: ['d', 'start-daemon'], version: 'v', }, }, }; conf.default_fields = [].concat(conf.credential_fields, conf.mgr_fields, 'version', 'ask_sync_config'); conf.proxy_params = Object.keys(lpm_api_models.proxy_fields); conf.server_default = { port: 24000, zone: 'static', customer: process.env.LUMINATI_CUSTOMER, password: process.env.LUMINATI_PASSWORD, sticky_ip: false, proxy_connection_type: 'http', ssl: false, tls_lib: 'open_ssl', av_check: false, test_url: 'http://geo.brdtest.com/mygeo.json', proxy: 'brd.superproxy.io', proxy_port: 22225, new_proxy_port: 33335, proxy_retry: 2, proxy_country: '', socket_inactivity_timeout: 120000, resolve_proxies_interval: 10000, preset: 'session_long', route_err: 'pass_dyn', multiply_ips: false, max_ban_retries: 10, multiply_vips: false, multiply_users: false, multiply: 0, rotate_session: false, session: true, log: 'notice', ua: false, throttle: '', info: false, const: false, dns: 'local', follow_redirect: false, }; conf.manager_default = Object.assign({}, conf.server_default, { www: 22999, www_whitelist_ips: [], whitelist_ips: [], extra_ssl_ips: [], dropin: true, dropin_port: 22225, no_usage_stats: false, request_stats: true, logs: 1000, logs_settings: {}, har_limit: 1024, debug: 'none', lpm_auth: 'none', ports_limit: 10000, ui_ws: true, reverse_lookup_dns: false, force: false, session_termination: false, high_perf: false, local_login: false, cluster: true, read_only: false, zagent: false, av_server: false, reseller: false, sync_config: false, sync_zones: true, sync_stats: true, cn: false, api_body_limit: '2mb', new_ui: false, api_parameter_limit: 10000, }); delete conf.manager_default.port; conf.log_levels = { system: -1, error: 0, warn: 1, notice: 2, info: 3, debug: 4, }; conf.mgr_proxy_shared_fields = ['debug', 'lpm_auth']; Object.assign(module.exports, conf);