Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Unicellular-SU/ark_server_tools

Open more actions menu

Repository files navigation

ARK Server Manager

基于 Next.js 15 的 ARK: Survival Evolved 服务器 Web 管理后台,集成 ark-server-tools。

Next.js TypeScript

功能特性

  • 🎮 服务器管理 - 启动/停止/重启/安装/更新
  • 📊 实时监控 - CPU、内存、玩家数量(SSE 实时更新)
  • ⚙️ 配置管理 - 图形化配置界面,保存到 .cfg 文件
  • 🧩 Mod 管理 - 安装/卸载 Steam Workshop Mod
  • 🌐 集群配置 - 多服互通设置
  • 🎯 RCON 控制台 - Web 终端,快捷命令
  • 📝 日志查看 - 实时日志流

快速开始

前提条件

  • Linux 系统(Ubuntu 20.04+)
  • Node.js 20+
  • ark-server-tools 已安装

安装 ark-server-tools

curl -sL https://raw.githubusercontent.com/arkmanager/ark-server-tools/master/netinstall.sh | sudo bash -s steam

安装项目

# 1. 克隆项目
git clone <your-repo-url>
cd ark-server-manager

# 2. 安装依赖
npm install

# 3. 配置环境变量
cp .env.example .env
nano .env

# 4. 启动开发服务器
npm run dev

# 5. 访问
http://localhost:3000

配置说明

环境变量 (.env)

ARK_TOOLS_PATH=arkmanager
ARK_SERVERS_PATH=/home/steam/ARK
ARK_INSTANCE_CONFIG_DIR=/etc/arkmanager/instances
CLUSTER_DATA_PATH=/home/steam/cluster
PORT=3000

实例配置

创建 /etc/arkmanager/instances/main.cfg

arkserverroot="/home/steam/ARK"
serverMap="TheIsland"

# 端口(每个实例必须唯一!)
ark_Port="7778"
ark_QueryPort="27015"
ark_RCONPort="32330"

# RCON
ark_RCONEnabled="True"
ark_ServerAdminPassword="your-password"

# 服务器设置
ark_SessionName="My Server"
ark_MaxPlayers="70"

# 可选:Mod
# ark_GameModIds="731604991,839162288"

详细配置:查看 docs/CONFIGURATION.md

使用指南

仪表盘

  • 查看所有服务器状态
  • 实时资源监控
  • 快速启动/停止操作

服务器管理

  • 安装新服务器实例(选择地图)
  • 启动/停止/重启(带确认对话框)
  • 检查并应用更新

配置管理

  1. 访问 /config/<instance>
  2. 修改设置(Basic / Gameplay / Advanced)
  3. 保存配置(写入 .cfg 文件)
  4. 重启服务器以应用更改

重要:配置修改后必须重启服务器才能生效!

Mod 管理

  1. 访问 /mods 页面
  2. 输入 Steam Workshop Mod ID(如:731604991)
  3. 点击 Install 安装
  4. 在 Configuration → Gameplay 中添加 Mod ID
  5. 重启服务器加载 Mod

RCON 控制台

  • 选择运行中的服务器
  • 使用快捷命令或输入自定义命令
  • 查看命令历史

部署

Docker(推荐)

docker-compose up -d

PM2

npm run build
pm2 start ecosystem.config.js

重要注意事项

⚠️ 端口配置

每个服务器实例必须使用唯一的端口:

  • 共享端口 → 服务器崩溃
  • 共享 RCON 端口 → 卡在 0/0 玩家

建议端口配置:

# 实例 1: Port=7778, QueryPort=27015, RCONPort=32330
# 实例 2: Port=7780, QueryPort=27017, RCONPort=32332
# 实例 3: Port=7782, QueryPort=27019, RCONPort=32334

⚠️ 配置生效

  • 配置保存到 /etc/arkmanager/instances/<instance>.cfg
  • 参数格式:ark_MaxPlayers="70"
  • 必须重启服务器才能生效

⚠️ 会话名称

  • 避免特殊字符(!、&、[ 等)
  • 或在 GameUserSettings.ini 中手动设置

故障排除

权限问题:无法保存配置

快速解决

# 方法 1:使用用户级配置(推荐)
mkdir -p ~/.config/arkmanager/instances
cp /etc/arkmanager/instances/*.cfg ~/.config/arkmanager/instances/
# 更新 .env: ARK_INSTANCE_CONFIG_DIR=$HOME/.config/arkmanager/instances

# 方法 2:修改权限
sudo chown -R $USER:$USER /etc/arkmanager/instances

# 方法 3:以 steam 用户运行
sudo -u steam npm run dev

详见:docs/PERMISSION_SETUP.md

配置修改不生效

  1. 检查 .cfg 文件是否已更新
  2. 确认已重启服务器
  3. 等待服务器完全启动(状态:Running)

端口冲突

# 检查端口配置
grep "ark_.*Port" /etc/arkmanager/instances/*.cfg

RCON 连接失败

  • 确保服务器状态为 "Running"
  • 检查 ark_RCONEnabled="True"
  • 验证 RCON 端口(默认 32330)

项目结构

ark_server_tools/
├── app/                # Next.js App Router
│   ├── api/           # API 路由(21 个端点)
│   ├── dashboard/     # 仪表盘
│   ├── servers/       # 服务器管理
│   ├── config/        # 配置
│   ├── mods/          # Mod 管理
│   ├── cluster/       # 集群
│   ├── rcon/          # RCON
│   └── logs/          # 日志
├── components/        # React 组件
├── lib/               # 核心库
│   ├── ark-manager.ts
│   ├── config-manager.ts
│   ├── mod-manager.ts
│   ├── rcon-client.ts
│   └── system-monitor.ts
├── docs/              # 文档
│   └── CONFIGURATION.md
├── Dockerfile
├── docker-compose.yml
└── ecosystem.config.js

技术栈

  • 前端: Next.js 15, React 18, TypeScript, Tailwind CSS, shadcn/ui
  • 后端: Next.js API Routes, ark-server-tools
  • 实时通信: Server-Sent Events (SSE)
  • 部署: Docker, PM2

API 端点

查看所有 API 端点

服务器管理

  • GET /api/servers - 列出所有服务器
  • GET /api/servers/[instance] - 获取服务器状态
  • POST /api/servers/[instance] - 启动服务器
  • PUT /api/servers/[instance] - 重启服务器
  • DELETE /api/servers/[instance] - 停止服务器
  • POST /api/servers/[instance]/install - 安装服务器
  • PUT /api/servers/[instance]/install - 更新服务器
  • GET /api/servers/[instance]/install - 检查更新

配置管理

  • GET /api/servers/[instance]/config - 读取配置
  • POST /api/servers/[instance]/config - 保存配置

Mod 管理

  • GET /api/mods/[instance] - 列出 Mod
  • POST /api/mods/[instance] - 安装 Mod
  • DELETE /api/mods/[instance] - 卸载 Mod
  • GET /api/mods/[instance]/check - 检查 Mod 更新

RCON

  • POST /api/rcon/[instance] - 执行 RCON 命令
  • GET /api/rcon/[instance] - 获取命令历史
  • DELETE /api/rcon/[instance] - 断开 RCON

实时监控

  • GET /api/events - SSE 服务器状态流
  • GET /api/logs/[instance] - SSE 日志流

集群

  • GET /api/cluster - 获取集群配置
  • POST /api/cluster - 保存集群配置

安全建议

  • 无内置认证,建议部署在反向代理(nginx + 认证)后
  • 或使用 VPN 限制访问
  • 使用强 RCON 密码
  • 配置防火墙规则

License

MIT License - 详见 LICENSE

参考资源


版本: 1.0.0
快速开始: docs/QUICK_START.md
配置指南: docs/CONFIGURATION.md
故障排除: docs/TROUBLESHOOTING.md

About

Web UI wrapper for ark-server-tools - manage ARK: Survival Evolved Linux servers with real-time monitoring, RCON, and mod management

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.