{"id":23473118,"url":"https://github.com/caltechlibrary/corsproxy","last_synced_at":"2025-04-13T05:50:09.829Z","repository":{"id":47667279,"uuid":"257996315","full_name":"caltechlibrary/corsproxy","owner":"caltechlibrary","description":"Simple CORS proxy server suitable for use as a system daemon on CentOS/RHEL systems","archived":false,"fork":false,"pushed_at":"2021-08-18T22:04:04.000Z","size":117,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-13T05:50:05.803Z","etag":null,"topics":["cors","daemon","proxy-server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caltechlibrary.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-22T19:12:32.000Z","updated_at":"2021-06-19T04:15:40.000Z","dependencies_parsed_at":"2022-08-24T14:37:56.218Z","dependency_job_id":null,"html_url":"https://github.com/caltechlibrary/corsproxy","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":"caltechlibrary/template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fcorsproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fcorsproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fcorsproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caltechlibrary%2Fcorsproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caltechlibrary","download_url":"https://codeload.github.com/caltechlibrary/corsproxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670501,"owners_count":21142901,"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":["cors","daemon","proxy-server"],"created_at":"2024-12-24T17:15:24.032Z","updated_at":"2025-04-13T05:50:09.806Z","avatar_url":"https://github.com/caltechlibrary.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Corsproxy\u003cimg width=\"18%\" align=\"right\" src=\".graphics/corsproxy-logo.svg\"\u003e\n=========\n\nThis is a a simple CORS proxy server suitable to install as a system service on Linux servers.  It uses [CORS Anywhere](https://github.com/Rob--W/cors-anywhere).\n\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg?style=flat-square)](https://choosealicense.com/licenses/bsd-3-clause)\n[![Latest release](https://img.shields.io/github/v/release/caltechlibrary/corsproxy.svg?style=flat-square\u0026color=b44e88)](https://github.com/caltechlibrary/corsproxy/releases)\n\n\nTable of contents\n-----------------\n\n* [Introduction](#introduction)\n* [Installation](#installation)\n* [Usage](#usage)\n* [Known issues and limitations](#known-issues-and-limitations)\n* [Getting help](#getting-help)\n* [License](#license)\n* [Authors and history](#authors-and-history)\n* [Acknowledgments](#authors-and-acknowledgments)\n\n\nIntroduction\n------------\n\nThe development of web-based applications, particularly single-page applications written using JavaScript, can be stymied by problems involving [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) security measures enforced by web browsers.  One problem happens when a network server providing a remote API service does not support CORS: if the nature of the network API requires nontrivial types of operations (e.g., HTTP POST requests that contain data payloads), the web browser running the single-page application will enforce CORS requirements, and the API requests will fail when the server does not respond correctly.\n\nA simple solution to this problem is to insert an intermediate proxy server between the web application and the network service.  An example of such a proxy server is [CORS Anywhere](https://cors-anywhere.herokuapp.com/), an open-source proxy server that runs in NodeJS.  CORS\u0026nbsp;Anywhere works well, and only needs some additional elements to make it suitable for running as a standard system service on a Linux server.  This project (Corsproxy) aims to provide those additional elements.  Corsproxy also tries to simplify some of the configuration steps in using CORS Anywhere.\n\n\nInstallation\n------------\n\nDetailed installation and configuration instructions are given in the file [admin/README](admin/README.md).\n\n\nUsage\n-----\n\nCorsproxy is meant to be started and stopped using standard system tools such as `systemctl` on CentOS.  Detailed instructions are given in the file [admin/README](admin/README.md).\n\n\nKnown issues and limitations\n----------------------------\n\n* The way that host restrictions/rate limits are implemented is based primarily on the Origin header in HTTP requests.  This works and has some security advantages, but makes it more difficult to configure in some other situations.\n\n\nGetting help\n------------\n\nIf you find an issue, please submit it in [the GitHub issue tracker](https://github.com/caltechlibrary/corsproxy/issues) for this repository.\n\n\nLicense\n-------\n\nSoftware produced by the Caltech Library is Copyright (C) 2020, Caltech.  This software is freely distributed under a BSD/MIT type license.  Please see the [LICENSE](LICENSE) file for more information.\n\n\nAuthors and history\n---------------------------\n\nMichael Hucka developed the first version of Corsproxy after running into problems during the implementation of a Vue.js based application that had to interact with a non-CORS enabled network service.\n\n[Erik Demaine](https://github.com/edemaine) contributed a pull request in Feb. 20201 to add support for explicit white lists and black lists.\n\n\nAcknowledgments\n---------------\n\nCorsproxy makes use of [CORS Anywhere](https://github.com/Rob--W/cors-anywhere), without which it would have been effectively impossible to develop Corsproxy with the resources we had.\n\nThe [vector artwork](https://thenounproject.com/term/subtotal/2820924/) used as a starting point for the logo for this repository was created by [Timofey Rostilov ](https://thenounproject.com/t.rostilov/) for the [Noun Project](https://thenounproject.com).  It is licensed under the Creative Commons [Attribution 3.0 Unported](https://creativecommons.org/licenses/by/3.0/deed.en) license.  The vector graphics was modified by Mike Hucka to change the color and remove text.\n\nThis work was funded by the California Institute of Technology Library.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://www.caltech.edu\"\u003e\n    \u003cimg width=\"100\" height=\"100\" src=\".graphics/caltech-round.png\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Fcorsproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaltechlibrary%2Fcorsproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaltechlibrary%2Fcorsproxy/lists"}