| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/bin/bash
- # YZWater Linux 安装脚本
- set -e
- APP_NAME="yzwater"
- INSTALL_DIR="/opt/yzwater"
- SERVICE_USER="yzwater"
- echo "==================================="
- echo "YZWater 安装脚本"
- echo "==================================="
- # 检查是否以 root 运行
- if [ "$EUID" -ne 0 ]; then
- echo "错误:请以 root 用户运行此脚本(使用 sudo)"
- exit 1
- fi
- # 创建用户
- echo "创建服务用户: $SERVICE_USER"
- if ! id "$SERVICE_USER" &>/dev/null; then
- useradd -r -s /bin/false -m -d /home/$SERVICE_USER $SERVICE_USER
- fi
- # 创建安装目录
- echo "创建安装目录: $INSTALL_DIR"
- mkdir -p $INSTALL_DIR
- mkdir -p $INSTALL_DIR/Data
- mkdir -p $INSTALL_DIR/Logs
- mkdir -p $INSTALL_DIR/Backups
- mkdir -p $INSTALL_DIR/projects
- # 检查发布文件
- if [ ! -f "YZWater.Avalonia" ]; then
- echo "错误:当前目录未找到 YZWater.Avalonia 可执行文件"
- echo "请先运行: dotnet publish -c Release -r linux-x64 --self-contained"
- exit 1
- fi
- # 复制文件
- echo "复制应用程序文件..."
- cp -r ./* $INSTALL_DIR/
- chown -R $SERVICE_USER:$SERVICE_USER $INSTALL_DIR
- # 安装 systemd 服务
- echo "安装 systemd 服务..."
- cp deploy/yzwater.service /etc/systemd/system/
- systemctl daemon-reload
- systemctl enable $APP_NAME
- echo "==================================="
- echo "安装完成!"
- echo "==================================="
- echo ""
- echo "启动服务: systemctl start $APP_NAME"
- echo "查看状态: systemctl status $APP_NAME"
- echo "查看日志: journalctl -u $APP_NAME -f"
- echo ""
- echo "配置文件位置: $INSTALL_DIR/yzwater-config.json"
- echo "数据库位置: $INSTALL_DIR/Data/yzwater.db"
- echo "日志位置: $INSTALL_DIR/Logs/"
|