Skip to content

Commit 81c85a3

Browse files
committed
added README
1 parent 477a1af commit 81c85a3

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
HTTPSify
2+
========
3+
A `Let'sEncrypt` based reverse proxy, that will automatically generate & renew valid `ssl` certs for your domains, it also enables the `http/2` protocol by default, and uses `roundrobin` as an algorithm to loadbalance the incoming requests between multiple `upstreams`, as well as redirecting the traffic from `http` traffic to `https` just if you enabled the flag `--redirect`.
4+
5+
NOTES
6+
=======
7+
> HTTPSify only supports `http-01` challenge because [Let's Encrypt disables TLS-SNI-01 validation](http://www.zdnet.com/article/lets-encrypt-disables-tls-sni-01-validation/)
8+
9+
# Quick Start
10+
11+
### # Using Docker
12+
> Just run the following and then have fun !!
13+
```bash
14+
$ docker run --network host -v ~/.httpsify:/.httpsify -p 443:443 alash3al/httpsify
15+
```
16+
17+
## # From Binaries
18+
> Go to [releases page](https://github.com/alash3al/httpsify/releases)
19+
20+
### # Building from source
21+
> You must have the `Go` environment installed
22+
```bash
23+
$ go get -u github.com/alash3al/httpsify
24+
```
25+
26+
### # Configurations
27+
> Goto your `$HOME` Directory and edit the `hosts.json` to something like this
28+
```json
29+
{
30+
"example1.com": ["http://localhost:9080"],
31+
"example2.com": ["http://localhost:8080", "http://localhost:8081"]
32+
}
33+
```
34+
> As you see, the configuration file accepts a `JSON` object/hashmap of `domain` -> `upstreams`,
35+
and yes, it can loadbalance the requests between multiple upstreams using `roundrobin` algorithm.
36+
37+
> Also You don't need to restart the server to reload the configurations, because `httpsify` automatically watches the
38+
configurations file and reload it on any change.
39+
40+
# License
41+
> The MIT License (MIT)
42+
43+
> Copyright (c) 2016 Mohammed Al Ashaal
44+
45+
> Permission is hereby granted, free of charge, to any person obtaining a copy
46+
of this software and associated documentation files (the "Software"), to deal
47+
in the Software without restriction, including without limitation the rights
48+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
49+
copies of the Software, and to permit persons to whom the Software is
50+
furnished to do so, subject to the following conditions:
51+
52+
> The above copyright notice and this permission notice shall be included in all
53+
copies or substantial portions of the Software.
54+
55+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
56+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
57+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
58+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
59+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
60+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func main() {
2222
if *flagSendXSecuredBy {
2323
c.Response().Header().Set("X-Secured-By", "https://github.com/alash3al/httpsify")
2424
}
25-
next(c)
25+
return next(c)
2626
}
2727
})
2828

0 commit comments

Comments
 (0)