docs: update README for Docker deployment
This commit is contained in:
parent
c747e9da63
commit
d75a9a34c9
1 changed files with 30 additions and 57 deletions
87
README.md
87
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
|
||||
|
|
|
|||
Loading…
Reference in a new issue