Compare commits

...

5 Commits

Author SHA1 Message Date
c271378c71 修复脚本执行错误
Some checks failed
Compile / build (x64, windows-latest) (push) Failing after 38s
Compile / build (x64, ubuntu-latest) (push) Failing after 3m7s
2024-10-05 21:52:39 +08:00
5834abcd33 修复脚本执行错误 2024-10-05 21:50:12 +08:00
67475ef499 修复脚本执行错误 2024-10-05 21:20:22 +08:00
42c4db6c01 修复脚本执行错误 2024-10-05 21:02:50 +08:00
4af3579d70 新增Linux安装脚本 2024-10-05 20:53:58 +08:00
4 changed files with 118 additions and 17 deletions

View File

@ -21,25 +21,27 @@ _✨ 服务器状态 - 客户端 ✨_
## 💿 安装
使用 pip 安装(确保包路径在环境变量下)
- Linux 可使用脚本安装,带自动部署和自启动
pip install server-status
Debian系请使用pipx安装
```bash
sudo apt install pipx
sudo pipx install server-status
```shell
curl -sSL https://raw.githubusercontent.com/snowykami/server-status-client/refs/heads/main/deploy.sh | sudo bash
```
若出现环境问题,手动部署
```yaml
git clone https://github.com/snowykami/server-status-client.git
python -m venv .venv
source .venv/bin/activate
- 或手动部署
```shell
# 克隆仓库
git clone https://github.com/snowykami/server-status-client
cd server-status-client
# 配置环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install pdm
pdm install
python main.py --your-args
# 如需自启动请自行添加到系统服务
```
## 🎉 使用

0
deploy.cmd Normal file
View File

102
deploy.sh Executable file
View File

@ -0,0 +1,102 @@
#!/bin/bash
# check if sudo is used
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit 1
fi
# check install dir
install_dir="/opt"
echo -n "Install directory? (default: $install_dir/server-status-client): " && read -r install_dir_input
if [ -n "$install_dir_input" ]; then
install_dir="$install_dir_input"
fi
# check server
echo -n "Server? (required): " && read -r server
if [ -z "$server" ]; then
echo "Server is required"
exit 1
fi
# check token
echo -n "Token? (required): " && read -r token
if [ -z "$token" ]; then
echo "Token is required"
exit 1
fi
# check hostname
hostname=$(hostname)
echo -n "Hostname? (default: $hostname): " && read -r hostname_input
if [ -n "$hostname_input" ]; then
hostname="$hostname_input"
fi
# labels
echo -n "Labels? (space separated): " && read -r labels_input
if [ -n "$labels_input" ]; then
labels="$labels_input"
fi
# location
echo -n "Location? (optional): " && read -r location_input
if [ -n "$location_input" ]; then
location="$location_input"
fi
# clone repo
repo1="https://github.com/snowykami/server-status-client"
repo2="https://git.liteyuki.icu/snowykami/server-status-client"
# try 1 if failed try 2
git clone "$repo1" "$install_dir/server-status-client" || git clone "$repo2" "$install_dir/server-status-client"
cd "$install_dir/server-status-client" || { echo "Failed to clone repo"; exit 1; }
# create venv
python3 -m venv venv
python_exe="./venv/bin/python"
# check if venv is created
if [ ! -f "$python_exe" ]; then
echo "Failed to create venv"
exit 1
fi
echo "venv created successfully"
# activate the virtual environment
# install the required packages
echo "Installing the required packages"
$python_exe -m pip install pdm
$python_exe -m pdm install
# create the systemd service
echo "Creating the systemd service"
# generate random id
# shellcheck disable=SC2002
id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
#bash -c "cat <<EOF > /etc/systemd/system/server-status-client.service
#[Unit]
#Description=Server Status Client
#After=network-online.target
#
#[Service]
#Type=simple
#ExecStart=$install_dir/server-status-client/venv/bin/python main.py $server $token $id run -n $hostname --labels $labels --location $location
#WorkingDirectory=$install_dir/server-status-client
#Restart=on-failure
#RestartSec=10
#
#[Install]
#WantedBy=multi-user.target
#EOF"
# enable and start the service
systemctl enable server-status-client
systemctl start server-status-client
echo "server-status-client installed successfully"

View File

@ -1,3 +0,0 @@
from server_status.timezone import get_timezone
print(get_timezone())