# Apache Superset

Data exploration and dashboard application that connects to SQL databases.

- Replaces: [Tableau](https://openlogs.fyi/alternatives/tableau)
- Summary: Paid business intelligence services, such as Tableau.
- Stack: Python (language), Redis (database), PostgreSQL (database)
- Deployment: docker_compose
- License: Apache-2.0 (osi) [source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/LICENSE.txt)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/README.md), read 2026-10-22)
- Difficulty: hard. 6 services (2 database or broker: redis, postgres), 5 volume mounts, 1 env value to set, no elevated host access. Heuristic score 8 of 11: hard. A source checkout is needed, so the rating is at least medium.
- Requirements: not stated
- Repository: [apache/superset](https://github.com/apache/superset)

## Install

1. Docker with the Compose plugin and git ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx))

   ```text
   A host with Docker, the Docker Compose plugin and git. This entry needs a checkout of the project repository.
   ```

2. Get the source at commit 47300cf ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx))

   ```bash
   git init superset
   cd superset
   git remote add origin https://github.com/apache/superset.git
   git sparse-checkout init --cone
   git sparse-checkout set docker
   git fetch --depth 1 --filter=blob:none origin 47300cf4c2f13aa3a4bef6c7f349f58397de0035
   git checkout FETCH_HEAD
   ```

3. The compose file in the checkout: docker-compose-image-tag.yml (shown here for reading) ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml))

   ```yaml
   #
   # Licensed to the Apache Software Foundation (ASF) under one or more
   # contributor license agreements.  See the NOTICE file distributed with
   # this work for additional information regarding copyright ownership.
   # The ASF licenses this file to You under the Apache License, Version 2.0
   # (the "License"); you may not use this file except in compliance with
   # the License.  You may obtain a copy of the License at
   #
   #    http://www.apache.org/licenses/LICENSE-2.0
   #
   # Unless required by applicable law or agreed to in writing, software
   # distributed under the License is distributed on an "AS IS" BASIS,
   # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   # See the License for the specific language governing permissions and
   # limitations under the License.
   #
   
   # -----------------------------------------------------------------------
   # We don't support docker compose for production environments.
   # If you choose to use this type of deployment make sure to
   # create you own docker environment file (docker/.env) with your own
   # unique random secure passwords and SECRET_KEY.
   #
   # For verbose logging during development:
   # - Set SUPERSET_LOG_LEVEL=debug in docker/.env-local for detailed Superset logs
   # -----------------------------------------------------------------------
   x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}
   x-superset-volumes:
     &superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
     - ./docker:/app/docker
     - superset_home:/app/superset_home
   x-superset-environment: &superset-environment
     # Tagged images must use their bundled packages rather than host bind mounts.
     DEV_MODE: "false"
   
   services:
     redis:
       image: redis:7
       container_name: superset_cache
       restart: unless-stopped
       volumes:
         - redis:/data
   
     db:
       env_file:
         - path: docker/.env # default
           required: true
         - path: docker/.env-local # optional override
           required: false
       image: postgres:17
       container_name: superset_db
       restart: unless-stopped
       volumes:
         - db_home:/var/lib/postgresql/data
         - ./docker/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
   
     superset:
       env_file:
         - path: docker/.env # default
           required: true
         - path: docker/.env-local # optional override
           required: false
       environment: *superset-environment
       image: *superset-image
       container_name: superset_app
       command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"]
       user: "root"
       restart: unless-stopped
       ports:
         - 8088:8088
       depends_on:
         superset-init:
           condition: service_completed_successfully
       volumes: *superset-volumes
   
     superset-init:
       image: *superset-image
       container_name: superset_init
       command: ["/app/docker/docker-init.sh"]
       env_file:
         - path: docker/.env # default
           required: true
         - path: docker/.env-local # optional override
           required: false
       environment: *superset-environment
       depends_on:
         db:
           condition: service_started
         redis:
           condition: service_started
       user: "root"
       volumes: *superset-volumes
       healthcheck:
         disable: true
   
     superset-worker:
       image: *superset-image
       container_name: superset_worker
       command: ["/app/docker/docker-bootstrap.sh", "worker"]
       env_file:
         - path: docker/.env # default
           required: true
         - path: docker/.env-local # optional override
           required: false
       environment: *superset-environment
       restart: unless-stopped
       depends_on:
         superset-init:
           condition: service_completed_successfully
       user: "root"
       volumes: *superset-volumes
       healthcheck:
         test:
           [
             "CMD-SHELL",
             "celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
           ]
   
     superset-worker-beat:
       image: *superset-image
       container_name: superset_worker_beat
       command: ["/app/docker/docker-bootstrap.sh", "beat"]
       env_file:
         - path: docker/.env # default
           required: true
         - path: docker/.env-local # optional override
           required: false
       environment: *superset-environment
       restart: unless-stopped
       depends_on:
         superset-init:
           condition: service_completed_successfully
       user: "root"
       volumes: *superset-volumes
       healthcheck:
         disable: true
   
   volumes:
     superset_home:
       external: false
     db_home:
       external: false
     redis:
       external: false
   ```

4. What the compose file check ran with ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx))

   ```text
   The compose file check ran in a checkout of apache/superset at 47300cf4c2f13aa3a4bef6c7f349f58397de0035 (a sparse checkout: the top-level files and the folder docker). The Docker Compose guide tells the reader to shallow-clone the repository and start an official release with docker compose -f docker-compose-image-tag.yml up.
   ```

5. Start it ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx))

   ```bash
   docker compose -f docker-compose-image-tag.yml up -d
   ```

6. Open the app ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml))

   ```text
   Open http://localhost:8088. The compose file publishes host port 8088 for the superset service. The docs say to visit this address in a web browser.
   ```

Compose file check: config_ok on 2026-10-22.

## Gotchas and maintenance

### Gotchas

- Some images use the latest tag or no tag: Images without a pinned version: superset: apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}, superset-init: apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}, superset-worker: apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}, superset-worker-beat: apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}. A later pull can get a different version. ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml), checked 2026-10-22)
- The compose file publishes host ports: Host ports: 8088 (superset). A port without a host address listens on all host network interfaces. ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml), checked 2026-10-22)
- The compose file mounts host folders: Host paths mounted into containers: ./docker/docker-entrypoint-initdb.d at /docker-entrypoint-initdb.d (db), ./docker at /app/docker (superset), ./docker at /app/docker (superset-init), ./docker at /app/docker (superset-worker), ./docker at /app/docker (superset-worker-beat). ([source](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 614
- Stars: 75252, forks: 18507
- Last push: 2026-10-22 (0 days ago)
- Latest release: 6.1.0 on 2026-05-13 (162 days ago)

## Sources

- [Repository: https://github.com/apache/superset](https://github.com/apache/superset)
- [License: https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/LICENSE.txt](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/LICENSE.txt)
- [Business model: https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/README.md](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/README.md)
- [Compose file: https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docker-compose-image-tag.yml)
- [Install step: https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx](https://github.com/apache/superset/blob/47300cf4c2f13aa3a4bef6c7f349f58397de0035/docs/admin_docs/installation/docker-compose.mdx)

---
Canonical: https://openlogs.fyi/tools/apache-superset  
Last updated: 2026-10-22
