No description
Find a file
2026-08-07 17:33:58 +00:00
sources fix: standalone tap-proxy.py — no more nested f-string mess 2026-08-07 17:33:58 +00:00
.gitignore feat: show version on startup and in setup.sh output 2026-08-01 16:11:57 +00:00
deploy.sh fix: docker symlink to /usr/bin, DOCKER_HOST for custom socket 2026-08-03 15:43:54 +00:00
JUMP_SERVER.md docs: jump server setup guide for remote assistance 2026-08-01 15:01:37 +00:00
README.md docs: add agent rules — discuss first, explicit production defaults 2026-08-03 17:14:29 +00:00
remove.sh add remove.sh for uninstalling running nodes 2026-08-03 15:11:35 +00:00
setup.sh fix: reboot-resistant systemd units for containerd + dockerd 2026-08-03 17:02:05 +00:00

Wallarm Docker Node Manager

Single-command Docker-based deployment for Wallarm filtering nodes. Multiple nodes on one host, no conflicts, zero native dependencies.

Quick Start

curl -fsSL "https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/setup.sh" | bash
sudo /opt/fw/deploy.sh

Setup installs Python + Docker, downloads deploy script. Menu handles everything.

Menu

[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

/opt/fw/app/fw.conf — JSON with node configs:

{
  "srv1": {
    "token": "your-wallarm-token",
    "cloud": "EU",
    "port": "8081",
    "upstream_ip": "10.1.0.10",
    "upstream_port": "8081",
    "mode": "monitoring"
  }
}

Architecture

deploy.py                 Single Python file, ~200 lines
  ├── Docker image: wallarm/node:6.13.0
  ├── Named volumes for persistence
  └── Unique ports per node

/opt/fw/
├── 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
  • 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

See JUMP_SERVER.md for jump server setup.

Agent Rules (for AI assistants working on this project)

CRITICAL — These override all other considerations:

  1. NEVER change code without explicit user approval. Discuss ideas first. Ask before implementing.
  2. Production defaults must be explicit. Never rely on Docker image defaults — nginx config, headers, client_max_body_size, upload limits must be set explicitly in our code. Defaults cause production outages.
  3. Header forwarding is not default. proxy_set_header X-Real-IP, X-Forwarded-For, X-Forwarded-Proto must be explicitly configured.
  4. client_max_body_size must be set high enough for production (e.g., 1024m) — default 1m blocks legitimate uploads.
  5. The user owns this project. You are assisting, not leading. Propose, don't impose.