summaryrefslogtreecommitdiff
path: root/buildscripts/build/build_front.sh
blob: ed3cb8b99473eccb0e368367091e8317a54d1cb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/bash

export $(cat ~/.env | xargs)

chessh_source="https://github.com/Simponic/chessh"
chessh_path="$HOME/src/chessh"
build_output="/var/www/html/chessh_front"
nginx_site="/etc/nginx/sites-enabled/chessh_front.conf"
front_port=3000
nginx_conf="
server {
	listen ${front_port};
	listen [::]:${front_port};

	location / {
		root ${build_output};
		index index.html;
		try_files \$uri \$uri/ /index.html;
	}
}
"

# Grab deps
if [ $(which node) == "" ]
then
	curl -sSL https://deb.nodesource.com/setup_16.x | sudo bash -
	sudo apt install -y nodejs
fi
[ "$(which git)" != "" ] || sudo apt install -y git
[ "$(which nginx)" != "" ] || sudo apt install -y nginx

# Checkout source
if [ ! -d $chessh_path ]
then
	mkdir -p $chessh_path
	cd $chessh_path
	git init
	git remote add origin $chessh_source
	git pull origin
	git checkout main
	git config pull.rebase true
else
	cd $chessh_path
	git pull origin main
fi

# Build
cd $chessh_path/front
npm ci
npm run build

# Copy to nginx root
sudo rm -rf $build_output
sudo mkdir -p $build_output
sudo cp -r $chessh_path/front/build/* $build_output
sudo chown -R www-data $build_output

# Copy nginx config
echo "$nginx_conf" | sudo tee $nginx_site

# Restart nginx
sudo systemctl restart nginx