Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bundle Caddy HTTP Proxy Server #6420

Closed
4 tasks
aaronc opened this issue Jun 12, 2020 · 4 comments
Closed
4 tasks

Bundle Caddy HTTP Proxy Server #6420

aaronc opened this issue Jun 12, 2020 · 4 comments
Milestone

Comments

@aaronc
Copy link
Member

aaronc commented Jun 12, 2020

Summary

Let's bundle https://caddyserver.com in the simd, etc. binary and let it run in the same process as the state machine, REST server, etc.

Problem Definition

Operators want as simple a devops experience from the core Cosmos SDK binary as possible. CORS and TLS are commonly desired features for public facing REST endpoints.

Proposal

In continuing with #6408 which bundles the REST server and #5921 which bundles gRPC infrastructure, we can bundle a production-grade golang web/proxy server in the same binary/start cmd.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@aaronc aaronc added this to the v0.40 milestone Jun 12, 2020
@aaronc aaronc changed the title Bundle Caddy Server Bundle Caddy HTTP Proxy Server Jun 12, 2020
@alexanderbez alexanderbez mentioned this issue Jun 14, 2020
8 tasks
@alessio
Copy link
Contributor

alessio commented Jun 14, 2020

Operators want as simple a devops experience from the core Cosmos SDK binary as possible. CORS and TLS are commonly desired features for public facing REST endpoints.

If I'm not mistaken, CORS can already be enabled via command line flag. We used to have self-signed certificates and TLS in the old REST server. We first set it to disabled by default, afterwards we removed TLS altogether because it comes with more contros than pros.

On this subject, please see @greg-szabo's assesment here (with which I fully agree): #3465 (comment).

@aaronc
Copy link
Member Author

aaronc commented Jun 18, 2020

If I'm not mistaken, CORS can already be enabled via command line flag.

@alessio the SDK's CORS support is currently marked as unsafe and trying to handle stuff like CORS/TLS ourselves is going to be complex and error prone. Users need an actual dedicated proxy to get the configuration correct.

That's why I am suggesting that we bundle Caddy as production-grade, golang proxy so that users that want that functionality can have it without compromise and we don't need to maintain a half-working version of CORS/TLS.

@jaekwon
Copy link
Contributor

jaekwon commented Jun 26, 2020

Please keep cosmos-sdk minimal.
Other projects should be able to include cosmos-sdk and add whatever they want.
All dependencies should be audited, and we don't have resources to audit caddyserver.

@aaronc
Copy link
Member Author

aaronc commented Aug 19, 2020

Yep, I also think this might be a bit too involved. Closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants