Docker Deployment¶
Deploy the ByteFreezer Proxy using Docker for development or single-host production deployments.
Quick Start¶
# Create config directory
mkdir -p /etc/bytefreezer
# Create config file (see Configuration section below)
vim /etc/bytefreezer/config.yml
# Run proxy
docker run -d \
--name bytefreezer-proxy \
--restart unless-stopped \
-v /etc/bytefreezer/config.yml:/etc/bytefreezer/config.yml \
-v /var/spool/bytefreezer-proxy:/var/spool/bytefreezer-proxy \
-v /var/cache/bytefreezer-proxy:/var/cache/bytefreezer-proxy \
-p 514:514/udp \
-p 514:514/tcp \
-p 6343:6343/udp \
-p 4739:4739/udp \
-p 8008:8008/tcp \
bytefreezer/proxy:latest
Port Mapping¶
Map ports based on your data sources:
| Source | Port | Protocol | Docker Flag |
|---|---|---|---|
| Syslog | 514 | UDP/TCP | -p 514:514/udp -p 514:514/tcp |
| sFlow | 6343 | UDP | -p 6343:6343/udp |
| IPFIX | 4739 | UDP | -p 4739:4739/udp |
| NetFlow v5/v9 | 2055 | UDP | -p 2055:2055/udp |
| eBPF | 2056 | UDP | -p 2056:2056/udp |
| API | 8008 | TCP | -p 8008:8008/tcp |
Host Network Mode¶
For dynamic port configuration from Control, use host networking:
docker run -d \
--name bytefreezer-proxy \
--network host \
-v /etc/bytefreezer/config.yml:/etc/bytefreezer/config.yml \
-v /var/spool/bytefreezer-proxy:/var/spool/bytefreezer-proxy \
-v /var/cache/bytefreezer-proxy:/var/cache/bytefreezer-proxy \
bytefreezer/proxy:latest
With --network host, the proxy binds directly to host ports. No -p flags needed - ports open automatically based on configuration from Control.
Docker Compose¶
version: '3.8'
services:
bytefreezer-proxy:
image: bytefreezer/proxy:latest
container_name: bytefreezer-proxy
restart: unless-stopped
network_mode: host # Or use 'ports:' for explicit mapping
volumes:
- ./config.yml:/etc/bytefreezer/config.yml:ro
- proxy-spool:/var/spool/bytefreezer-proxy
- proxy-cache:/var/cache/bytefreezer-proxy
# If not using host network, map ports explicitly:
# ports:
# - "514:514/udp"
# - "514:514/tcp"
# - "6343:6343/udp"
# - "8008:8008/tcp"
volumes:
proxy-spool:
proxy-cache:
Configuration¶
Create /etc/bytefreezer/config.yml:
app:
name: bytefreezer-proxy
config_mode: "control-only"
account_id: "your-account-id"
bearer_token: "your-api-key"
control_url: "https://api.bytefreezer.com"
config_polling:
enabled: true
interval_seconds: 60
receiver:
base_url: "http://your-receiver:8080" # Your Receiver webhook endpoint
batching:
enabled: true
max_bytes: 10485760
timeout_seconds: 60
compression_enabled: true
spooling:
enabled: true
directory: "/var/spool/bytefreezer-proxy"
health_reporting:
enabled: true
report_interval: 30
UDP Buffer Tuning¶
For high-throughput UDP sources:
# On the Docker host
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.rmem_default=8388608
Logs¶
# View logs
docker logs -f bytefreezer-proxy
# View last 100 lines
docker logs --tail 100 bytefreezer-proxy