The key values for the backend chart — config, secrets, networking, and scaling.
The backend splits configuration into a ConfigMap (non-sensitive, mounted at
/app/config/config.yaml) and a Secret (credentials, injected as
TAPTALLY_-prefixed environment variables). Any value can be overridden with a
TAPTALLY_ environment variable, which takes precedence over the config file.
Application settings (ConfigMap)
| Parameter |
Description |
Default |
config.app_name |
Application name |
TapTally |
config.debug |
Enable debug mode |
false |
config.environment |
development / staging / production |
production |
config.record_events |
Record tap/click events |
true |
config.use_alembic |
Run Alembic migrations |
true |
Time-series downsampling
Controls how the counter time-series endpoints bucket data for the dashboard and
analytics graphs. When a request does not pin a bucket size, the backend picks
the finest allowed bucket that keeps the response under timeseries_max_points
for the requested range (auto-downsampling). The allowlist also gates which
bucket strings are accepted.
| Parameter |
Description |
Default |
config.timeseries_allowed_buckets |
Accepted time_bucket sizes (comma-separated) |
1 minute, 5 minutes, 15 minutes, 1 hour, 1 day, 1 week, 30 days, 365 days |
config.timeseries_max_points |
Target max data points per response (drives auto bucket) |
1000 |
config.timeseries_default_bucket |
Fallback bucket when no range is given |
1 hour |
Database
| Parameter |
Description |
Default |
config.postgres_host |
PostgreSQL host |
db |
config.postgres_port |
PostgreSQL port |
5432 |
config.postgres_db |
Database name |
taptally |
secrets.postgres_user |
Username |
taptally |
secrets.postgres_password |
Password |
taptally |
secrets.database_url |
Optional direct DB URL |
"" |
secrets.async_database_url |
Optional async DB URL |
"" |
Security (Secret)
| Parameter |
Description |
Default |
secrets.jwt_secret |
JWT signing secret |
change-me-in-production |
secrets.jwt_minutes |
JWT expiry (minutes) |
60 |
secrets.admin_token |
Admin auth token |
superadmin-please-change |
secrets.api_key_pepper |
API key hashing pepper |
change-me-pepper |
Change every default secret before exposing TapTally beyond local testing.
S3 / object storage
| Parameter |
Description |
Default |
config.s3_bucket |
Bucket name |
taptally-files |
config.s3_region |
Region |
us-east-1 |
config.s3_endpoint |
Custom endpoint (e.g. MinIO) |
"" |
config.s3_force_path_style |
Path-style URLs (MinIO) |
false |
config.s3_url_expiration |
Presigned URL TTL (seconds) |
3600 |
secrets.s3_access_key_id |
Access key |
your-access-key |
secrets.s3_secret_access_key |
Secret key |
your-secret-key |
Networking
| Parameter |
Description |
Default |
service.type |
Service type |
ClusterIP |
service.port |
Service port |
80 |
ingress.enabled |
Enable Ingress |
false |
ingress.className |
Ingress class |
"" |
httpRoute.enabled |
Expose via Gateway API HTTPRoute |
false |
Autoscaling
| Parameter |
Description |
Default |
autoscaling.enabled |
Enable HPA |
false |
autoscaling.minReplicas |
Minimum replicas |
1 |
autoscaling.maxReplicas |
Maximum replicas |
100 |
autoscaling.targetCPUUtilizationPercentage |
Target CPU % |
80 |
Example: production with MinIO for object storage
image:
tag: v1.0.0
pullPolicy: Always
replicaCount: 3
config:
environment: production
debug: false
postgres_host: postgresql.production.svc.cluster.local
postgres_db: taptally_prod
s3_endpoint: http://minio:9000
s3_force_path_style: true
secrets:
postgres_user: taptally_user
postgres_password: <strong-password>
jwt_secret: <random-secret>
admin_token: <secure-admin-token>
api_key_pepper: <random-pepper>
s3_access_key_id: <access-key>
s3_secret_access_key: <secret-key>
ingress:
enabled: true
className: nginx
hosts:
- host: api.taptally.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: taptally-backend-tls
hosts:
- api.taptally.example.com
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 20
targetCPUUtilizationPercentage: 70
For the complete parameter list, see the chart's
values.yaml
and README.