70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# xboard-node
|
|
|
|
Node backend for [Xboard](https://github.com/cedar2025/Xboard). Supports `sing-box` / `xray-core` dual kernels.
|
|
|
|
> **Disclaimer**: This project is for educational and learning purposes only.
|
|
|
|
## Features
|
|
|
|
- Protocols: V2Ray family, Trojan, Shadowsocks, Hysteria2, TUIC, AnyTLS
|
|
- Sync: WebSocket push + REST polling dual channel
|
|
- User controls: speed limit, device limit, alive-IP tracking, hot update
|
|
- Deploy modes: node mode, machine mode, standalone mode
|
|
- Multi-instance: single process binding multiple panels / nodes
|
|
|
|
## Install
|
|
|
|
### Docker
|
|
|
|
```bash
|
|
docker run -d --restart=always --network=host \
|
|
-e apiHost=https://panel.com -e apiKey=TOKEN -e nodeID=1 \
|
|
ghcr.io/cedar2025/xboard-node:latest
|
|
```
|
|
|
|
### Docker Compose
|
|
|
|
```bash
|
|
git clone -b compose --depth 1 https://github.com/cedar2025/xboard-node.git
|
|
cd xboard-node
|
|
vim config/config.yml # set panel.url / token / node_id
|
|
docker compose up -d
|
|
```
|
|
|
|
### Installer (Linux systemd)
|
|
|
|
```bash
|
|
# Node mode
|
|
curl -fsSL https://raw.githubusercontent.com/cedar2025/xboard-node/dev/install.sh | \
|
|
sudo bash -s -- --mode node --panel https://panel.example.com --token TOKEN --node-id 1
|
|
|
|
# Machine mode
|
|
curl -fsSL https://raw.githubusercontent.com/cedar2025/xboard-node/dev/install.sh | \
|
|
sudo bash -s -- --mode machine --panel https://panel.example.com --token TOKEN --machine-id 1
|
|
|
|
## xbctl
|
|
|
|
Run `xbctl` after installation for help. Common commands:
|
|
|
|
```bash
|
|
xbctl list # list all instances
|
|
xbctl status # running status
|
|
xbctl bind add-node --panel URL --token TOKEN --node-id 1
|
|
xbctl bind add-machine --panel URL --token TOKEN --machine-id 1
|
|
xbctl bind remove-node --panel URL --node-id 1
|
|
xbctl service restart
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Legacy single-panel config is fully compatible. Appending bindings auto-migrates to `instances` format. See `config.yml.example`.
|
|
|
|
## Extensions
|
|
|
|
- Custom routes: [docs-custom-routes.md](docs-custom-routes.md)
|
|
- Custom outbounds: [docs-custom-outbounds.md](docs-custom-outbounds.md)
|
|
|
|
## License
|
|
|
|
MPL-2.0.
|