install-linux.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. # YZWater Linux 安装脚本
  3. set -e
  4. APP_NAME="yzwater"
  5. INSTALL_DIR="/opt/yzwater"
  6. SERVICE_USER="yzwater"
  7. echo "==================================="
  8. echo "YZWater 安装脚本"
  9. echo "==================================="
  10. # 检查是否以 root 运行
  11. if [ "$EUID" -ne 0 ]; then
  12. echo "错误:请以 root 用户运行此脚本(使用 sudo)"
  13. exit 1
  14. fi
  15. # 创建用户
  16. echo "创建服务用户: $SERVICE_USER"
  17. if ! id "$SERVICE_USER" &>/dev/null; then
  18. useradd -r -s /bin/false -m -d /home/$SERVICE_USER $SERVICE_USER
  19. fi
  20. # 创建安装目录
  21. echo "创建安装目录: $INSTALL_DIR"
  22. mkdir -p $INSTALL_DIR
  23. mkdir -p $INSTALL_DIR/Data
  24. mkdir -p $INSTALL_DIR/Logs
  25. mkdir -p $INSTALL_DIR/Backups
  26. mkdir -p $INSTALL_DIR/projects
  27. # 检查发布文件
  28. if [ ! -f "YZWater.Avalonia" ]; then
  29. echo "错误:当前目录未找到 YZWater.Avalonia 可执行文件"
  30. echo "请先运行: dotnet publish -c Release -r linux-x64 --self-contained"
  31. exit 1
  32. fi
  33. # 复制文件
  34. echo "复制应用程序文件..."
  35. cp -r ./* $INSTALL_DIR/
  36. chown -R $SERVICE_USER:$SERVICE_USER $INSTALL_DIR
  37. # 安装 systemd 服务
  38. echo "安装 systemd 服务..."
  39. cp deploy/yzwater.service /etc/systemd/system/
  40. systemctl daemon-reload
  41. systemctl enable $APP_NAME
  42. echo "==================================="
  43. echo "安装完成!"
  44. echo "==================================="
  45. echo ""
  46. echo "启动服务: systemctl start $APP_NAME"
  47. echo "查看状态: systemctl status $APP_NAME"
  48. echo "查看日志: journalctl -u $APP_NAME -f"
  49. echo ""
  50. echo "配置文件位置: $INSTALL_DIR/yzwater-config.json"
  51. echo "数据库位置: $INSTALL_DIR/Data/yzwater.db"
  52. echo "日志位置: $INSTALL_DIR/Logs/"