Files
Meshray-Manager/deploy/scripts/install.sh
T
2026-06-30 15:14:37 +08:00

71 lines
2.0 KiB
Bash

#!/bin/bash
# MeshRay Linux 一键安装脚本
set -e
MESHRAY_VERSION="v2.0.0"
INSTALL_DIR="/opt/meshray"
SERVICE_NAME="meshray"
echo "🚀 MeshRay 安装脚本 v${MESHRAY_VERSION}"
echo "======================================"
# 检测系统架构
ARCH=$(uname -m)
case $ARCH in
x86_64) ARCH="amd64" ;;
aarch64) ARCH="arm64" ;;
*) echo "❌ 不支持的架构:$ARCH"; exit 1 ;;
esac
echo "✅ 检测到系统架构:$ARCH"
# 检测 WireGuard 内核支持
if [ -d "/sys/module/wireguard" ]; then
echo "✅ WireGuard 内核模块已加载"
WG_MODE="kernel"
else
echo "⚠️ WireGuard 内核模块未加载,将使用 wireguard-go 用户态"
WG_MODE="userspace"
fi
# 创建安装目录
sudo mkdir -p $INSTALL_DIR
sudo mkdir -p /opt/meshray/data
sudo mkdir -p /opt/meshray/logs
sudo mkdir -p /opt/meshray/backups
# 下载 MeshRay(需要从 GitHub Releases 下载)
echo "📦 正在下载 MeshRay ${MESHRAY_VERSION}..."
# TODO: 替换为真实的下载链接
# wget -q https://git.zkcoi.com/zkcoi/meshray/releases/download/${MESHRAY_VERSION}/meshray-linux-${ARCH}.tar.gz
# tar -xzf meshray-linux-${ARCH}.tar.gz
# sudo mv meshray $INSTALL_DIR/
# 复制配置文件
if [ ! -f "$INSTALL_DIR/config.yaml" ]; then
echo "📝 创建配置文件..."
sudo cp configs/config.example.yaml $INSTALL_DIR/config.yaml
fi
# 安装 systemd 服务
echo "🔧 安装 systemd 服务..."
sudo cp deploy/systemd/meshray.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable $SERVICE_NAME
# 设置权限
echo "🔐 设置文件权限..."
sudo chown -R root:root $INSTALL_DIR
sudo chmod +x $INSTALL_DIR/meshray
echo ""
echo "✅ MeshRay 安装完成!"
echo ""
echo "启动服务:sudo systemctl start $SERVICE_NAME"
echo "查看状态:sudo systemctl status $SERVICE_NAME"
echo "查看日志:sudo journalctl -u $SERVICE_NAME -f"
echo ""
echo "Web UI: http://localhost:9531"
echo "默认端口可在 $INSTALL_DIR/config.yaml 中修改"