aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr <r@freesoftwareextremist.com>2020-02-18 21:48:21 +0000
committerr <r@freesoftwareextremist.com>2020-02-18 21:48:21 +0000
commit39a3bb7f3566ca0b7020d10abd5d5815096b49cb (patch)
tree55527f5b3a508c1f869c533a8f0eef4ff944cf9c
parentd028eb507733bde55c2c79740c699672d623fe07 (diff)
downloadbloat-39a3bb7f3566ca0b7020d10abd5d5815096b49cb.tar.gz
bloat-39a3bb7f3566ca0b7020d10abd5d5815096b49cb.zip
Update makefile and install instructions
Updated makefile now performs installation without overwriting config and database directory.
-rw-r--r--INSTALL79
-rw-r--r--Makefile51
-rw-r--r--README2
3 files changed, 67 insertions, 65 deletions
diff --git a/INSTALL b/INSTALL
index 89868d5..032f612 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,62 +1,49 @@
Installation
-Commands starting with # are to be is to run as root.
-
-1. Get the sources
+1. Get the source
Get the source code by running
$ git clone https://git.freesoftwareextremist.com/bloat
You can also download the latest source tarball from the URL
"https://git.freesoftwareextremist.com/bloat/snapshot/bloat-master.tar.gz"
2. Build and install
-Install GO from your system's package manager or from https://golang.org/dl,
-then run make to compile the source.
+Install GO from your system's package manager or from https://golang.org/dl.
+Then run make to compile the source.
$ make
# make install
This will perform a system wide installation of bloat. By default, it will
-install the binary in /usr/local/bin, data files in /var/bloat and config
-file in /etc. You can change these paths by editing the Makefile.
-
-3. Edit the config file
-Comments in the config file describe what each config value does. For most
-cases, you only need to change the value of "client_website".
-# $EDITOR /etc/bloat.conf
-
-4. Create a separate user account to run bloat
-It's not required to create a separate user account, but it's a good practice
-to do so.
+install the binary in /usr/local/bin and data files in /usr/local/share/bloat.
+You can change these paths by editing the Makefile.
+
+3. Edit and copy the config file
+Edit the generated config file to you liking and then copy it to the default
+config location. Comments in the config file describe what each config value
+does. For most cases, you only need to change the value of "client_website".
+$ $EDITOR bloat.def.conf
+# cp bloat.def.conf /etc/bloat.conf
+
+4. Create database directory
+Create a directory to store session information. Optionally, create a user
+to run bloat and change the ownership of the database directory accordingly.
+# mkdir /var/bloat
# useradd _bloat
# chown -R _bloat:_bloat /var/bloat
-Replace /var/bloat with the value you specified in the Makefile.
+Replace /var/bloat with the value you specified in the config file.
5. Run the binary
# su _bloat -c bloat
-Now you should create an init script to automatically start the service at
-system startup.
-
-6. Setup TLS
-You can use an HTTP server as a reverse proxy to serve bloat over HTTPS. Here's
-a config file snippet for nginx:
-`
-server {
- server_name bloat.example.com;
- location / {
- proxy_pass http://127.0.0.1:8080;
- }
-}
-server {
- server_name bloat.example.com;
- listen 443 ssl;
-
- ssl_trusted_certificate /etc/ssl/example.com.crt;
- ssl_certificate /etc/ssl/example.com.fullchain.pem;
- ssl_certificate_key /etc/ssl/private/example.com.key;
-
- location / {
- proxy_pass http://127.0.0.1:8080;
- }
-}
-`
-This configuration accepts for connections for bloat.example.com (specified by
-"client_website" in config) over both HTTP and HTTPS and forwards them to
-bloat's listen address (specified by "listen_address" in config).
+Now you should create an init script to automatically start bloat at system
+startup.
+
+
+Update
+
+Either run git pull to fetch the updated source or download the latest tarball
+from the URL mentioned in the installation step. Then run make to install the
+updated binary and data files
+$ git pull
+$ make
+# make install
+
+
+Note: Commands starting with # are to be is to run as root.
diff --git a/Makefile b/Makefile
index a3859bb..81dcb80 100644
--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,48 @@
GO=go
GOFLAGS=-mod=vendor
-BINPATH=/usr/local/bin
-DATAPATH=/var/bloat
-ETCPATH=/etc
+PREFIX=/usr/local
+BINPATH=$(PREFIX)/bin
+SHAREPATH=$(PREFIX)/share/bloat
-all: bloat
+TMPL=templates/*.tmpl
+SRC=main.go \
+ config/*.go \
+ kv/*.go \
+ mastodon/*.go \
+ model/*.go \
+ renderer/*.go \
+ repo/*.go \
+ service/*.go \
+ util/*.go \
-bloat: main.go
+all: bloat bloat.def.conf
+
+bloat: $(SRC) $(TMPL)
$(GO) build $(GOFLAGS) -o bloat main.go
+bloat.def.conf:
+ sed -e "s%=database%=/var/bloat%g" \
+ -e "s%=templates%=$(SHAREPATH)/templates%g" \
+ -e "s%=static%=$(SHAREPATH)/static%g" \
+ < bloat.conf > bloat.def.conf
+
install: bloat
+ mkdir -p $(BINPATH) $(SHAREPATH)/templates $(SHAREPATH)/static
cp bloat $(BINPATH)/bloat
chmod 0755 $(BINPATH)/bloat
- mkdir -p $(DATAPATH)/database
- cp -r templates $(DATAPATH)/
- cp -r static $(DATAPATH)/
- sed -e "s%=database%=$(DATAPATH)/database%g" \
- -e "s%=templates%=$(DATAPATH)/templates%g" \
- -e "s%=static%=$(DATAPATH)/static%g" \
- < bloat.conf > $(ETCPATH)/bloat.conf
+ cp -r templates/* $(SHAREPATH)/templates
+ chmod 0644 $(SHAREPATH)/templates/*
+ cp -r static/* $(SHAREPATH)/static
+ chmod 0644 $(SHAREPATH)/static/*
+
+tags: $(SRC)
+ gotags $(SRC) > tags
uninstall:
rm -f $(BINPATH)/bloat
- rm -fr $(DATAPATH)/templates
- rm -fr $(DATAPATH)/static
- rm -f $(ETCPATH)/bloat.conf
+ rm -fr $(SHAREPATH)/templates
+ rm -fr $(SHAREPATH)/static
clean:
rm -f bloat
-
-run: bloat
- ./bloat -f bloat.conf
+ rm -f bloat.def.conf
diff --git a/README b/README
index d7c7938..fdb72f1 100644
--- a/README
+++ b/README
@@ -21,7 +21,7 @@ $ ed bloat.conf
Run the binary
$ ./bloat -f bloat.conf
-You can now access the frontend at http://localhost:8080, which is the default
+You can now access the frontend at http://127.0.0.1:8080, which is the default
listen address. See the INSTALL file for more details.