- remove Java plugins (velocity/paper), dashboard, all MC-specific code
(handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names
cargo build/clippy(-D warnings)/test green (55 tests)
110 lines
3 KiB
Markdown
110 lines
3 KiB
Markdown
# Deployment - Rampart
|
||
|
||
> Как поднять Rampart с нуля.
|
||
|
||
---
|
||
|
||
## 1. Компоненты
|
||
|
||
| Бинарь | Роль | Порт по умолчанию |
|
||
|--------|------|-------------------|
|
||
| `rampart` | Edge-нода: XDP + PoW + userspace-фильтр | 25565 (+ metrics 9090) |
|
||
| `rampart-manager` | REST API управления | 8080 |
|
||
| `rampart-cli` | Управление через Manager API | — |
|
||
|
||
## 2. Требования
|
||
|
||
### Edge
|
||
- Ubuntu 22.04+ / Debian 12, kernel 5.10+
|
||
- KVM или bare metal (OpenVZ/LXC — XDP не работает)
|
||
- Rust toolchain для сборки
|
||
|
||
Для XDP дополнительно: `libelf-dev libbpf-dev clang linux-libc-dev`.
|
||
|
||
### Manager
|
||
- Любая VDS с Docker (Redis обязателен)
|
||
|
||
## 3. Быстрый старт — Edge
|
||
|
||
```bash
|
||
# Сборка
|
||
git clone https://github.com/loki5512344/rampart.git && cd rampart
|
||
cargo build --release --bin rampart
|
||
|
||
# Установка
|
||
sudo cp target/release/rampart /usr/local/bin/
|
||
|
||
# Конфиг
|
||
sudo mkdir -p /etc/rampart
|
||
sudo cp deploy/config/edge.toml /etc/rampart/config.toml
|
||
# Отредактируй backend.upstreams под свои бэкенды
|
||
|
||
# systemd unit
|
||
cat > /etc/systemd/system/rampart.service << 'EOF'
|
||
[Unit]
|
||
Description=Rampart Edge Node
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
Environment=RAMPART_CONFIG=/etc/rampart/config.toml
|
||
ExecStart=/usr/local/bin/rampart
|
||
Restart=always
|
||
RestartSec=5
|
||
LimitNOFILE=65535
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
EOF
|
||
|
||
systemctl daemon-reload
|
||
systemctl enable --now rampart
|
||
|
||
# Проверка
|
||
journalctl -u rampart -f
|
||
```
|
||
|
||
> ⚠️ В ядре нет ни одной реализации протокольного обработчика: реестр протоколов
|
||
> пуст, и `rampart` при старте требует feature `protocol-http` или внешний
|
||
> ProtocolHandler (см. src/bin/rampart.rs). До появления плагинов edge-нода
|
||
> запускается только в исследовательских целях.
|
||
|
||
## 4. Быстрый старт — Manager
|
||
|
||
```bash
|
||
export REDIS_URL="redis://127.0.0.1:6379/0"
|
||
export JWT_SECRET="$(openssl rand -hex 32)" # минимум 32 байта
|
||
export API_PASSWORD="не-changeme" # дефолт запрещён
|
||
cargo run --release --bin rampart-manager
|
||
# API на 0.0.0.0:8080
|
||
```
|
||
|
||
Инфраструктура (Redis, ClickHouse, Grafana):
|
||
|
||
```bash
|
||
docker compose up -d redis clickhouse grafana
|
||
```
|
||
|
||
## 5. Docker
|
||
|
||
```bash
|
||
# Образ edge
|
||
docker build -f deploy/docker/Dockerfile.edge -t rampart-edge .
|
||
|
||
# Полный стек edge + инфраструктура
|
||
docker compose -f deploy/docker-compose.yml up -d
|
||
```
|
||
|
||
## 6. Проверка после деплоя
|
||
|
||
```bash
|
||
☐ systemctl status rampart
|
||
☐ ss -tlnp | grep 25565
|
||
☐ curl http://localhost:9090/metrics | grep rampart_
|
||
☐ rampart-cli status # через Manager API
|
||
☐ rampart-cli doctor # диагностика
|
||
```
|
||
|
||
---
|
||
|
||
*Версия: 2.0 | Август 2026*
|