Declarative configuration

Manage a self-hosted workspace's name, slug, and use case from a YAML config file in version control, with those fields locked from dashboard edits.

JM
James Morton
Written By James MortonLast updated 1 day ago

Self-hosted Quackback can read an optional YAML config file and apply workspace identity settings from it, so you can keep them in version control alongside the rest of your infrastructure. Fields the file declares are locked from edits in the dashboard.

Note: The config file is entirely optional. Without it, every setting stays editable in the dashboard as normal.

How it works

Quackback watches /etc/quackback/config.yaml (change the path with the QUACKBACK_CONFIG_FILE environment variable). When the file is present:

  • Every value it declares is reconciled into the workspace settings, on startup and whenever the file changes.
  • Those fields become read-only in the dashboard.
  • Any field the file doesn't declare stays freely editable.

Remove a field from the file and that setting becomes editable again.

If the file can't be parsed or fails validation, Quackback logs the error and keeps the last valid configuration. An invalid file never silently unlocks fields.

Warning: Secrets are never read from this file. Sign-in providers, SSO, and integrations are configured in the admin UI, and their credentials stay encrypted in the database.

File format

The file is a Kubernetes-style manifest:

apiVersion: quackback.io/v1
kind: QuackbackConfig
metadata:
  source: ops-repo            # optional, free-form label
spec:
  workspace:
    name: Acme Feedback
    slug: acme
    useCase: saas
    onboardingComplete: true

apiVersion, kind, and spec are required. Everything inside spec is optional: declare only what you want to manage. Unknown keys make the file invalid.

Schema reference

spec.workspace

Field

Type

Notes

name

string

Workspace display name (up to 200 characters). Locked in the dashboard when set.

slug

string

Lowercase letters, digits, and hyphens (up to 50 characters). Locked in the dashboard when set.

useCase

enum

product_feedback, customer_support, help_center, internal, saas, consumer, or marketplace. Locked in the dashboard when set.

onboardingComplete

boolean

Set true to mark workspace onboarding as complete.

Keys from older config files

Earlier versions also accepted spec.auth (sign-in methods and SSO) and spec.features. These settings are now managed in the admin UI only. Quackback still accepts the keys so an older file doesn't fail validation, but it ignores them. Remove them from your file and configure sign-in under Admin > Settings > Access & Security.

Mount the file

With Docker, mount your config into the container:

services:
  app:
    volumes:
      - ./quackback-config.yaml:/etc/quackback/config.yaml:ro

For a manual install, place the file at /etc/quackback/config.yaml (or the path in QUACKBACK_CONFIG_FILE) and make sure the Quackback process can read it.

Was this helpful?

Your feedback shapes what we write next.