{"id":15289007,"url":"https://github.com/bripkens/proxrox","last_synced_at":"2025-03-02T18:10:07.565Z","repository":{"id":25594792,"uuid":"29029468","full_name":"bripkens/proxrox","owner":"bripkens","description":"Proxy services, combine origins, use SSI and more during development","archived":false,"fork":false,"pushed_at":"2024-08-30T10:40:20.000Z","size":2205,"stargazers_count":44,"open_issues_count":4,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-02-16T15:50:12.121Z","etag":null,"topics":["ajax","javascript","nginx","proxy","same-origin-policy","sop","ssi"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bripkens.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2015-01-09T18:28:39.000Z","updated_at":"2024-08-27T16:15:54.000Z","dependencies_parsed_at":"2024-01-10T11:49:17.200Z","dependency_job_id":"a3a1f93e-f68e-47aa-92da-db678c39c837","html_url":"https://github.com/bripkens/proxrox","commit_stats":{"total_commits":215,"total_committers":17,"mean_commits":"12.647058823529411","dds":"0.35813953488372097","last_synced_commit":"7ab713cd75202788e0cbb413e1825689416af189"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bripkens%2Fproxrox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bripkens%2Fproxrox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bripkens%2Fproxrox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bripkens%2Fproxrox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bripkens","download_url":"https://codeload.github.com/bripkens/proxrox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240347977,"owners_count":19787237,"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":["ajax","javascript","nginx","proxy","same-origin-policy","sop","ssi"],"created_at":"2024-09-30T15:55:34.108Z","updated_at":"2025-02-23T17:10:54.047Z","avatar_url":"https://github.com/bripkens.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# proxrox \u0026nbsp;\n\nAvoid SOP problems, combine origins, proxy services, use SSL, HTTP2, SSI and more… during development!\n\n**[Installation](INSTALLATION.md) |**\n**[Usage](#usage) |**\n**[Configuration](CONFIGURATION.md) |**\n**[Example projects](examples) |**\n**[Support](#support) |**\n**[Changelog](CHANGELOG.md)**\n\n---\n\n\nProxrox is a command line utility which starts a local Nginx instance to serve up static files, proxy one or many services under a single origin, use SSL locally and, generally, to get a development environment that is\nsimilar to a production environment.\n\nProxrox achieves this using Nginx. When proxrox is asked to start a server, it will create an Nginx config file in a temporary location and start an Nginx instance using this config file. This means that proxrox can theoretically support all of Nginx's features.\n\nYou can also use Proxrox to debug web apps, as shown in the following presentation.\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://speakerdeck.com/bripkens/man-in-the-middle-yourself-debugging-production-web-apps\"\u003e\n\u003cimg src=\"./presentation.png\" alt=\"Learn about remote debugging with proxrox\" width=\"400\"\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n## Installation\n**TL;DR;** `npm install -g proxrox`. Nginx needs to be on the `$PATH` and executable without super-user privileges.\n\nDetailed installation instructions can be found in [INSTALLATION.md](INSTALLATION.md).\n\n\n## Usage\nStart proxrox using a local configuration file. Format and supported options are explained in the [CONFIGURATION.md](CONFIGURATION.md) file.\n```\nproxrox start .proxrox.yaml\n```\n\nStop the running Nginx instances (stops all):\n```\nproxrox stop\n```\n\nExperience has shown that the definition of options via configuration files, e.g. `.proxrox.yaml`, is the most commonly used option. Working example projects with the recommended project setup can be seen in the [examples](examples) directory.\n\n## Why proxrox exists\n\n### Production and development environment parity\nDevelopment environments should resemble production environments.\nThis means that server-side includes, transport layer security, compression\nand more should exist during development. Not only is this important for\npage speed optimizations, but it also allows you to find security\nissues early, e.g. a secure page which references insecure content.\n\n### Serving multiple services under a single [origin](https://tools.ietf.org/html/rfc6454)\nWhether the app is service-oriented, micro service based,\n[resource-oriented client architecture](http://roca-style.org/) like\nor a single page app, the\n[same-origin policy](https://www.w3.org/Security/wiki/Same_Origin_Policy)\nis often an issue for local development. People circumvent this issue in\nvarious ways. While most teams have good practices in place for production\nenvironments, development environments often lack this. Solutions I have\nseen range from [cross-origin resource sharing](http://www.w3.org/TR/cors/)\nfor local development activated via feature flags to completely disabling web\nsecurity in browsers.\n\n### Extending the space of possible solutions\nMany people don't know or use server-side includes. There are probably various\nreasons for this. One thing that I noticed myself is that it just takes time\nto setup a proper development environment with proxy servers.\n\n## Support\nSomething not working as expected? Feel free to contact me on Twitter via [@BenRipkens](https://twitter.com/BenRipkens)!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbripkens%2Fproxrox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbripkens%2Fproxrox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbripkens%2Fproxrox/lists"}