From d75a9a34c909721b43d5de9278455837e16afa23 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 3 Aug 2026 14:23:23 +0000 Subject: [PATCH] docs: update README for Docker deployment --- README.md | 87 +++++++++++++++++++------------------------------------ 1 file changed, 30 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 16abc38..f038ef6 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,66 @@ -# Wallarm Node Manager +# Wallarm Docker Node Manager -Single-binary deployment and management for Wallarm filtering nodes. -Interactive menu, multi-instance, zero runtime dependencies. +Single-command Docker-based deployment for Wallarm filtering nodes. +Multiple nodes on one host, no conflicts, zero native dependencies. ## Quick Start ```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 - -``` -/opt/fw/deploy Interactive menu -/opt/fw/deploy --deploy-all Deploy all nodes from fw.conf -/opt/fw/deploy --version Show version -``` +Setup installs Python + Docker, downloads deploy script. Menu handles everything. ## Menu ``` -─── Main Menu ─── - [1] Deploy a node - [2] Edit a node - [3] Show status - [4] Remove a node - [5] Remote tunnel - [6] Dashboard (TUI) - [q] Quit +[1] Deploy all Deploy all nodes from fw.conf +[2] Add a node Interactive config + deploy +[3] Status Show running containers +[4] Remove a node Stop + delete container +[5] Edit a node Update port, upstream, mode in fw.conf ``` ## Configuration -Node configuration is stored in `/opt/fw/fw.conf`: +`/opt/fw/app/fw.conf` — JSON with node configs: ```json { - "nodes": { - "srv1": { - "token": "...", - "cloud": "EU", - "port": "8081", - "upstream_ip": "10.1.0.10", - "upstream_port": "8081", - "labels": "group=srv1", - "mode": "monitoring" - } + "srv1": { + "token": "your-wallarm-token", + "cloud": "EU", + "port": "8081", + "upstream_ip": "10.1.0.10", + "upstream_port": "8081", + "mode": "monitoring" } } ``` -Modes: `monitoring`, `safe_blocking`, `block`, `off`. - ## Architecture ``` -cmd/deploy/main.go Entry point — menu, deploy, edit, remove -internal/ - native/ Node deployment, systemd, nginx - preflight/ System checks (14) - 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 -``` +deploy.py Single Python file, ~200 lines + ├── Docker image: wallarm/node:6.13.0 + ├── Named volumes for persistence + └── Unique ports per node -## Directory Layout - -``` /opt/fw/ -├── deploy Go binary -├── fw.conf Node configuration (JSON) -├── state.json Deployment state -├── {name}/wallarm/ Per-instance files -│ ├── nginx/ Instance NGINX -│ ├── modules/ Wallarm modules -│ ├── etc/ Wallarm config -│ └── ... -└── wallarm-aio.sh Cached Wallarm installer +├── deploy.sh Entry wrapper +├── app/ +│ ├── main.py Deploy script +│ ├── fw.conf Node config +│ └── state.json Deployment state +└── wallarm-aio.sh Cached installer (native fallback) ``` ## Requirements - Linux with systemd -- x86_64 or aarch64 -- 2GB+ RAM, 10GB+ disk +- Docker (auto-installed by setup.sh) +- Python 3.10+ (auto-installed by setup.sh) - Outbound to api.wallarm.com (EU) or us1.api.wallarm.com (US) ## Remote Assistance