I would like you to help me to change the superset logo, it is my first time using containers and I don't know how to change the logo. I've been searching and they say that with the container id you can change it. What happens is that I run superset with docker compose and apparently there are several ID and I have placed several and I get error. I appreciate if you can help me with this problem.

Comment From: aakashkumarmaple

You need to change the icon from the superset frontend file and rebuild it. This is one of the way i can think off

Comment From: julemole

I already did it and it didn't work, and I can't find a way to do it.

Comment From: romulo-brito

Add your logo file to static/assets/images And in the docker/superset_config.py file add a line with APP_ICON=/static/assets/images/logo.png Then you need to docker compose up again.

Comment From: julemole

I had already made those changes, but it turns out that I was running it in non-dev mode, but now when I do the docker-compose up command it doesn't run, I don't get some kind of error either, so I don't know how to fix this. I already deleted and cloned the repository and it doesn't load, it only works in non-dev mode.

Comment From: skp163

APP_ICON=/static/assets/images/logo.png

Same issue for me as well

Comment From: git4rb

Achieved the task successfully. I am currently running in non-dev mode with Dockerized Superset version 3.0.1. Simply add the following lines in 'superset_config.py

## Change the app icon using a CDN
APP_ICON = "https://yourdomain.com/logo.png"  
## Change the logo
FAVICONS = [{"href": "https://yourdomain.com/favicon.png"}]

For any other configurations, obtain the key-value pairs from the file 'superset/config.py' inside the Docker container and modify accordingly, play with that. Hope this helps.

Comment From: prononext

Is there any way to set that in the compose file directly as env instead editing the superset_config.py?

I have tried:

- SUPERSET_APP_NAME=superset
- SUPERSET_APP_ICON=https://mylogodomain.com/logo.png
- SUPERSET_LOGO_TARGET_PATH=/
- SUPERSET_LOGO_TOOLTIP=My Custom Tooltip

and

- APP_NAME=superset
- APP_ICON=https://mylogodomain.com/logo.png
- LOGO_TARGET_PATH=/
- LOGO_TOOLTIP=My Custom Tooltip

sadly no success. Would be nice if there would be any solution, that works seemless with docker.

Comment From: skp163

Not working for me. The logo is not loading on the app. Print screen attached. Screenshot 2023-12-06 at 10 20 32 PM

Comment From: prononext

@skp163 what did you do exactly now? your result looks positive.

Comment From: skp163

@prononext I just added these 2 lines of code in superset_config.py .

APP_NAME = "Superset" APP_ICON = "https://yourdomain.com/logo.png"

Comment From: skp163

Hy, Anyone can help me on this logo change? why it is not loading. Only showing the App name

Not working for me. The logo is not loading on the app. Print screen attached.

Comment From: Rogermax

Hey people, I manage to change the icon and the favicon (in my case docker) setting this in docker-compose

    volumes:
      - ./superset/superset_config.py:/app/superset_config.py
      - ./superset/logo.png:/app/superset/static/assets/images/logo.png
      - ./superset/logo.png:/app/superset/static/assets/images/favicon.png

In my docker I see that superset is under /app and cheking the web of superset I saw that is getting the resources from /static/assets/.... Apache Superset How can I change the logo? I am using docker compose

So, changing the content of superset_config.py to this:

# Visual Customizations
APP_NAME = <YOUR_APP_NAME>
APP_ICON="/static/assets/images/logo.png"
APP_ICON_WIDTH = 200
LOGO_TARGET_PATH = '/' 
LOGO_TOOLTIP = <LOGO_TOOLTIP_TEXT>

solved my problem!

Good luck!

Comment From: AHAn555

u need to change place your png file in docker container (superset_app:/app/superset/static/assets/images) thats worked for me

Comment From: rusackas

Hi all! Thanks to those who have provided all the helpful context. I'm going to close this since it's not a bug, but feel free to continue the thread as needed, or we can move it to a GitHub discussion if that's needed.

Comment From: mickymrt

Hi I'm new to superset, trying to customize the log as well in docker deployment but having the same issue. Followed the steps above and also as per this link https://www.coursebytes.dev/superset/ I have copied :~/superset$ ll superset-frontend/src/assets/images/ki-nav-brand.png -rw-rw-r-- 1 3571 Apr 18 22:13 superset-frontend/src/assets/images/ki-nav-brand.png updated docker/pythonpath_dev/superset_config_docker.py to include APP_ICON = "/static/assets/images/ki-nav-brand.png" restarted superset, but he image is broken This is very frustrating! Even tried to replace the superset-logo-horiz.png with ki-nav-brand.png but that didn't work either. APP_NAME = and LOGO_TOOLTIP = settings take affect ok 2024-04-25_9-34-35

I'm using nginx-proxy if that helps. I see these errors when loading nginx-proxy-1 | nginx.1 | <examplename>.org 10.6.120.143 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/fontawesome/solid.min.css HTTP/2.0" 200 319 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "172.18.0.6:8088" superset_app | 172.18.0.4 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/ab.css HTTP/1.1" 200 294 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" superset_app | 172.18.0.4 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/fontawesome/solid.min.css HTTP/1.1" 200 319 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" superset_app | HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1823, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1788, in dispatch_request superset_app | self.raise_routing_exception(req) superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1770, in raise_routing_exception superset_app | raise request.routing_exception # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/flask/ctx.py", line 351, in match_request superset_app | result = self.url_adapter.match(return_rule=True) # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/werkzeug/routing/map.py", line 652, in match superset_app | raise NotFound() from None superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. superset_app | 2024-04-24 23:34:21,140:WARNING:superset.views.base:HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1823, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1788, in dispatch_request superset_app | self.raise_routing_exception(req) superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1770, in raise_routing_exception superset_app | raise request.routing_exception # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/flask/ctx.py", line 351, in match_request superset_app | result = self.url_adapter.match(return_rule=True) # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/werkzeug/routing/map.py", line 652, in match superset_app | raise NotFound() from None superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. please assist!

Comment From: AHAn555

Hi I'm new to superset, trying to customize the log as well in docker deployment but having the same issue. Followed the steps above and also as per this link https://www.coursebytes.dev/superset/ I have copied :~/superset$ ll superset-frontend/src/assets/images/ki-nav-brand.png -rw-rw-r-- 1 3571 Apr 18 22:13 superset-frontend/src/assets/images/ki-nav-brand.png updated docker/pythonpath_dev/superset_config_docker.py to include APP_ICON = "/static/assets/images/ki-nav-brand.png" restarted superset, but he image is broken This is very frustrating! Even tried to replace the superset-logo-horiz.png with ki-nav-brand.png but that didn't work either. APP_NAME = and LOGO_TOOLTIP = settings take affect ok

I'm using nginx-proxy if that helps. I see these errors when loading nginx-proxy-1 | nginx.1 | <examplename>.org 10.6.120.143 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/fontawesome/solid.min.css HTTP/2.0" 200 319 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "172.18.0.6:8088" superset_app | 172.18.0.4 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/ab.css HTTP/1.1" 200 294 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" superset_app | 172.18.0.4 - - [24/Apr/2024:23:34:21 +0000] "GET /static/appbuilder/css/fontawesome/solid.min.css HTTP/1.1" 200 319 "https://<examplename>.org/login/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" superset_app | HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1823, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1788, in dispatch_request superset_app | self.raise_routing_exception(req) superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1770, in raise_routing_exception superset_app | raise request.routing_exception # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/flask/ctx.py", line 351, in match_request superset_app | result = self.url_adapter.match(return_rule=True) # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/werkzeug/routing/map.py", line 652, in match superset_app | raise NotFound() from None superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. superset_app | 2024-04-24 23:34:21,140:WARNING:superset.views.base:HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1823, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1788, in dispatch_request superset_app | self.raise_routing_exception(req) superset_app | File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1770, in raise_routing_exception superset_app | raise request.routing_exception # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/flask/ctx.py", line 351, in match_request superset_app | result = self.url_adapter.match(return_rule=True) # type: ignore superset_app | File "/usr/local/lib/python3.10/site-packages/werkzeug/routing/map.py", line 652, in match superset_app | raise NotFound() from None superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. please assist!

u need to copy your image by "docker cp ki-nav-brand.png superset_app:/app/superset/static/assets/images and then update docker/pythonpath_dev/superset_config_docker.py include APP_ICON = "/static/assets/images/ki-nav-brand.png" then docker-compose end, docker-compose start or docker-compose restart

Comment From: mickymrt

thanks heaps that works! :)

Comment From: VinhNguyenonthecloud

u need to copy your image by "docker cp ki-nav-brand.png superset_app:/app/superset/static/assets/images and then update docker/pythonpath_dev/superset_config_docker.py include APP_ICON = "/static/assets/images/ki-nav-brand.png" then docker-compose end, docker-compose start or docker-compose restart

I can change the logo but the favicon doesn't work: I use this code in superset_config.py file: FAVICONS = [{"href": "/static/assets/images/favicon.png"}] and run: docker cp favicon.png superset_app:/app/superset/static/assets/images but nothing happen. Apache Superset How can I change the logo? I am using docker compose I don't know why.

Comment From: LudvigJuelsson

For me, adding these two lines to the superset_config file worked: APP_ICON="" SUPERSET_LOGO_TARGET_PATH="" Both of them using the same .svg image URL path. Using k8s.

Comment From: nkudupudi

For me, adding these two lines to the superset_config file worked: APP_ICON="" SUPERSET_LOGO_TARGET_PATH="" Both of them using the same .svg image URL path. Using k8s.

are those web urls ?

Comment From: LudvigJuelsson

For me, adding these two lines to the superset_config file worked: APP_ICON="" SUPERSET_LOGO_TARGET_PATH="" Both of them using the same .svg image URL path. Using k8s.

are those web urls ?

Correct. I guess any image url from the web will work. Just remember that you might need to make some changes in your TALISMAN_CONFIG if you are using one.

Comment From: pranoy-ebiw

Hey people, I manage to change the icon and the favicon (in my case docker) setting this in docker-compose

volumes: - ./superset/superset_config.py:/app/superset_config.py - ./superset/logo.png:/app/superset/static/assets/images/logo.png - ./superset/logo.png:/app/superset/static/assets/images/favicon.png

In my docker I see that superset is under /app and cheking the web of superset I saw that is getting the resources from /static/assets/.... Apache Superset How can I change the logo? I am using docker compose

So, changing the content of superset_config.py to this:

```

Visual Customizations

APP_NAME = APP_ICON="/static/assets/images/logo.png" APP_ICON_WIDTH = 200 LOGO_TARGET_PATH = '/' LOGO_TOOLTIP = ```

solved my problem!

Good luck!

Hi Buddy, I am new to this and stuck for 2-3 days - no success. Can you pls tell me in which position (approx line nos) that we need to change these in docker-compose-non-dev.yaml file. Do we need to rebuild the image..? Many thanks.

Comment From: pranoy-ebiw

Hello guys, After 2-3 days of trying and trying - I fixed this. I did the following steps:

  1. You can keep your logo and favicon in a folder (for me this is tobe_copied - you can give any name) at Project _root (not Docker _root) folder.
  2. Then write this command:
    COPY --chown=superset:superset tobe_copied /app/superset/static/assets/images in Dockerfile (for me this is around line 80)
  3. in superset_config.py write below (docker\pythonpath_dev\superset_config.py - for me line no - 95)
APP_NAME = "Dashboard name"
APP_ICON = "/static/assets/images/your_logo.png"
FAVICONS = [{"href": "/static/assets/images/your_favicon.png"}]
LOGO_TARGET_PATH = '/' 
LOGO_TOOLTIP = "Some Dashboard"
  1. Run docker build -t your_new_img_name .
  2. Change in docker-compose-non-dev.yaml file x-superset-image: &superset-image your_new_img_name:latest
  3. Run docker compose -f docker-compose-non-dev.yaml file up -d Enjoy. Good Luck.

Comment From: ldsalomone

I'm gonna share what worked for me & hopefully they re-open the issue because it would be good to hear from the Devs (@rusackas ?) on the ideal behavior.

I did all of the above to no avail until I realized superset was launching from a venv. I don't really know when the venv instantiates but for some reason it wasn't bringing in the files with just a regular COPY in the Dockerfile..

# Copy custom assets directly to venv static directory
COPY docker/assets/images/ /app/.venv/lib/python3.10/site-packages/superset/static/assets/images/

I'm not sure how this will handle future cases if the python version changes or whatnot, but it's the only thing that worked for me.

Comment From: rusackas

@ldsalomone I'm hesitant to open a years-old issue, but appreciate your sharing of findings here. It helps both our bots and our humans ;)

That sounds like a fine approach for now, but maybe @dosu can provide some additional details about how to make this more future-proof, or how/where we should update our docs.

Comment From: dosubot[bot]

The most future-proof way to customize logos and favicons in Superset (especially in Docker or venv setups) is to place your custom image files in the static assets directory where Superset expects them: /app/superset/static/assets/images for Docker, or the equivalent superset/static/assets/images/ inside your Python package install location for venv/system installs. Then, reference these files in your superset_config.py using the correct URL (e.g., /static/assets/images/your_logo.png for APP_ICON and FAVICONS). Restart Superset after making changes.

If you use a virtual environment, be aware that the static asset path may change with Python upgrades (e.g., /app/.venv/lib/python3.10/site-packages/superset/static/assets/images/). Always confirm the path after upgrades and redeploy your custom files if needed.

Current documentation does not cover this process or troubleshooting for asset placement, which leads to confusion. It would be helpful to add a dedicated section to the docs (ideally in the deployment or customization guides) explaining: - How Superset serves static assets and how to locate the correct directory for your environment. - Step-by-step instructions for Docker and venv installs. - Common pitfalls (e.g., broken images if the file isn't present, issues after Python upgrades). - The need to restart/rebuild after changes.

This would save users a lot of time and make branding changes much more reliable across upgrades and environments.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X