-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
executable file
·81 lines (69 loc) · 3.52 KB
/
install.sh
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
CONFIG=$1
VERSION="v1.0.2"
NGINX_CONF="conf.d"
echo "##### LOADLINKER CONFIGURATION #####"
if [ "$CONFIG" == "server" ]; then
if [[ $(sudo &> /dev/null) ]]; then
echo "You don't have sudo right."
exit 1
elif [[ ! $(sudo which nginx) ]]; then
echo "Nginx is not installed. Please install Nginx first."
exit 1
fi
echo -n "Listen port (default: 50000): "
read listen_port
listen_port=${listen_port:-50000}
echo -n "IP to bind (default: 0.0.0.0): "
read ip_to_bind
ip_to_bind=${ip_to_bind:-0.0.0.0}
echo -n "Upstream path (default: /etc/loadlinker): "
read upstream
upstream=${upstream:-/etc/loadlinker}
echo "Downloading source files..."
mkdir -p /tmp/loadlinker-$VERSION && sudo mkdir $upstream
wget "https://github.com/SysAdm0/LoadLinker/releases/download/$VERSION/loadlinker-server" -O /tmp/loadlinker-server
wget -q "https://github.com/SysAdm0/LoadLinker/archive/refs/tags/$VERSION.tar.gz" -O /tmp/$VERSION.tar.gz
chmod +x /tmp/loadlinker-server && sudo mv /tmp/loadlinker-server /usr/bin/loadlinker-server
tar -xf /tmp/$VERSION.tar.gz -C /tmp/loadlinker-$VERSION --strip-components 1
echo "Configuring Nginx and checking permissions..."
if [[ -e "/etc/nginx/http.d/default.conf" ]]; then $NGINX_CONF="http.d"; fi
sudo mv /tmp/loadlinker-$VERSION/loadlinker/upstream.conf $upstream/upstream.conf
sudo rm -f /etc/nginx/sites-available/default && sudo rm -f /etc/nginx/sites-enabled/default
sudo mv /tmp/loadlinker-$VERSION/loadlinker/default.conf /etc/nginx/$NGINX_CONF/
sudo sed -i "s|/etc/loadlinker|$upstream|" /etc/nginx/$NGINX_CONF/default.conf
echo "Enabling LoadLinker service..."
sudo mv /tmp/loadlinker-$VERSION/loadlinker/loadlinker.service /etc/systemd/system/
sudo sed -i "s|^ExecStart=.*$|ExecStart=/usr/bin/loadlinker-server -p $listen_port -i $ip_to_bind -u $upstream|" \
/etc/systemd/system/loadlinker.service
sudo sh -c 'systemctl daemon-reload && systemctl enable loadlinker.service && systemctl start loadlinker.service'
elif [ "$CONFIG" == "agent" ]; then
echo -n "Server IP: "
read server_ip
echo -n "Server port (default: 50000): "
read server_port
server_port=${server_port:-50000}
echo -n "Application port (default: 8080): "
read app_port
app_port=${app_port:-8080}
echo "Downloading source files..."
mkdir -p /tmp/loadlinker-$VERSION
wget "https://github.com/SysAdm0/LoadLinker/releases/download/$VERSION/loadlinker-agent" -O /tmp/loadlinker-agent
wget -q "https://github.com/SysAdm0/LoadLinker/archive/refs/tags/$VERSION.tar.gz" -O /tmp/$VERSION.tar.gz
chmod +x /tmp/loadlinker-agent && sudo mv /tmp/loadlinker-agent /usr/bin/loadlinker-agent
tar -xf /tmp/$VERSION.tar.gz -C /tmp/loadlinker-$VERSION --strip-components 1
echo "Enabling LoadLinker service..."
sudo mv /tmp/loadlinker-$VERSION/loadlinker/loadlinker.service /etc/systemd/system/
sudo sed -i "s|^ExecStart=.*$|ExecStart=/usr/bin/loadlinker-agent -p $server_port -ip $server_ip -ap $app_port|" \
/etc/systemd/system/loadlinker.service
sudo sh -c 'systemctl daemon-reload && systemctl enable loadlinker.service && systemctl start loadlinker.service'
else
echo "Please specify 'server' or 'agent' as an argument."
echo "Usage examples:"
echo " ./install.sh server"
echo " ./install.sh agent"
exit 1
fi
echo "Cleaning build files..."
rm -rf /tmp/$VERSION.tar.gz /tmp/LoadLinker-$VERSION
echo "LoadLinker-$CONFIG $VERSION installed successfully!"