Add install instructions
[bloat] / INSTALL
1 Installation
2
3 Commands starting with # are to be is to run as root.
4
5 1. Get the sources
6 Get the source code by running
7 $ git clone https://git.freesoftwareextremist.com/bloat
8 You can also download the latest source tarball from the URL
9 "https://git.freesoftwareextremist.com/bloat/snapshot/bloat-master.tar.gz"
10
11 2. Build and install
12 Install GO from your system's package manager or from https://golang.org/dl,
13 then run make to compile the source.
14 $ make
15 # make install
16 This will perform a system wide installation of bloat. By default, it will
17 install the binary in /usr/local/bin, data files in /var/bloat and config
18 file in /etc. You can change these paths by editing the Makefile.
19
20 3. Edit the config file
21 Comments in the config file describe what each config value does. For most
22 cases, you only need to change the value of "client_website".
23 # $EDITOR /etc/bloat.conf
24
25 4. Create a separate user account to run bloat
26 It's not required to create a separate user account, but it's a good practice
27 to do so.
28 # useradd _bloat
29 # chown -R _bloat:_bloat /var/bloat
30 Replace /var/bloat with the value you specified in the Makefile.
31
32 5. Run the binary
33 # su _bloat -c bloat
34 Now you should create an init script to automatically start the service at
35 system startup.
36
37 6. Setup TLS
38 You can use an HTTP server as a reverse proxy to serve bloat over HTTPS. Here's
39 a config file snippet for nginx:
40 `
41 server {
42         server_name bloat.example.com;
43         location / {
44                 proxy_pass http://127.0.0.1:8080;
45         }
46 }
47 server {
48         server_name bloat.example.com;
49         listen 443 ssl;
50
51         ssl_trusted_certificate   /etc/ssl/example.com.crt;
52         ssl_certificate           /etc/ssl/example.com.fullchain.pem;
53         ssl_certificate_key       /etc/ssl/private/example.com.key;
54
55         location / {
56                 proxy_pass http://127.0.0.1:8080;
57         }
58 }
59 `
60 This configuration accepts for connections for bloat.example.com (specified by
61 "client_website" in config) over both HTTP and HTTPS and forwards them to
62 bloat's listen address (specified by "listen_address" in config).