mirror of
https://github.com/jason5ng32/MyIP.git
synced 2026-11-04 08:55:47 +00:00
71 lines
2.9 KiB
Bash
71 lines
2.9 KiB
Bash
# Server
|
|
BACKEND_PORT="11966"
|
|
FRONTEND_PORT="18966"
|
|
ALLOWED_DOMAINS=""
|
|
# THIRD-PARTY APIs
|
|
GOOGLE_MAP_API_KEY=""
|
|
IPINFO_API_KEY=""
|
|
CLOUDFLARE_API_KEY=""
|
|
IPAPIIS_API_KEY=""
|
|
IP2LOCATION_API_KEY=""
|
|
RIPESTAT_SOURCE_APP=""
|
|
# Shareable diagnostic reports — stored in Cloudflare Workers KV. Both values
|
|
# below must be set (together with CLOUDFLARE_API_KEY, which additionally
|
|
# needs the "Workers KV Storage: Edit" permission) or the share-link feature
|
|
# stays hidden. CLOUDFLARE_KV_NAMESPACE_ID is the namespace's hex ID from the
|
|
# dashboard, not its name.
|
|
CLOUDFLARE_ACCOUNT_ID=""
|
|
CLOUDFLARE_KV_NAMESPACE_ID=""
|
|
# MaxMind — GeoLite2 is downloaded only when both are set
|
|
MAXMIND_ACCOUNT_ID=""
|
|
MAXMIND_LICENSE_KEY=""
|
|
# Offline datasets (MaxMind, CAIDA, PeeringDB): missing ones download at boot;
|
|
# all are re-checked daily at DATASET_UPDATE_CRON (server-local time) unless
|
|
# DATASET_AUTO_UPDATE is "false"
|
|
DATASET_AUTO_UPDATE="true"
|
|
DATASET_UPDATE_CRON="30 4 * * *"
|
|
# SITE
|
|
VITE_SITE_URL="https://ipcheck.ing"
|
|
# DOCS SITE — origin of the GitBook docs site powering the in-app
|
|
# assistant and the Help Center link. Empty disables both.
|
|
VITE_DOCS_URL=""
|
|
# EARTH ONLINE — full URL of the pulse backend (trailing slashes stripped).
|
|
# Empty hides the social parts (status feed / visitor map / visit beacon) at
|
|
# build time, like Sentry. The outage feed is independent — it only needs
|
|
# CLOUDFLARE_API_KEY above.
|
|
VITE_PULSE_BEACON_URL=""
|
|
# CURL API
|
|
VITE_CURL_IPV4_DOMAIN=""
|
|
VITE_CURL_IPV6_DOMAIN=""
|
|
VITE_CURL_IPV64_DOMAIN=""
|
|
# Google Analytics
|
|
VITE_GOOGLE_ANALYTICS_ID=""
|
|
# Security related
|
|
# SECURITY_BLACKLIST_LOG_FILE_PATH: opt-in on-disk ledger of rate-limited IPs
|
|
# (e.g. "logs/blacklist-ip.log"). Empty = no file; the event is always logged
|
|
# via the shared logger either way (and mirrored to Sentry when configured).
|
|
SECURITY_BLACKLIST_LOG_FILE_PATH=""
|
|
SECURITY_RATE_LIMIT=""
|
|
SECURITY_DELAY_AFTER=""
|
|
# Sentry — all optional; leave empty and no Sentry code ships or runs at all.
|
|
# VITE_SENTRY_DSN_FRONTEND: frontend DSN (build-time; baked into the bundle;
|
|
# also read by the backend at runtime as the allowlist for /api/monitoring,
|
|
# the first-party tunnel that relays envelopes past ad blockers)
|
|
# SENTRY_DSN_BACKEND: backend DSN (runtime; read by sentry-instrument.js)
|
|
# SENTRY_ENVIRONMENT: backend environment tag — unset means "production",
|
|
# set "development" on dev machines (frontend tags itself automatically)
|
|
# SENTRY_ORG / SENTRY_PROJECT_FRONTEND / SENTRY_AUTH_TOKEN: source-map upload
|
|
# at build time only — the token is a secret, never exposed to the browser
|
|
VITE_SENTRY_DSN_FRONTEND=""
|
|
SENTRY_DSN_BACKEND=""
|
|
SENTRY_ENVIRONMENT=""
|
|
SENTRY_ORG=""
|
|
SENTRY_PROJECT_FRONTEND=""
|
|
SENTRY_AUTH_TOKEN=""
|
|
# Logging — LOG_LEVEL: debug/info/warn/error (default info)
|
|
# LOG_FORMAT: "json" for log shippers, anything else = pretty
|
|
# LOG_HTTP: "true" to enable per-request /api logging (off by default)
|
|
LOG_LEVEL=""
|
|
LOG_FORMAT=""
|
|
LOG_HTTP=""
|