guard/docs/deployment.md
loki5512344 15f474486a
feat!: universal redesign — drop Minecraft stack, single-crate architecture
- 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)
2026-08-24 01:50:22 +02:00

3 KiB
Raw Blame History

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

# Сборка
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

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):

docker compose up -d redis clickhouse grafana

5. Docker

# Образ edge
docker build -f deploy/docker/Dockerfile.edge -t rampart-edge .

# Полный стек edge + инфраструктура
docker compose -f deploy/docker-compose.yml up -d

6. Проверка после деплоя

☐ 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