Qilan2 commited on
Commit
05afd0f
·
verified ·
1 Parent(s): 4495316

Upload install.sh

Browse files
Files changed (1) hide show
  1. vpsgj/install.sh +117 -0
vpsgj/install.sh ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ INSTALL_DIR="/usr/local/proxylite"
4
+ DOTNET_DIR="$INSTALL_DIR/dotnet60"
5
+ SERVICE_DIR="$INSTALL_DIR/service"
6
+ DOTNET_URL="https://app.proxylite.ru/thirdparty/dotnet-runtime-6.0.10-linux-x64.tar.gz"
7
+ PROXYSERVICE_URL="https://app.proxylite.ru/netcoreapp-latest.tar"
8
+ PID_FILE="/var/run/proxylite.pid"
9
+
10
+ function check_root() {
11
+ if [[ $(id -u) -ne 0 ]]; then
12
+ echo "This script must be run as root"
13
+ exit 1
14
+ fi
15
+ }
16
+
17
+ function check_dependencies() {
18
+ for cmd in wget tar; do
19
+ if ! command -v $cmd &> /dev/null; then
20
+ echo "Error: $cmd is not installed"
21
+ exit 1
22
+ fi
23
+ done
24
+ }
25
+
26
+ function install_proxylite() {
27
+ local user_id=$1
28
+
29
+ echo "Installing ProxyLite"
30
+
31
+ mkdir -p $DOTNET_DIR $SERVICE_DIR
32
+
33
+ echo "Downloading .NET 6.0"
34
+ wget $DOTNET_URL -O /tmp/dotnet.tar.gz
35
+ echo "Unpacking .NET 6.0"
36
+ tar xzf /tmp/dotnet.tar.gz -C $DOTNET_DIR
37
+ rm /tmp/dotnet.tar.gz
38
+ chmod +x $DOTNET_DIR/dotnet
39
+
40
+ echo "Downloading ProxyService"
41
+ wget $PROXYSERVICE_URL -O /tmp/proxyservice.tar
42
+ echo "Unpacking ProxyService"
43
+ tar xf /tmp/proxyservice.tar -C $SERVICE_DIR
44
+ rm /tmp/proxyservice.tar
45
+
46
+ echo $user_id > $SERVICE_DIR/userid.ini
47
+
48
+ echo "ProxyLite installed successfully"
49
+ }
50
+
51
+ function start_proxylite() {
52
+ if [[ -f $PID_FILE ]]; then
53
+ echo "ProxyLite is already running"
54
+ return
55
+ fi
56
+
57
+ echo "Starting ProxyLite"
58
+ nohup $DOTNET_DIR/dotnet $SERVICE_DIR/ProxyService.Core.dll > /dev/null 2>&1 &
59
+ echo $! > $PID_FILE
60
+ echo "ProxyLite started with PID $(cat $PID_FILE)"
61
+ }
62
+
63
+ function stop_proxylite() {
64
+ if [[ ! -f $PID_FILE ]]; then
65
+ echo "ProxyLite is not running"
66
+ return
67
+ fi
68
+
69
+ echo "Stopping ProxyLite"
70
+ kill $(cat $PID_FILE)
71
+ rm $PID_FILE
72
+ echo "ProxyLite stopped"
73
+ }
74
+
75
+ function uninstall_proxylite() {
76
+ echo "Uninstalling ProxyLite"
77
+ stop_proxylite
78
+ rm -rf $INSTALL_DIR
79
+ echo "ProxyLite uninstalled"
80
+ }
81
+
82
+ function update_user_id() {
83
+ local user_id=$1
84
+ echo "Updating user ID to $user_id"
85
+ echo $user_id > $SERVICE_DIR/userid.ini
86
+ if [[ -f $PID_FILE ]]; then
87
+ stop_proxylite
88
+ start_proxylite
89
+ fi
90
+ }
91
+
92
+ check_root
93
+ check_dependencies
94
+
95
+ if [[ $1 =~ ^[0-9]+$ ]]; then
96
+ # If the first argument is a number, treat it as an install command
97
+ install_proxylite $1
98
+ start_proxylite
99
+ elif [[ $1 == "uninstall" ]]; then
100
+ uninstall_proxylite
101
+ elif [[ $1 == "stop" ]]; then
102
+ stop_proxylite
103
+ elif [[ $1 == "start" ]]; then
104
+ start_proxylite
105
+ elif [[ $1 == "restart" ]]; then
106
+ stop_proxylite
107
+ start_proxylite
108
+ elif [[ $1 == "update" && $2 =~ ^[0-9]+$ ]]; then
109
+ update_user_id $2
110
+ else
111
+ echo "Usage: $0 <user_id> (to install and start)"
112
+ echo " $0 {start|stop|restart|uninstall}"
113
+ echo " $0 update <user_id>"
114
+ exit 1
115
+ fi
116
+
117
+ exit 0