TapTallyTapTally
HomeUser GuideDeploymentArchitectureSourcesAdvanced
GitHub

Configuration

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.


Found an issue in the docs? Open an issue on GitHub.

TapTally — You tap, we tally. Free & self-hosted · GPLv3

GitHubDocker HubSupport