{"id":21418754,"url":"https://github.com/jasurhaydarovcode/proxy","last_synced_at":"2025-09-10T00:17:57.559Z","repository":{"id":252241957,"uuid":"839855563","full_name":"jasurhaydarovcode/Proxy","owner":"jasurhaydarovcode","description":"Proxy","archived":false,"fork":false,"pushed_at":"2024-08-08T13:14:26.000Z","size":150,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T06:09:43.715Z","etag":null,"topics":["jasurhaydarovcode","proxy","proxy-site"],"latest_commit_sha":null,"homepage":"","language":"CSS","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/jasurhaydarovcode.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-08-08T13:10:46.000Z","updated_at":"2024-08-08T13:14:30.000Z","dependencies_parsed_at":"2024-08-08T15:32:30.823Z","dependency_job_id":"4e46fb2a-8e2a-449c-a07f-be954b7e0f9d","html_url":"https://github.com/jasurhaydarovcode/Proxy","commit_stats":null,"previous_names":["jasurhaydarovcode/proxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasurhaydarovcode%2FProxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasurhaydarovcode%2FProxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasurhaydarovcode%2FProxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasurhaydarovcode%2FProxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasurhaydarovcode","download_url":"https://codeload.github.com/jasurhaydarovcode/Proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243918644,"owners_count":20368746,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["jasurhaydarovcode","proxy","proxy-site"],"created_at":"2024-11-22T19:24:00.947Z","updated_at":"2025-03-16T19:25:35.374Z","avatar_url":"https://github.com/jasurhaydarovcode.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n\n# { PROXY, PROXIED }\n# Author: \u003ca href=\"https://github.com/jasurhaydarovcode\"\u003e`jasurhaydarovcode`\u003c/a\u003e\n\n\u003c/div\u003e\n\n\n---\n\n# Proxy Server Using Puppeteer\n\n![Proxy Logo](.github/proxy.jpg)\n\n## Overview\n\nThis project is a simple proxy server built using **Express.js** and **Puppeteer**. The server fetches and serves web pages while making necessary modifications to the HTML content. It can process JavaScript files, handle favicons, and other assets to replicate the original page's appearance and behavior.\n\n## Features\n\n- **Puppeteer Integration:** Use Puppeteer to fetch web pages, enabling interaction with dynamic content and scripts.\n- **Customizable Proxy:** Modify HTML content before serving it to the client, allowing for flexible content delivery.\n- **Static File Serving:** Serve static files from the `public` directory using Express.js.\n\n## Advantages\n\n![Advantages](.github/clientTomon.jpg)\n\n1. **Dynamic Content Handling:**\n   - With Puppeteer, the proxy server can handle dynamic content, making it possible to fetch pages that rely heavily on JavaScript for rendering.\n\n2. **Custom Modifications:**\n   - The ability to modify the HTML before sending it to the client allows for a wide range of applications, such as injecting custom scripts, altering styles, or filtering content.\n\n3. **Comprehensive Resource Loading:**\n   - The proxy can read and process JavaScript files, favicons, and other assets, ensuring that the proxied page closely resembles the original.\n\n4. **Error Handling:**\n   - Includes robust error handling, ensuring that even if some resources fail to load, the server can still deliver a functioning page.\n\n## Disadvantages\n\n![Disadvantages](https://www.fortinet.com/content/dam/fortinet/images/cyberglossary/proxy-server-1.jpeg)\n\n1. **Performance Overhead:**\n   - Using Puppeteer to fetch and render pages can introduce significant performance overhead compared to simpler proxy servers.\n\n2. **Resource Intensive:**\n   - Puppeteer requires running a headless browser, which can be resource-intensive, especially when handling multiple requests concurrently.\n\n3. **Limited Scalability:**\n   - Due to the resource demands of Puppeteer, scaling this proxy server to handle large volumes of traffic may require substantial infrastructure.\n\n4. **Complex Configuration:**\n   - The need to handle various edge cases, such as failed resource loading, and to modify content dynamically, adds complexity to the server configuration.\n\n## Usage\n\n1. **Clone the Repository:**\n\n    ```bash\n    git clone https://github.com/jasurhaydarovcode/proxy.git\n    cd proxy\n    ```\n\n2. **Install Dependencies:**\n\n    ```bash\n    npm install\n    ```\n    or\n    ```bash\n    yarn\n    ```\n\n3. **Run the Server:**\n\n    ```bash\n    npm run dev\n    ```\n\n    ```bash\n    yarn run dev\n    ```\n\n4. **Access the Proxy:**\n\n    Open your browser and go to:\n\n    ```\n    http://localhost:3000/proxy?url=example.com\n    ```\n\n    Replace `example.com` with the URL you want to proxy.\n\n## Examples\n\n### Proxied Google Homepage\n\n![Proxied Google](.github/googleHomepage.png)\n\n### Proxied Example Page\n\n![Proxied Example](https://via.placeholder.com/800x400.png?text=Proxied+Example+Page)\n\n## Conclusion\n\nThis Proxy server offers a powerful and flexible solution for serving modified web pages, but it comes with the trade-offs of higher resource usage and potential performance impacts. It's ideal for use cases where dynamic content handling and extensive page modifications are required.\n\n---\n\n**Note:** This is a simple implementation and may need further tuning depending on specific use cases and the scale of traffic it needs to handle.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasurhaydarovcode%2Fproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasurhaydarovcode%2Fproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasurhaydarovcode%2Fproxy/lists"}