[Fixed]-How do I add authentication and endpoint to Django Celery Flower Monitoring?


For custom address, use the --address flag.
For auth, use the --basic_auth flag.

See below:

# celery flower --help
Usage: /usr/local/bin/celery [OPTIONS]


  --address                        run on the given address
  --auth                           regexp  of emails to grant access
  --basic_auth                     colon separated user-password to enable
                                   basic auth
  --broker_api                     inspect broker e.g.
  --certfile                       path to SSL certificate file
  --db                             flower database file (default flower.db)
  --debug                          run in debug mode (default False)
  --help                           show this help information
  --inspect                        inspect workers (default True)
  --inspect_timeout                inspect timeout (in milliseconds) (default
  --keyfile                        path to SSL key file
  --max_tasks                      maximum number of tasks to keep in memory
                                   (default 10000) (default 10000)
  --persistent                     enable persistent mode (default False)
  --port                           run on the given port (default 5555)
  --url_prefix                     base url prefix
  --xheaders                       enable support for the 'X-Real-Ip' and
                                   'X-Scheme' headers. (default False)


You an use https://pypi.org/project/django-revproxy/

This way Flower is hidden behind Django auth which, and you don’t need rewrite rule in your webserver.

Orignal source of this answer: Celery Flower Security in Production

Leave a comment