docs: update README for Docker deployment

This commit is contained in:
admin 2026-08-03 14:23:23 +00:00
parent c747e9da63
commit d75a9a34c9

View file

@ -1,93 +1,66 @@
# Wallarm Node Manager # Wallarm Docker Node Manager
Single-binary deployment and management for Wallarm filtering nodes. Single-command Docker-based deployment for Wallarm filtering nodes.
Interactive menu, multi-instance, zero runtime dependencies. Multiple nodes on one host, no conflicts, zero native dependencies.
## Quick Start ## Quick Start
```bash ```bash
curl -fsSL "https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/setup.sh" | bash curl -fsSL "https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/setup.sh" | bash
sudo /opt/fw/deploy sudo /opt/fw/deploy.sh
``` ```
## Commands Setup installs Python + Docker, downloads deploy script. Menu handles everything.
```
/opt/fw/deploy Interactive menu
/opt/fw/deploy --deploy-all Deploy all nodes from fw.conf
/opt/fw/deploy --version Show version
```
## Menu ## Menu
``` ```
─── Main Menu ─── [1] Deploy all Deploy all nodes from fw.conf
[1] Deploy a node [2] Add a node Interactive config + deploy
[2] Edit a node [3] Status Show running containers
[3] Show status [4] Remove a node Stop + delete container
[4] Remove a node [5] Edit a node Update port, upstream, mode in fw.conf
[5] Remote tunnel
[6] Dashboard (TUI)
[q] Quit
``` ```
## Configuration ## Configuration
Node configuration is stored in `/opt/fw/fw.conf`: `/opt/fw/app/fw.conf` — JSON with node configs:
```json ```json
{ {
"nodes": {
"srv1": { "srv1": {
"token": "...", "token": "your-wallarm-token",
"cloud": "EU", "cloud": "EU",
"port": "8081", "port": "8081",
"upstream_ip": "10.1.0.10", "upstream_ip": "10.1.0.10",
"upstream_port": "8081", "upstream_port": "8081",
"labels": "group=srv1",
"mode": "monitoring" "mode": "monitoring"
} }
} }
}
``` ```
Modes: `monitoring`, `safe_blocking`, `block`, `off`.
## Architecture ## Architecture
``` ```
cmd/deploy/main.go Entry point — menu, deploy, edit, remove deploy.py Single Python file, ~200 lines
internal/ ├── Docker image: wallarm/node:6.13.0
native/ Node deployment, systemd, nginx ├── Named volumes for persistence
preflight/ System checks (14) └── Unique ports per node
state/ /opt/fw/state.json persistence
tunnel/ Reverse SSH over TLS:443
ui/ Bubbletea TUI (dashboard)
shared/ Validation, connectivity
setup.sh Bootstrap — clones repo, builds binary
Makefile Cross-compile targets
```
## Directory Layout
```
/opt/fw/ /opt/fw/
├── deploy Go binary ├── deploy.sh Entry wrapper
├── fw.conf Node configuration (JSON) ├── app/
├── state.json Deployment state │ ├── main.py Deploy script
├── {name}/wallarm/ Per-instance files │ ├── fw.conf Node config
│ ├── nginx/ Instance NGINX │ └── state.json Deployment state
│ ├── modules/ Wallarm modules └── wallarm-aio.sh Cached installer (native fallback)
│ ├── etc/ Wallarm config
│ └── ...
└── wallarm-aio.sh Cached Wallarm installer
``` ```
## Requirements ## Requirements
- Linux with systemd - Linux with systemd
- x86_64 or aarch64 - Docker (auto-installed by setup.sh)
- 2GB+ RAM, 10GB+ disk - Python 3.10+ (auto-installed by setup.sh)
- Outbound to api.wallarm.com (EU) or us1.api.wallarm.com (US) - Outbound to api.wallarm.com (EU) or us1.api.wallarm.com (US)
## Remote Assistance ## Remote Assistance