Skip to content

UI Branding and Dashboard Customization #1523

Description

@inzamol

I have shipped multiple projects using Flower, and it has been very useful for monitoring and managing Celery workloads.

One limitation I have encountered is the lack of UI customization and branding options. When Flower is deployed as part of an internal platform or a customer-facing application, I would like the Flower UI to feel like a native part of that platform.

Branding

It would be useful to have configuration options for:

  • Logo
  • Primary/secondary colors
  • Theme
  • Application name/title
  • Favicon
  • Basic UI styling
  • Custom CSS

Ideally, these should be configurable without maintaining a custom fork of Flower.

Table and Dashboard Customization

I would also like more control over the tables displayed throughout Flower.

For example:

  • Customize which columns are displayed
  • Reorder columns
  • Rename columns according to application requirements
  • Add filters to individual columns
  • Configure sorting
  • Persist table preferences
  • Customize the data shown in different views

Currently, the Task pages offer some column customization, but the Worker page doesn't offer similar customization.

It would be useful to have a consistent table customization mechanism across Flower, including:

  • Tasks
  • Workers
  • Queues
  • Other relevant views

Host/Worker Tabs

It would also be useful to have better customization of host/worker navigation, including the ability to:

  • Configure which host tabs are displayed
  • Rename tabs where appropriate
  • Organize/group hosts according to application requirements
  • Potentially customize the information displayed for each host

The overall goal is to make Flower more flexible when it is embedded into an existing application or platform while keeping the existing default behavior for users who don't need customization.

Planned Implementation

I would like to explore implementing UI customization as an optional configuration layer.

1. Branding Configuration

Introduce a centralized branding configuration supporting:

  • Application name/title
  • Logo
  • Favicon
  • Primary color
  • Secondary color
  • Theme
  • Custom CSS

The configuration could potentially be exposed through CLI options, environment variables, or a configuration file.

Example:

FLOWER_BRAND_NAME=My Platform
FLOWER_BRAND_LOGO=/path/to/logo.svg
FLOWER_BRAND_FAVICON=/path/to/favicon.ico
FLOWER_BRAND_PRIMARY_COLOR=#xxxxxx
FLOWER_BRAND_SECONDARY_COLOR=#xxxxxx
FLOWER_CUSTOM_CSS=/path/to/custom.css

Additional Context

The main use case is deploying Flower as part of a larger application or internal platform where Flower should visually and functionally integrate with the surrounding application.

The desired solution should ideally be:

  • Configuration-driven
  • Backward compatible
  • Docker-friendly
  • Production-ready
  • Easy to configure
  • Consistent across different Flower pages
  • Not dependent on maintaining a custom Flower fork

The table customization is particularly important because different teams may need different subsets of task and worker information.

I would also be interested in contributing to the implementation if there is interest in this feature.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions