Docker Deployment
Quick Start with Docker
The fastest way to get started with Proton is using Docker:Port Mappings
Proton exposes multiple ports for different protocols:| Port | Protocol | Description |
|---|---|---|
| 8123 | HTTP | REST API, JDBC driver (batch mode), web interfaces |
| 8463 | TCP | Native protocol for proton-client |
| 3218 | HTTP | HTTP API (streaming mode) |
| 9000 | TCP | ClickHouse-compatible native protocol |
| 5432 | PostgreSQL | PostgreSQL protocol compatibility |
| 9004 | MySQL | MySQL protocol compatibility |
Docker Compose Example
For production deployments or integration with Kafka/Redpanda, use Docker Compose:Docker Environment Variables
Configure Proton behavior using environment variables:| Variable | Default | Description |
|---|---|---|
PROTON_CONFIG | /etc/proton-server/config.yaml | Path to configuration file |
STREAM_STORAGE_BROKERS | - | Kafka broker addresses (e.g., kafka:9092) |
STREAM_STORAGE_TYPE | nativelog | Storage type: kafka or nativelog |
STREAM_STORAGE_CLUSTER_ID | - | Kafka cluster ID |
MAX_CONCURRENT_QUERIES | 100 | Maximum concurrent queries |
MAX_SERVER_MEMORY_USAGE_TO_RAM_RATIO | 0.9 | Memory usage ratio (0-1) |
MAX_SERVER_MEMORY_CACHE_TO_RAM_RATIO | 0.5 | Cache size ratio (0-1) |
Volume Mounts
For persistent data, mount these directories:Binary Deployment
One-Line Installation
Install Proton binary on Linux or macOS:proton binary and makes it available in your PATH.
Homebrew (macOS)
For macOS users, install via Homebrew:Manual Binary Deployment
- Download the binary from the releases page
-
Extract and install:
-
Start the server:
-
Connect with client:
Building from Source
For custom builds, compile from source:Ubuntu/Debian
macOS (Apple Silicon)
Optional Build Flags
- Disable JavaScript/V8 (smaller binaries):
Resource Requirements
Minimum Requirements
- CPU: 1 vCPU
- Memory: 512 MB (can run on AWS t2.nano)
- Disk: 500 MB for binary, plus data storage
- OS: Linux (Ubuntu 20.04+, RHEL 8+), macOS 11+
Recommended for Production
- CPU: 4+ vCPUs
- Memory: 8+ GB RAM
- Disk: SSD with sufficient space for data and checkpoints
- Network: Low-latency connection to Kafka/data sources
High-Performance Configuration
For maximum throughput (targeting 90M EPS):- CPU: 8+ vCPUs with AVX2/AVX-512 support
- Memory: 32+ GB RAM
- Disk: NVMe SSD for data and checkpoint storage
- Network: 10+ Gbps network interface
Deployment Architectures
Single Node
Simplest deployment for development and small workloads:With External Kafka
Production deployment with Kafka for streaming storage:Multi-Container Setup
Example Docker Compose with monitoring:Security Considerations
User and Permissions
Proton runs as usertimeplus (UID 101) in Docker:
Network Security
- Bind to specific interfaces instead of
0.0.0.0 - Use TLS for HTTP and TCP connections
- Implement firewall rules to restrict access
- Use authentication (configure in
users.yaml)
TLS Configuration
Enable HTTPS and secure TCP:Health Checks
Docker Health Check
HTTP Endpoint
TCP Connection Test
Next Steps
- Configure Proton settings in Configuration
- Set up monitoring with Monitoring
- Optimize performance with Performance Tuning