kutovoys/xray-checker
Xray Checker: A Prometheus exporter for monitoring Xray proxies
🐛 🐛 Bug Fixes
- Fix subscription parsing failing entirely when a single broken config is present — add line-by-line fallback parsing that skips invalid configs and continues with valid ones
- Fix web interface not rendering proxy cards when multiple subscriptions contain configs with duplicate names — use `stableId` instead of `name` as Alpine.js iteration key
📦 🔄 Improvements
- Improve Pushgateway documentation with correct endpoint format and basic auth usage notes
- ---
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v1.2.3...v1.2.4
🐛 Bug Fixes
- Fix stable ordering of resolved IPs when using proxy-resolve-domains. Previously, resolved IPs could appear in random order causing config churn and metrics instability. Now IPs are sorted by their stable ID for consistent ordering across restarts.
- ---
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v1.2.2...v1.2.3
📦 🎨 Transparent Background for Badges
- Badges now support transparent backgrounds, making them easier to embed on any page.
- Usage:
- ```
- https://your-server.com/?stableId=abc123&transparent=true
- ```
- The Badge Playground in documentation also includes a new "Transparent" option in the theme selector.
📦 🖼️ Flexible Logo Customization
- You can now use different logos for dark and light themes:
- `logo-dark.svg` / `logo-dark.png` — for dark theme
- `logo-light.svg` / `logo-light.png` — for light theme
- `logo.svg` / `logo.png` — universal fallback
- Priority: theme-specific SVG → theme-specific PNG → universal SVG → universal PNG
📦 🔍 Improved Name Sorting
- Names with leading emojis are now sorted correctly by their text content, ignoring emoji prefixes.
📦 🔄 Metrics Not Clearing on Subscription Update
- Fixed a race condition where metrics for removed proxy locations would persist with status 0 after subscription updates.
- Affected scenario: When using `proxy-resolve-domains=true` and an IP was removed from DNS, the metric for that IP would remain in Prometheus.
- Root cause: Goroutines completing proxy checks could write metrics after `ClearMetrics()` had already run.
- Fix: Added generation tracking to skip metric updates when the proxy configuration has changed during a check cycle.
📝 📚 Documentation
- Added live demo links throughout documentation and README
- Updated architecture docs with Badge System and Asset Manager components
- Added `WEB_PUBLIC` parameter to CLI and Docker examples
- Improved code formatting in nginx configuration examples
📦 🎨 Web Interface Customization
- Full customization support for the web interface. You can now replace the default template, add custom styles, change the logo, favicon, and add any other static files.
- Configuration:
- ```bash
- WEB_CUSTOM_ASSETS_PATH=/path/to/custom
- --web-custom-assets-path=/path/to/custom
- ```
- Supported files:
- index.html — Full template replacement (Go template with access to all page data)
- + 25 more
📝 📚 Documentation
- New page: Web Customization guide with Go template variables reference
- Reorganized: Public Status Page moved from Integrations to Configuration section
📦 🔧 Technical Details
- New AssetLoader component for custom assets management
- Assets are loaded once at startup for optimal performance
- Custom files overlay embedded defaults (custom first, fallback to default)
- Automatic custom.css injection before </head> tag
📦 🏷️ Embeddable Status Badges
- You can now embed individual proxy status badges anywhere using simple URL parameters. Perfect for status pages, dashboards, documentation, or README files.
- https://your-server.com/?stableId=abc123&theme=light&variant=pill
- Available parameters:
- | Parameter | Values | Description |
- | ------------------ | -------------------------------- | --------------------------- |
- | `stableId` | `{id}` | Proxy identifier (required) |
- | `theme` | `dark`, `light` | Color theme |
- | `variant` | `default`, `flat`, `pill`, `dot` | Badge style |
- + 5 more
📦 🎨 Page Customization via URL
- Customize the dashboard view using URL parameters for seamless embedding:
- `hideHeader=true` — Hide header with logo and controls
- `hideStats=true` — Hide statistics cards
- `hideServersHeader=true` — Hide "Servers" heading
- `hideControls=true` — Hide search and filters
- `hideProxies=true` — Hide proxy list
- `hideStatusInfo=true` — Hide technical info footer
- `hideFooter=true` — Hide page footer
- + 3 more
📦 📡 Custom Subscription Request Headers
- Subscription fetch requests now include custom headers(HWID):
- | Header | Value |
- | ---------------- | ---------------------- |
- | `User-Agent` | `Xray-Checker` |
- | `X-Device-OS` | `CheckerOS` |
- | `X-Ver-OS` | `{version}` |
- | `X-Device-Model` | `Xray-Checker Pro Max` |
- | `X-Hwid` | `{hwid}` |
🐛 🐛 Bug Fixes
- Fixed race condition in endpoint registration that could cause panic under concurrent requests
📝 📚 Documentation
- Added Public Status Page guide
- Added Badge System documentation with interactive Playground
✨ ✨ New Features
- Country Flag Emoji Support on Windows — Added Twemoji polyfill for proper country flag emoji rendering on Windows systems where native flag emoji support is missing.
🐛 🐛 Bug Fixes
- Fixed latency sorting — Offline servers (with zero latency) are now placed at the end when sorting by latency, instead of appearing first.
- Fixed gRPC ServiceName — Removed default value for empty ServiceName, allowing proper handling of gRPC configurations without explicit service name.
🐛 Hotfix Font
- b0c7c78c0d4297b2cec724e104fcf19cc4d6c2d2 Remove deprecated inter-latin font file and replace it with inter-regular font in index.html. Refactor HTML for improved readability.
✨ ✨ New Features
- Public Dashboard Mode (`--web-public`) — Expose the dashboard publicly without authentication, perfect for VPN service status pages. The `/metrics` and `/api/` endpoints remain protected with Basic Auth while the main dashboard and individual proxy status pages are publicly accessible. Requires `METRICS_PROTECTED=true`.
- Subscription Name Support — New `sub_name` label added to Prometheus metrics (`xray_proxy_status`, `xray_proxy_latency_ms`) for identifying which subscription a proxy belongs to. The name is parsed from URL fragment (`#My%20VPN`) or `profile-title` HTTP header.
- API Enhancements:
- Added `subName` field to proxy responses in `/api/v1/proxies`
- Added `subscriptionNames` array to `/api/v1/config` response
🐛 🐛 Bug Fixes
- Fixed XHTTP/SplitHTTP config parsing — Properly parse XHTTP and SplitHTTP transport settings including `mode` parameter and raw settings.
- Fixed race condition in subscription loading — When loading multiple subscriptions, the order of URLs is now preserved instead of being determined by HTTP response timing.
- Fixed scheduler immediate execution — Subscription update scheduler no longer runs immediately on startup, respecting the configured interval.
📝 📚 Documentation
- Added `--web-public` documentation and examples in all languages (EN/RU/FA)
- Added `sub_name` metric label documentation
- Updated API reference with new fields
- Fixed download check method description (50KB/1min instead of incorrect 10MB/5min)
- Removed unnecessary quotes from `--subscription-url` examples
📦 🔗 Multiple Subscriptions Support
- ```bash
- xray-checker --subscription-url "https://provider1.com/sub" --subscription-url "https://provider2.com/sub"
- SUBSCRIPTION_URL="https://provider1.com/sub,https://provider2.com/sub"
- ```
📦 🌐 Full REST API with OpenAPI/Swagger
- A complete REST API is now available for integration with your own tools and dashboards:
- | Endpoint | Description |
- | ---------------------------- | -------------------------------------------- |
- | `GET /api/v1/proxies` | List all proxies with full details |
- | `GET /api/v1/proxies/{id}` | Get specific proxy info |
- | `GET /api/v1/public/proxies` | Public endpoint (no auth, no sensitive data) |
- | `GET /api/v1/status` | Overall status summary |
- | `GET /api/v1/config` | Current configuration |
- + 4 more
📦 📊 Improved Latency Measurement
- Latency is now measured using Time To First Byte (TTFB) instead of total request time. This provides a more accurate representation of proxy responsiveness using Go's `httptrace` package.
- ---
📦 📝 Advanced Logging System
- A completely new logging system with configurable levels:
- ```bash
- xray-checker --log-level debug
- LOG_LEVEL=debug
- ```
- debug: Verbose output including parsed proxy configurations
- info: Standard operational messages (default)
- warn: Warnings only
- + 2 more
📦 🌍 Automatic Geo Files Management
- Xray Checker now automatically downloads and manages `geoip.dat` and `geosite.dat` files. No more manual file management!
- Files are downloaded from official Loyalsoldier repository
- Automatic updates when files are missing or corrupted
- Stored in `./geo/` directory
📦 🔧 Share Link Parsing with libxray
- Native parsing of share links using the official libxray library:
- `vless://` - VLESS protocol
- `vmess://` - VMess protocol
- `trojan://` - Trojan protocol
- `ss://` - Shadowsocks protocol
- This ensures 100% compatibility with Xray Core's own parsing logic.
📦 🔍 Domain Resolution Option
- New `--proxy-resolve-domains` flag to resolve proxy server hostnames to IP addresses and create separate configurations for each resolved IP. Thanks to @TheMelbine for the contribution.
- ```bash
- xray-checker --proxy-resolve-domains
- ```
📦 🎨 Web UI Privacy Option
- Control whether server details (IP addresses and ports) are shown in the web interface:
- ```bash
- xray-checker --web-show-details=false # Hide server details (default)
- xray-checker --web-show-details=true # Show server details
- ```
- Thanks @x-socks for the feature request.
- ---
📦 Smaller & Faster Image
- Base image: Switched from `distroless` to `alpine:3.21` for better compatibility
- Go version: Upgraded to Go 1.25
- Binary compression: Using UPX for ~60% smaller binary size
- Build flags: Added `-s -w` for stripped binaries
✨ New Capabilities
- curl: Available in container for debugging
- tzdata: Proper timezone support
- ca-certificates: Updated root certificates
- Thanks @drode1 for issue #113
- ---
📝 🇮🇷 Persian (Farsi) Documentation
- Complete documentation is now available in Persian (فارسی) with RTL support!
📝 📖 Updated Docs
- New logos and favicons for documentation site
- Updated all configuration examples
- Improved API reference documentation
- New troubleshooting guides
- ---
♻️ Architecture Refactoring
- The codebase has been significantly refactored for better maintainability:
- | Old Structure | New Structure |
- | ----------------------------------- | ------------------------ |
- | `parser/parser.go` | `subscription/parser.go` |
- | `runner/runner.go` | `xray/runner.go` |
- | `xray/template.go` + `xray/xray.go` | `xray/config.go` |
- | N/A | `xray/geo_files.go` |
- | N/A | `xray/utils.go` |
- + 2 more
📦 Independent Schedulers
- Subscription updates and proxy checks now run on independent schedulers:
- Subscription updates follow `SUBSCRIPTION_UPDATE_INTERVAL`
- Proxy checks follow `PROXY_CHECK_INTERVAL`
- No more coupling between the two operations
📦 Improved Download Check Method
- Fixed the download check method to exit immediately when the minimum download size is reached, improving efficiency.
- ---
✨ New Environment Variables
- | Variable | Description | Default |
- | ----------------------- | ---------------------------------------------- | ------- |
- | `LOG_LEVEL` | Logging verbosity (debug/info/warn/error/none) | `info` |
- | `PROXY_RESOLVE_DOMAINS` | Resolve domain names to IPs | `false` |
- | `WEB_SHOW_DETAILS` | Show server IPs in web UI | `false` |
📋 Changed Behavior
- | Variable | Old Behavior | New Behavior |
- | ------------------- | ------------------ | ------------------------------------------------- |
- | `SUBSCRIPTION_URL` | Single URL only | Multiple URLs (comma-separated or multiple flags) |
- | Latency measurement | Total request time | Time To First Byte (TTFB) |
- ---
📦 💬 Telegram Chat
- Join our community for discussions, support, and updates:
- [Xray tools](https://t.me/+TsZRKvuoH_44MWYy)
- ---
📝 Docker (Recommended)
- ```bash
- docker pull kutovoys/xray-checker:latest
- docker run -d \
- -e SUBSCRIPTION_URL=https://your-subscription-url/sub \
- -p 2112:2112 \
- kutovoys/xray-checker
- ```
📦 Binary
- Download from [GitHub Releases](https://github.com/kutovoys/xray-checker/releases/latest)
- ---
📦 🙏 Contributors
- Thanks to everyone who contributed to this release!
- ---
📋 📄 Full Changelog
- For a complete list of changes, see the [commit history](https://github.com/kutovoys/xray-checker/compare/v0.5.1...v1.0.0).
- ---
- Happy monitoring! 🎉
📦 🔧 **Enhanced Subscription Management**
- Added version parameter support: All subscription-related functions now accept and utilize version information for better compatibility tracking
- Updated function signatures: Modified `InitializeConfiguration`, `ReadFromSource`, `ParseSubscription`, and `ParseSubscriptionURL` to include version parameter
📦 🌐 **Improved HTTP Client Headers**
- Enhanced User-Agent: Maintained "Xray-Checker" identification
- Added HWID headers
📦 Download-Based Proxy Checking
- Added a new download check method for more comprehensive proxy testing that validates actual data transfer capabilities, specifically addressing new censorship techniques.
- Background:
- What's New:
- New check method: `download` - Tests proxies by downloading files through them to detect data transfer limitations
- Configurable parameters: Set custom download URLs, timeouts, and minimum size requirements
- Real-world testing: Validates proxy performance with actual file transfers instead of simple connectivity checks
- Detection of TCP freezing: Identifies proxies that work for small requests but fail for larger data transfers
- Configuration Options:
- + 10 more
📝 Docker
- ```bash
- docker run -d \
- -e PROXY_CHECK_METHOD=download \
- -e PROXY_DOWNLOAD_URL=https://proof.ovh.net/files/1Mb.dat \
- -e PROXY_DOWNLOAD_TIMEOUT=60 \
- -e PROXY_DOWNLOAD_MIN_SIZE=51200 \
- kutovoys/xray-checker
- ```
📦 CLI
- ```bash
- --proxy-check-method=download \
- --proxy-download-url=https://proof.ovh.net/files/1Mb.dat \
- --proxy-download-timeout=60 \
- --proxy-download-min-size=51200
- ```
- This release enhances proxy validation capabilities to detect modern censorship techniques while maintaining full backward compatibility with existing configurations.
- Related Issue: [Russia] Censor has a new method of blocking - [net4people/bbs#490](https://github.com/net4people/bbs/issues/490)
📦 HTTPUpgrade Transport Support
- ✨ Added full support for HTTPUpgrade transport type - a new transport protocol similar to WebSocket but with HTTP upgrade mechanism
- 🔧 Enhanced parser capabilities to handle HTTPUpgrade configurations from subscription URLs and JSON configs
- 📝 Updated Xray configuration templates to generate proper `httpupgradeSettings` sections
- 🏗️ Extended data models with `HTTPUpgradeSettings` struct and related helper functions
📦 Enhanced Base64 Decoding
- 🛠️ Improved Base64 auto-detection with new `utils.AutoDecode()` function that automatically detects:
- Standard vs URL-safe Base64 encoding
- Padded vs non-padded formats
- 🔄 Migrated from manual decoding to unified auto-detection across parser and subscription modules
- 📈 Better compatibility with various subscription formats and VMess configurations
📦 WebSocket Configuration Improvements
- 🌐 Enhanced WebSocket settings in Xray templates to properly include Host headers
- 🔧 Fixed WebSocket header generation for better compatibility with proxy servers
📦 Code Organization
- 📁 Refactored Base64 handling into dedicated `utils` package for better code reuse
- 🧹 Cleaned up parser logic by removing duplicate Base64 decoding implementations
- 📝 Improved code documentation and removed unnecessary comments
📦 Configuration Parsing
- ⚡ Streamlined VMess parsing with unified Base64 decoding approach
- 🔍 Enhanced error handling in proxy URL parsing
- 🏷️ Better support for various configuration formats in subscription processing
📦 Core Updates
- ⬆️ Xray-core: Updated from `v1.250306.0` to `v1.250516.0`
- ⬆️ Kong CLI: Updated from `v1.10.0` to `v1.11.0`
- ⬆️ Prometheus Common: Updated from `v0.63.0` to `v0.64.0`
📦 Template Updates
- 📄 Xray JSON template now includes HTTPUpgrade settings generation
- 🏷️ Improved WebSocket headers configuration in generated configs
- 🛠️ Better Host header handling across different transport types
✨ New Contributors
- @sujoshua made their first contribution in https://github.com/kutovoys/xray-checker/pull/65
- @iphizic made their first contribution in https://github.com/kutovoys/xray-checker/pull/72
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.4.2...v0.4.3
fix: downgrade github.com/refraction-networking/utls from v1.7.0 to v1.6.7 **Full Changelog**: https://github.com/kutovoys/xray-checker/compare/v0.4.1...v0.4.2
📦 Configurable Metrics Host
- Added the ability to configure the host address for metrics and status endpoints
- Introduced new `METRICS_HOST` environment variable and `--metrics-host` CLI flag
- Default value set to `0.0.0.0` for backward compatibility
- Added documentation for the new configuration option in both English and Russian
📦 Metrics Management
- Fixed memory leak in metrics cleanup process
- Added proper cleanup for metrics when clearing metrics data
- Changed metric key validation to support keys with more than 3 parts (`len(parts) >= 3`)
📦 UI Improvements
- Updated server information display to show full `host:port` instead of just port
- Improved formatting in the copyToClipboard function for better readability
📦 Updates
- Updated `github.com/refraction-networking/utls` from v1.6.7 to v1.7.0
- Updated Go version formatting in go.mod from 1.24 to 1.24.0
- Retained toolchain specification at go1.24.2
📝 Documentation Enhancements
- Added the new `METRICS_HOST` parameter to all CLI examples
- Updated Docker examples to include the new environment variable
- Added examples of binding to localhost (127.0.0.1) for improved security
- Updated all documentation in both English and Russian languages
📦 Server Startup
- Modified server startup log message to display both host and port
- Updated HTTP server binding to use the configured host address
- Improved code formatting and readability in various places
📦 Compatibility Notes
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.4.0...v0.4.1
💥 🚨 Breaking Changes
- The metric key format has changed to include `StableID`. This will impact any external systems relying on the previous metric key format.
- Config endpoints now use `StableID` instead of index-based paths, which will break any scripts or integrations that depended on the previous URL format.
- Go version upgraded from 1.23 to 1.24, requiring a toolchain update.
✨ New Features
- Added `StableID` to proxy configurations for stable and consistent identification
- Implemented support for xHTTP transport type with `mode` and `extra` parameters
- Added WebSocket `host` field alongside the existing headers configuration
📦 Improvements
- Enhanced proxy configuration stability with SHA-256 based identifier generation
- Updated Xray core to version 1.250306.0
- Improved proxy configuration comparison logic using StableID
- Fixed WebSocket configuration template to properly handle host parameters
- Modernized config endpoint URLs to use stable IDs instead of index-based paths
📋 API Changes
- Added `GenerateStableID()` method to ProxyConfig
- Added `GetProxyByStableID()` method to ProxyChecker
- Enhanced the ProxyConfig struct with new fields: `Mode`, `ExtraXhttp`, and `StableID`
📋 Internal Changes
- Improved config comparison logic for better stability detection
- Updated Docker base image to Go 1.24
- Enhanced error messages in web handlers
✨ New Contributors
- @antonydevanchi made their first contribution in https://github.com/kutovoys/xray-checker/pull/45
- @Akiyamov made their first contribution in https://github.com/kutovoys/xray-checker/pull/56
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.3.1...v0.4.0
📋 Major Changes
- Added support for serving metrics and monitoring interface under a custom base path
- New configuration option `METRICS_BASE_PATH` allows specifying a custom URL path
- Example: Set to `/xray/monitor` to serve metrics at `http://your-domain.com/xray/monitor`
📦 Configuration Updates
- Added new configuration options:
- Environment variable: `METRICS_BASE_PATH`
- CLI flag: `--metrics-base-path`
- Default value: "" (empty string, serves at root path)
📝 Documentation Improvements
- Added new section "Configuration for steal-from-yourself domain" with detailed nginx setup instructions
- Updated Docker and CLI usage examples to include the new base path parameter
- Added documentation for the new `METRICS_BASE_PATH` parameter in both English and Russian
✨ New Contributors
- @stepkareserva made their first contribution in https://github.com/kutovoys/xray-checker/pull/38
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.3.0...v0.3.1
✨ Major Features
- 🎯 Added VMess protocol support with comprehensive configuration options
- 🔄 New configuration sources support:
- JSON files via `file://` prefix
- Folders with multiple configs via `folder://` prefix
- Direct Base64 string input
- 🌓 Redesigned web interface with dark/light theme support
- 📊 Real-time status indicators showing proxy health and latency
📦 Proxy Configuration Enhancements
- ✨ Extended protocol configuration capabilities:
- gRPC transport layer support with multiMode, idleTimeout, and windowSize settings
- TLS/Reality security layer improvements
- ALPN protocol negotiation support
- Advanced VMess settings (alterId, level)
- 🔧 Improved subscription URL handling with multiple format support
- 🛡️ Added allowInsecure option for TLS connections
- 🔄 More flexible flow control settings
📦 Web Interface Improvements
- 🎨 New responsive grid-based layout
- 🚥 Live status indicators (green/red) for each proxy
- ⏱️ Real-time latency display
- 📋 Improved URL copying functionality
- 🌙 Theme persistence across sessions
- 📊 Better organized server information display
📦 Infrastructure
- 📚 Added comprehensive documentation
- 🔧 Improved error handling and logging
- 🧪 Better validation for proxy configurations
- 🎯 More robust subscription parsing
- ⚡ Enhanced Xray Core integration
🐛 Bug Fixes
- 🐛 Fixed Base64 decoding issues with URL-safe encodings
- 🔍 Improved error handling for invalid configurations
- 🚫 Better handling of ports 0 and 1
- 📝 Fixed template issues in Xray configuration
- 🔒 Enhanced security validation
📝 [Documentation](https://xray-checker.kutovoy.dev/)
- 📘 Added detailed API reference
- 🔧 Improved configuration documentation
- 📝 Added troubleshooting guide
- 🚀 New quick start guide
- 🌐 Added multi-language support (English/Russian)
- For more detailed information, please visit our [documentation](https://xray-checker.kutovoy.dev/).
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.2.2...v0.3.0
📋 Changes
- Updated the main application logic to only parse the metrics push URL if it is provided, enhancing error handling.
- Modified the ParseURL function to return nil instead of an error for empty URLs, simplifying the logic.
- Adjusted the GetPushURL function to handle nil configurations more gracefully, ensuring robustness in metrics pushing.
- Added SubscriptionUpdateInterval to PageData for improved subscription management.
- Updated the IndexHandler and ConfigStatusHandler to utilize proxy index for endpoint registration and path formatting.
- Enhanced the index.html template to conditionally display Instance and Push URL information based on availability.
- Improved the rendering logic for Check Method related URLs, ensuring clarity in the displayed information.
📋 What's Changed
- Update README files to reflect GitHub Actions integration by @kutovoys in https://github.com/kutovoys/xray-checker/pull/22
- Bug fixes by @kutovoys in https://github.com/kutovoys/xray-checker/pull/23
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.2.1...v0.2.2
📋 What's Changed
- Added support for instance labeling in metrics, allowing for better identification of metrics per instance.
- Introduced a new metrics push URL configuration option for Prometheus integration.
- Updated the proxy checker to utilize the instance label in metrics recording and deletion.
- Refactored the main application logic to remove the commit parameter from the version parsing function.
- Enhanced the web interface to display instance and push URL information.
- Updated documentation in README and README_RU to reflect new configuration options and usage examples.
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.2.0...v0.2.1
💥 ⚠️ Breaking Changes
- Configuration parameters and environment variables have been renamed
- Update all environment variables in your deployment configurations
📋 What's Changed
- feat: new check method: STATUS, new latency metric, simulate latency on endpoints by @kastov in https://github.com/kutovoys/xray-checker/pull/17
- feat: enhance subscription update handling and proxy checking logic by @kutovoys in https://github.com/kutovoys/xray-checker/pull/18
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.1.1...v0.2.0
📋 Changelog
- 7dd9e07d8582c72b77698cc6e6e7da950b573446 Enhance proxy checker functionality and update configuration options
- ca769415d485d765ff204212f1b9f1b6532ead90 Merge pull request #15 from kastov/more-customization
- c3658116823c0601d2cf1e4c82b9ef5ea43a7c17 Update Dockerfile and CI workflow to use dynamic USERNAME and REPOSITORY_NAME
- d71eb4c046d9a06ab3bd85a910e68c7b2b80264c doc: added lang badges to README
- fa805ff988e60f5797594bf82be8b5674eea515c fix: env vars
- 7f65ae0f8a37c35f444036449a78e8cd76763919 fix: issues with templates and xray-config.json inside docker container
- 8e95b87e7b2548981065819157f68e0377d2bee3 refactor: remove SubscriptionURL from configuration and update README
- 06cb638e1de019d36124925dae12877253105617 refactor: update GitHub Actions and goreleaser configuration for dynamic repository handling
📋 What's Changed
- Overall improvements & fix Docker container by @kastov in https://github.com/kutovoys/xray-checker/pull/15
✨ New Contributors
- @kastov made their first contribution in https://github.com/kutovoys/xray-checker/pull/15
- Full Changelog: https://github.com/kutovoys/xray-checker/compare/v0.1.0...v0.1.1
✨ New Architecture
- Completely redesigned internal application architecture
- Improved stability and reliability of checks
- Optimized system resource usage
- Enhanced configuration processing efficiency
📦 Improved Monitoring System
- Added detailed Prometheus metrics
- New API endpoints for monitoring each proxy
- Simpler and more informative monitoring system integration
- Improved proxy state detection accuracy
🔒 Security
- Added optional Basic Auth protection for metrics and API
- Enhanced sensitive data handling
- Secure configuration file processing
📦 Configuration Handling
- New dynamic Xray configuration generation system
- Automatic configuration updates without restart
- Enhanced configuration file validation
📦 Connection Checking
- Redesigned proxy availability checking mechanism
- Optimized operability detection logic
- Added support for various IP checking services
📦 Logging
- Improved logging system
- Added detailed debug logs
- Configurable logging levels
✨ New Endpoints
- `/health` - Application health check
- `/config/{protocol}-{address}-{port}` - Individual proxy status
- `/metrics` - Extended Prometheus metrics
