.gitignore | ||
go.mod | ||
go.sum | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
server_test.go | ||
server.go |
SDF Home Proxy
An http server to which one or more domains can be pointed to. Incoming requests will be proxied to an arbitrary target http server, like Amazon S3, Blogger.com or one of the many options available at sdf.org.
The main idea is to have a server which requires no configuration, handles TLS and can run on mostly any host on the internet with an IP address in one's possession. Obviously this solution is an end in itself and there already is Caddy.
Thanks to golang.org/x/crypto/acme/autocert, the server will automatically attempt to get a certificate from Let's Encrypt via the HTTP-01 challenge to enable TLS.
Usage
$ make build
$ export SDF_PROXY_LETS_ENCRYPT_EMAIL=domainadmin@example.com
$ export SDF_PROXY_ALLOWED_HOSTS=example.com,www.example.com
$ export SDF_PROXY_TARGET_HOST=example.sdf.org
$ export SDF_PROXY_TARGET_SCHEME=https
$ ./server
Future Ideas
- Support for rewriting URL paths
- Configuration option to keep keys and TLS certificates in memory only
- Support for cgi-bin and/or FastCGI
- Support for translating between protocols other than http for target servers
- for example http to gopher like gopherproxy with go-gopher
- Support for logging and rudimentary analytics