A3S Gateway
Deployment
Deploy A3S Gateway with Helm, Docker, or as a standalone binary
Deployment
Helm (Kubernetes)
A3S Gateway ships with a production-ready Helm chart at deploy/helm/a3s-gateway/.
Install
helm install gateway deploy/helm/a3s-gatewayCustom Configuration
Pass a custom gateway.hcl via --set-file:
helm install gateway deploy/helm/a3s-gateway \
--set-file config=my-gateway.hclOr override individual values:
helm install gateway deploy/helm/a3s-gateway \
--set replicaCount=3 \
--set service.type=LoadBalancer \
--set image.tag=0.1.0Autoscaling
helm install gateway deploy/helm/a3s-gateway \
--set autoscaling.enabled=true \
--set autoscaling.minReplicas=2 \
--set autoscaling.maxReplicas=10 \
--set autoscaling.targetCPUUtilizationPercentage=70Ingress
helm install gateway deploy/helm/a3s-gateway \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set ingress.hosts[0].host=api.example.com \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=PrefixDashboard
The dashboard is enabled by default on port 9090:
kubectl port-forward svc/gateway-a3s-gateway 9090:9090
curl http://127.0.0.1:9090/api/gateway/healthHelm Values
Prop
Type
Chart Structure
deploy/helm/a3s-gateway/
├── Chart.yaml
├── values.yaml
└── templates/
├── _helpers.tpl
├── configmap.yaml # gateway.hcl from values.config
├── deployment.yaml # Pod spec with config volume
├── service.yaml # ClusterIP with http + dashboard
├── serviceaccount.yaml
├── ingress.yaml # Optional
├── hpa.yaml # Optional
└── NOTES.txtThe ConfigMap checksum is included as a pod annotation, so config changes trigger a rolling restart automatically.
Docker
docker run -d \
-v $(pwd)/gateway.hcl:/etc/a3s-gateway/gateway.hcl \
-p 8080:8080 \
-p 9090:9090 \
ghcr.io/a3s-lab/gateway:latest \
--config /etc/a3s-gateway/gateway.hclBinary
# Download
curl -L https://github.com/A3S-Lab/Gateway/releases/latest/download/a3s-gateway -o a3s-gateway
chmod +x a3s-gateway
# Run
./a3s-gateway --config gateway.hcl
# Validate config
./a3s-gateway validate --config gateway.hcl
# Systemd service
cat > /etc/systemd/system/a3s-gateway.service << EOF
[Unit]
Description=A3S Gateway
After=network.target
[Service]
ExecStart=/usr/local/bin/a3s-gateway --config /etc/a3s-gateway/gateway.hcl
Restart=always
User=a3s-gateway
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now a3s-gatewayHomebrew
brew tap a3s-lab/tap
brew install a3s-gateway
a3s-gateway --config gateway.hcl