{"id":39542959,"url":"https://github.com/doroved/proxerver-cli","last_synced_at":"2026-01-18T06:38:25.036Z","repository":{"id":274693886,"uuid":"877705347","full_name":"doroved/proxerver-cli","owner":"doroved","description":"User Friendly HTTP and HTTPS (HTTP over TLS) proxy server.","archived":false,"fork":false,"pushed_at":"2025-01-28T19:54:06.000Z","size":920,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T20:33:44.907Z","etag":null,"topics":["linux","proxy","proxy-server","rust"],"latest_commit_sha":null,"homepage":"https://t.me/macproxer","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doroved.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T05:23:26.000Z","updated_at":"2025-01-28T19:54:10.000Z","dependencies_parsed_at":"2025-01-28T20:43:50.333Z","dependency_job_id":null,"html_url":"https://github.com/doroved/proxerver-cli","commit_stats":null,"previous_names":["doroved/proxerver-cli"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/doroved/proxerver-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doroved%2Fproxerver-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doroved%2Fproxerver-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doroved%2Fproxerver-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doroved%2Fproxerver-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doroved","download_url":"https://codeload.github.com/doroved/proxerver-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doroved%2Fproxerver-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","proxy","proxy-server","rust"],"created_at":"2026-01-18T06:38:24.752Z","updated_at":"2026-01-18T06:38:24.914Z","avatar_url":"https://github.com/doroved.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxerver\n\n\u003e **Subscribe to us on [Telegram](https://t.me/macproxer) to receive notifications about new versions and updates.**\n\nCreate your own HTTP and/or HTTPS (HTTP over TLS) proxy server with one click. Use this proxy to enhance the security of your internet connections or to bypass restrictions.\n\nAvailable on Linux `x86_64` and ~~`aarch64`~~ (temporarily unavailable in installer).\n\n![proxerver screenshot](screenshot.png)\n\n## How to Install\n\nJust log into your server/VPS terminal and run the command:\n\n```bash\ncurl -fsSL https://proxerver-cli.pages.dev | bash\n```\n\nAfter installation, be sure to run this command to make proxerver available in the current terminal session:\n\n```bash\nexport PATH=$PATH:~/.proxerver-cli/bin\n```\n\nTo update proxerver to the latest version, use the same command that was used for installation.\n\n## Key Features:\n\n- Easy to set up and use.\n- Support for HTTP and HTTPS (HTTP over TLS).\n- List of allowed hosts that can be proxied. Use [wildcard matching](#wildcard-matching-usage-rules).\n- Using multiple credentials for authentication.\n- Authentication via tokens supported by the [Proxer CLI](https://github.com/doroved/proxer-cli) client. It is recommended for use as it helps protect your proxies from proxy server detection through active probing.\n\n```\nproxerver-cli --help\n\nUser Friendly HTTP and HTTPS (HTTP over TLS) proxy server.\n\nUsage: proxerver-cli [OPTIONS]\n\nOptions:\n      --config \u003cPATH\u003e  Path to the configuration file. Default: '~/.proxerver-cli/config.toml'\n  -h, --help           Print help\n  -V, --version        Print version\n```\n\n## Configuration File\n\nA configuration file is used to store the proxy server settings. The default configuration file is located at `~/.proxerver-cli/config.toml`. You can specify a different path using the `--config` option.\n\nTo change the default configuration file, use the following command:\n\n```bash\nnano ~/.proxerver-cli/config.toml\n```\n\n```toml\n# HTTP server configuration\n[http]\nenabled = true\nport = 8080\nallowed_hosts = []\n\n[http.auth]\ncredentials = []\ntokens = []\n\n# HTTPS server configuration\n[https]\nenabled = false\nport = 443\nallowed_hosts = []\n\n[https.auth]\ncredentials = []\ntokens = []\n\n[https.tls]\ncert = \"\"\nkey = \"\"\n```\n\nThe configuration file is in TOML format and contains the following sections:\n\n- `http`: HTTP server configuration\n- `https`: HTTPS server configuration\n\n### HTTP Server Configuration\n\n- `enabled`: Enables or disables the HTTP server. Default: `true`\n- `port`: The port to listen on. Default: `8080`\n- `allowed_hosts`: A list of allowed hosts. Default: `[]`\n- `auth`: Authentication configuration\n  - `credentials`: A list of allowed credentials. Default: `[]`\n  - `tokens`: A list of allowed tokens. Default: `[]`\n\n### HTTPS Server Configuration\n\n- `enabled`: Enables or disables the HTTPS server. Default: `false`\n- `port`: The port to listen on. Default: `443`\n- `allowed_hosts` and `auth`: Same as HTTP server configuration\n- `tls`: TLS configuration\n  - `cert`: Path to the certificate file. Default: `\"\"`\n  - `key`: Path to the private key file. Default: `\"\"`\n\nSee example configuration files in the [`config.example.toml`](./config.example.toml) file for more details.\n\n## Starting the Proxy Server\n\nTo quickly start the HTTP proxy server on port 8080, use the following command:\n\n```bash\nproxerver-cli\n```\n\nCreate configuration files with the parameters you need and start the proxy server using the command:\n\n```bash\nproxerver-cli --config custom.toml\n```\n\nTo run the proxy server in the background, use nohup, for example:\n\n```bash\nnohup proxerver-cli [OPTIONS] \u003e/dev/null 2\u003e\u00261 \u0026\n```\n\nRunning the proxy server in the background using nohup and saving the output to a file:\n\n```bash\nnohup proxerver-cli [OPTIONS] \u003e ~/.proxerver-cli/log.txt 2\u003e\u00261 \u0026\n```\n\nRemove the background process proxerver-cli:\n\n```bash\npkill proxerver-cli\n```\n\n## Let's Encrypt Certificate Generation\n\nInstall certbot, test automatic renewal, and check for a timer for automatic certificate updates.\n\n```bash\napt-get install certbot -y\ncertbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com\ncertbot renew --dry-run\nsystemctl list-timers | grep certbot\n```\n\n`yourdomain.com` - Your domain pointing to the server's IP\n\n## Wildcard Matching Usage Rules\n\n1. Use `*` to replace any number of characters. For example, `*.example.com` will match all subdomains of `example.com`.\n2. Use `?` to replace a single character. For example, `*.example?.com` will match `*.example1.com`, `*.exampleA.com`, but not `*.example.com`.\n3. You can combine `*` and `?` for more complex patterns. For example, `*example?.com` will match `example1.com`, `myexampleA.com`, but not `example.com`.\n4. Be cautious when using wildcard matching, as it can lead to unwanted access if not configured properly.\n5. Check allowed hosts for duplicates to avoid conflicts in rules.\n\n## TODO:\n\n- [ ] Automatic creation and renewal of Let's Encrypt certificates for custom domains and [IP](https://letsencrypt.org/2025/01/16/6-day-and-ip-certs/).\n- [ ] Daemonization of the process to run the program in the background.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoroved%2Fproxerver-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoroved%2Fproxerver-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoroved%2Fproxerver-cli/lists"}