OpenLogs

All tools

Apache Superset

Data exploration and dashboard application that connects to SQL databases.

Replaces

Paid business intelligence services, such as Tableau.

All open-source alternatives to Tableau

Difficulty

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.

Stack

Python (language), Redis (database), PostgreSQL (database)

Deployment

docker_compose

Requirements

Not stated.

License

Apache-2.0 (OSI-approved open source)

Read from github.com/apache/superset/blob/47300cf/LICENSE.txt

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/apache/superset/blob/47300cf/README.md, read on .

Repository

apache/superset

GitHub stats

Stars
75,252
Forks
18,507
Open issues and pull requests
614
Last push
2026-10-22
Latest release
6.1.0
Released
2026-05-13

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as Apache-2.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose-image-tag.yml Version 1
#
# 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

From the app's own repository: github.com/apache/superset/blob/47300cf/docker-compose-image-tag.yml.

Compose file from apache/superset, used inside a checkout of that repository (documented setup B).

Install

  1. Docker with the Compose plugin and git (github.com/apache/superset/blob/47300cf/docs/admin_docs/installation/docker-compose.mdx)

    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 (github.com/apache/superset/blob/47300cf/docs/admin_docs/installation/docker-compose.mdx)
    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) (github.com/apache/superset/blob/47300cf/docker-compose-image-tag.yml)

    Use the compose file shown above.

  4. What the compose file check ran with (github.com/apache/superset/blob/47300cf/docs/admin_docs/installation/docker-compose.mdx)

    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 (github.com/apache/superset/blob/47300cf/docs/admin_docs/installation/docker-compose.mdx)
    docker compose -f docker-compose-image-tag.yml up -d
  6. Open the app (github.com/apache/superset/blob/47300cf/docker-compose-image-tag.yml)

    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. (github.com/apache/superset/blob/47300cf/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. (github.com/apache/superset/blob/47300cf/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). (github.com/apache/superset/blob/47300cf/docker-compose-image-tag.yml, checked 2026-10-22)

Signals

  • Open issues and pull requests: 614
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: 6.1.0 on 2026-05-13 (162 days before this page was built)