#!/bin/bash

# 1. 更新系统
echo "更新系统..."
sudo apt update -y && sudo apt upgrade -y

# 2. 安装 Python 3 和 venv（虚拟环境工具）
echo "安装 Python3 和 venv 工具..."
sudo apt install -y python3 python3-venv curl

# 3. 创建虚拟环境并激活
echo "创建 Python 虚拟环境..."
sudo mkdir -p /opt/venv
sudo python3 -m venv /opt/venv

# 确保虚拟环境所有权属于 www-data
sudo chown -R www-data:www-data /opt/venv

# 激活虚拟环境并安装依赖
echo "激活虚拟环境并安装 Flask 和 requests..."
sudo -u www-data /opt/venv/bin/pip install flask requests

# 4. 下载 Python 服务脚本
echo "下载 Python 服务脚本到 /opt/tcping_service.py..."
curl -o /opt/tcping_service.py https://ping.aa1.cn/download/tcping_service/tcping_service.py

# 确保脚本所有权和可执行权限
sudo chown www-data:www-data /opt/tcping_service.py
sudo chmod +x /opt/tcping_service.py

# 5. 创建 systemd 服务配置文件
echo "创建 systemd 服务文件..."
cat <<EOL | sudo tee /etc/systemd/system/tcping_service.service > /dev/null
[Unit]
Description=Flask HTTP Service
After=network.target

[Service]
User=www-data
Group=www-data
ExecStart=/opt/venv/bin/python /opt/tcping_service.py
WorkingDirectory=/opt
Restart=always
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target
EOL

# 6. 重新加载 systemd 配置并启动服务
echo "重新加载 systemd 配置并启动服务..."
sudo systemctl daemon-reload
sudo systemctl enable tcping_service.service
sudo systemctl start tcping_service.service

# 7. 输出服务状态
echo "服务状态如下："
sudo systemctl status tcping_service.service
