Skip to content

Environment Variables

bunqueue can be configured through environment variables.

Server Configuration

TCP_PORT

TCP server port for client connections.

TypeDefaultExample
number67896789
Terminal window
TCP_PORT=6789 bunqueue start

HTTP_PORT

HTTP server port for REST API and metrics.

TypeDefaultExample
number67906790
Terminal window
HTTP_PORT=6790 bunqueue start

DATA_PATH

Path to SQLite database file.

TypeDefaultExample
string./data/bunq.db/var/lib/bunqueue/queue.db
Terminal window
DATA_PATH=/var/lib/bunqueue/queue.db bunqueue start

AUTH_TOKENS

Comma-separated list of authentication tokens.

TypeDefaultExample
string(none)token1,token2,token3
Terminal window
AUTH_TOKENS=secret-token-1,secret-token-2 bunqueue start

When set, all TCP and HTTP requests must include a valid token:

Terminal window
# TCP client
bunqueue push emails '{"to":"test@example.com"}' --token secret-token-1
# HTTP API
curl -H "Authorization: Bearer secret-token-1" http://localhost:6790/api/queues

Logging

LOG_LEVEL

Minimum log level to output.

TypeDefaultValues
stringinfodebug, info, warn, error
Terminal window
LOG_LEVEL=debug bunqueue start

LOG_FORMAT

Log output format.

TypeDefaultValues
stringtexttext, json
Terminal window
LOG_FORMAT=json bunqueue start

JSON format output:

{"level":"info","msg":"Server started","tcp":6789,"http":6790,"ts":"2024-01-15T10:30:00Z"}

S3 Backup Configuration

S3_BACKUP_ENABLED

Enable automated S3 backups.

TypeDefaultValues
booleanfalse0, 1, false, true
Terminal window
S3_BACKUP_ENABLED=1 bunqueue start

S3_ACCESS_KEY_ID

S3 access key for authentication.

TypeDefaultAliases
string(none)AWS_ACCESS_KEY_ID
Terminal window
S3_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE bunqueue start

S3_SECRET_ACCESS_KEY

S3 secret key for authentication.

TypeDefaultAliases
string(none)AWS_SECRET_ACCESS_KEY
Terminal window
S3_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY bunqueue start

S3_BUCKET

S3 bucket name for backups.

TypeDefaultAliases
string(none)AWS_BUCKET
Terminal window
S3_BUCKET=my-bunqueue-backups bunqueue start

S3_REGION

AWS region for S3 bucket.

TypeDefaultAliases
stringus-east-1AWS_REGION
Terminal window
S3_REGION=eu-west-1 bunqueue start

S3_ENDPOINT

Custom S3 endpoint for non-AWS providers.

TypeDefaultExample
string(none)https://account.r2.cloudflarestorage.com
Terminal window
# Cloudflare R2
S3_ENDPOINT=https://abc123.r2.cloudflarestorage.com bunqueue start
# MinIO
S3_ENDPOINT=http://localhost:9000 bunqueue start
# DigitalOcean Spaces
S3_ENDPOINT=https://nyc3.digitaloceanspaces.com bunqueue start

S3_BACKUP_INTERVAL

Interval between automated backups (milliseconds).

TypeDefaultExample
number21600000 (6 hours)3600000 (1 hour)
Terminal window
S3_BACKUP_INTERVAL=3600000 bunqueue start

S3_BACKUP_RETENTION

Number of backups to keep.

TypeDefaultExample
number730
Terminal window
S3_BACKUP_RETENTION=30 bunqueue start

S3_BACKUP_PREFIX

Prefix for backup files in S3.

TypeDefaultExample
stringbackups/bunqueue/prod/
Terminal window
S3_BACKUP_PREFIX=bunqueue/production/ bunqueue start

Complete Examples

Development

.env.development
TCP_PORT=6789
HTTP_PORT=6790
DATA_PATH=./data/dev.db
LOG_LEVEL=debug
LOG_FORMAT=text

Production

.env.production
TCP_PORT=6789
HTTP_PORT=6790
DATA_PATH=/var/lib/bunqueue/production.db
LOG_LEVEL=info
LOG_FORMAT=json
AUTH_TOKENS=prod-token-abc123,prod-token-xyz789
# S3 Backup
S3_BACKUP_ENABLED=1
S3_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
S3_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
S3_BUCKET=company-bunqueue-backups
S3_REGION=us-east-1
S3_BACKUP_INTERVAL=3600000
S3_BACKUP_RETENTION=30
S3_BACKUP_PREFIX=production/

Docker Compose

version: '3.8'
services:
bunqueue:
image: bunqueue:latest
ports:
- "6789:6789"
- "6790:6790"
volumes:
- bunqueue-data:/data
environment:
- TCP_PORT=6789
- HTTP_PORT=6790
- DATA_PATH=/data/queue.db
- LOG_LEVEL=info
- LOG_FORMAT=json
- AUTH_TOKENS=${AUTH_TOKENS}
- S3_BACKUP_ENABLED=1
- S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}
- S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY}
- S3_BUCKET=${S3_BUCKET}
- S3_REGION=${S3_REGION}
- S3_BACKUP_INTERVAL=21600000
- S3_BACKUP_RETENTION=7
volumes:
bunqueue-data:

Kubernetes

apiVersion: v1
kind: ConfigMap
metadata:
name: bunqueue-config
data:
TCP_PORT: "6789"
HTTP_PORT: "6790"
DATA_PATH: "/data/queue.db"
LOG_LEVEL: "info"
LOG_FORMAT: "json"
S3_BACKUP_ENABLED: "1"
S3_REGION: "us-east-1"
S3_BACKUP_INTERVAL: "21600000"
S3_BACKUP_RETENTION: "7"
S3_BACKUP_PREFIX: "kubernetes/"
---
apiVersion: v1
kind: Secret
metadata:
name: bunqueue-secrets
type: Opaque
stringData:
AUTH_TOKENS: "your-production-token"
S3_ACCESS_KEY_ID: "your-access-key"
S3_SECRET_ACCESS_KEY: "your-secret-key"
S3_BUCKET: "your-bucket"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: bunqueue
spec:
replicas: 1
selector:
matchLabels:
app: bunqueue
template:
metadata:
labels:
app: bunqueue
spec:
containers:
- name: bunqueue
image: bunqueue:latest
ports:
- containerPort: 6789
- containerPort: 6790
envFrom:
- configMapRef:
name: bunqueue-config
- secretRef:
name: bunqueue-secrets
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: bunqueue-pvc

Precedence

Environment variables take precedence in this order:

  1. Command-line arguments (highest)
  2. Environment variables
  3. Configuration file
  4. Default values (lowest)
Terminal window
# Command-line wins
TCP_PORT=6789 bunqueue start --tcp-port 7000
# Uses port 7000