Initial commit: FunConnect project with server, relay, client and admin panel
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
124
deploy.sh
Normal file
124
deploy.sh
Normal file
@@ -0,0 +1,124 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# FunMC 一键 Docker 部署脚本
|
||||
#
|
||||
# 用法:
|
||||
# curl -fsSL https://raw.githubusercontent.com/mofangfang/funmc/main/deploy.sh | bash
|
||||
# 或
|
||||
# ./deploy.sh
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${CYAN}"
|
||||
echo "╔═══════════════════════════════════════════════════════════╗"
|
||||
echo "║ FunMC Docker 一键部署脚本 ║"
|
||||
echo "║ 魔幻方开发 ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# 检查 Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo -e "${RED}错误: 未安装 Docker${NC}"
|
||||
echo "请先安装 Docker: https://docs.docker.com/get-docker/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
echo -e "${RED}错误: 未安装 Docker Compose${NC}"
|
||||
echo "请先安装 Docker Compose: https://docs.docker.com/compose/install/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Docker 已安装${NC}"
|
||||
|
||||
# 创建目录
|
||||
INSTALL_DIR="${FUNMC_DIR:-/opt/funmc}"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
cd "$INSTALL_DIR"
|
||||
|
||||
# 下载文件 (如果不存在)
|
||||
if [ ! -f "docker-compose.yml" ]; then
|
||||
echo -e "${YELLOW}下载配置文件...${NC}"
|
||||
curl -fsSL https://raw.githubusercontent.com/mofangfang/funmc/main/docker-compose.yml -o docker-compose.yml
|
||||
curl -fsSL https://raw.githubusercontent.com/mofangfang/funmc/main/Dockerfile.server -o Dockerfile.server
|
||||
curl -fsSL https://raw.githubusercontent.com/mofangfang/funmc/main/Dockerfile.relay -o Dockerfile.relay
|
||||
curl -fsSL https://raw.githubusercontent.com/mofangfang/funmc/main/.env.example -o .env.example
|
||||
fi
|
||||
|
||||
# 生成配置
|
||||
if [ ! -f ".env" ]; then
|
||||
echo -e "${YELLOW}生成配置文件...${NC}"
|
||||
|
||||
# 获取服务器 IP
|
||||
SERVER_IP=$(curl -s ifconfig.me || curl -s ipinfo.io/ip || hostname -I | awk '{print $1}')
|
||||
|
||||
# 生成随机密码和密钥
|
||||
DB_PASSWORD=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 24)
|
||||
JWT_SECRET=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 48)
|
||||
ADMIN_PASSWORD=$(openssl rand -base64 16 | tr -dc 'a-zA-Z0-9' | head -c 12)
|
||||
|
||||
cat > .env << EOF
|
||||
SERVER_IP=$SERVER_IP
|
||||
SERVER_NAME=FunMC Server
|
||||
SERVER_DOMAIN=
|
||||
DB_PASSWORD=$DB_PASSWORD
|
||||
JWT_SECRET=$JWT_SECRET
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_PASSWORD=$ADMIN_PASSWORD
|
||||
RUST_LOG=info
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN}✓ 配置文件已生成${NC}"
|
||||
fi
|
||||
|
||||
# 加载配置
|
||||
source .env
|
||||
|
||||
# 启动服务
|
||||
echo -e "${YELLOW}启动服务...${NC}"
|
||||
if command -v docker-compose &> /dev/null; then
|
||||
docker-compose up -d --build
|
||||
else
|
||||
docker compose up -d --build
|
||||
fi
|
||||
|
||||
# 等待服务启动
|
||||
echo -e "${YELLOW}等待服务启动...${NC}"
|
||||
sleep 10
|
||||
|
||||
# 显示结果
|
||||
echo ""
|
||||
echo -e "${CYAN}╔═══════════════════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${CYAN}║ ${GREEN}FunMC 部署完成!${CYAN} ║${NC}"
|
||||
echo -e "${CYAN}╚═══════════════════════════════════════════════════════════╝${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}服务器信息:${NC}"
|
||||
echo -e " API 地址: http://${SERVER_IP}:3000"
|
||||
echo -e " 管理面板: http://${SERVER_IP}:3000/admin"
|
||||
echo -e " 下载页面: http://${SERVER_IP}:3000/download"
|
||||
echo ""
|
||||
echo -e "${GREEN}管理员登录:${NC}"
|
||||
echo -e " 用户名: admin"
|
||||
echo -e " 密码: ${ADMIN_PASSWORD}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}重要提示:${NC}"
|
||||
echo -e " 请确保以下端口已开放:"
|
||||
echo -e " - 3000/tcp (API)"
|
||||
echo -e " - 3001/udp (内置中继)"
|
||||
echo -e " - 7900-7901/udp (中继服务器)"
|
||||
echo ""
|
||||
echo -e "${CYAN}常用命令:${NC}"
|
||||
echo -e " 查看日志: docker logs -f funmc-server"
|
||||
echo -e " 重启服务: docker-compose restart"
|
||||
echo -e " 停止服务: docker-compose down"
|
||||
echo -e " 更新服务: docker-compose pull && docker-compose up -d"
|
||||
echo ""
|
||||
echo -e "${GREEN}魔幻方开发 - 让 Minecraft 联机变得简单${NC}"
|
||||
Reference in New Issue
Block a user