Merge branch 'master' of gitea.hashru.nl:dsprenkels/rushlink
This commit is contained in:
commit
0a35cb2508
59
README.md
59
README.md
@ -2,12 +2,53 @@
|
|||||||
|
|
||||||
A URL shortener and (maybe) a pastebin server for our #ru community.
|
A URL shortener and (maybe) a pastebin server for our #ru community.
|
||||||
|
|
||||||
## Build instructions
|
## Building
|
||||||
|
|
||||||
- `go get -u github.com/go-bindata/go-bindata/...`
|
- `go get -u github.com/go-bindata/go-bindata/...`
|
||||||
- `go generate ./...`
|
- `go generate ./...`
|
||||||
- `go build ./cmd/rushlink`
|
- `go build ./cmd/rushlink`
|
||||||
|
|
||||||
|
## Deploying
|
||||||
|
|
||||||
|
We recommend running `rushlink` behind a reverse proxy suitable for processing
|
||||||
|
HTTP requests, such as `nginx`, or `haproxy`.
|
||||||
|
|
||||||
|
## Sample `nginx` config
|
||||||
|
|
||||||
|
```
|
||||||
|
server {
|
||||||
|
location / {
|
||||||
|
root /var/www/rushlink;
|
||||||
|
proxy_pass http://127.0.0.1:8000;
|
||||||
|
proxy_set_header Host rushlink.local;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`rushlink` automatically detects whether `http` or `https` is used when
|
||||||
|
`X-Forwarded-Proto` is correctly set. Otherwise, pass `-root_url
|
||||||
|
https://rushlink.local` to the binary (e.g. in the `systemd` unit file).
|
||||||
|
|
||||||
|
## Sample `systemd` unit file
|
||||||
|
|
||||||
|
```
|
||||||
|
[Install]
|
||||||
|
WantedBy=nginx.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=rushlink
|
||||||
|
Group=nogroup
|
||||||
|
ExecStart=/var/lib/rushlink/rushlink -database /var/lib/rushlink/db -file-store /var/lib/rushlink/filestore -root_url https://rushlink.local
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Background
|
||||||
|
|
||||||
## Libraries
|
## Libraries
|
||||||
|
|
||||||
Use standard-Go-libraries if the job can be done with those. As of now, these
|
Use standard-Go-libraries if the job can be done with those. As of now, these
|
||||||
@ -24,7 +65,7 @@ are the exceptions:
|
|||||||
|
|
||||||
## Database
|
## Database
|
||||||
|
|
||||||
We will be using [`go.etcd.io/bbolt`]. This file should be the *only* file
|
We use [`go.etcd.io/bbolt`]. This file should be the *only* file
|
||||||
apart from our monolithic binary. All settings and keys should go in here.
|
apart from our monolithic binary. All settings and keys should go in here.
|
||||||
Any read-only data resides in the binary file (possibly compressed).
|
Any read-only data resides in the binary file (possibly compressed).
|
||||||
|
|
||||||
@ -105,17 +146,3 @@ header that the client sends. We can still wrap the plain-text page in a single
|
|||||||
We will try as hard as possible to not store any data about our users, and will
|
We will try as hard as possible to not store any data about our users, and will
|
||||||
only provide any data when we have the legal obligation to do so.
|
only provide any data when we have the legal obligation to do so.
|
||||||
|
|
||||||
## Sample `nginx` config
|
|
||||||
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
location / {
|
|
||||||
root /var/www/rushlink;
|
|
||||||
proxy_pass http://127.0.0.1:8000;
|
|
||||||
proxy_set_header Host rushlink.local;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user