# documentation: https://github.com/amancevice/docker-superset # slogan: Modern data exploration and visualization platform (unofficial docker image) # tags: analytics,bi,dashboard,database,sql,unofficial # logo: svgs/superset.svg # port: 8088 services: superset: image: amancevice/superset restart: always depends_on: - superset_postgres - superset_redis environment: - SERVICE_FQDN_SUPERSET_8088 - SECRET_KEY=${SERVICE_BASE64_64_SUPERSETSECRETKEY} - MAPBOX_API_KEY=${MAPBOX_API_KEY} - POSTGRES_USER=${SERVICE_USER_POSTGRES} - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES} - POSTGRES_DB=superset - REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS} volumes: - type: bind source: ./superset/superset_config.py target: /etc/superset/superset_config.py content: | """ For more configuration options, see: - https://superset.apache.org/docs/configuration/configuring-superset """ import os SECRET_KEY = os.getenv("SECRET_KEY") MAPBOX_API_KEY = os.getenv("MAPBOX_API_KEY", "") COOLIFY_RESOURCE_UUID = os.getenv('COOLIFY_RESOURCE_UUID') CACHE_CONFIG = { "CACHE_TYPE": "RedisCache", "CACHE_DEFAULT_TIMEOUT": 300, "CACHE_KEY_PREFIX": "superset_", "CACHE_REDIS_HOST": "superset_redis", "CACHE_REDIS_PORT": 6379, "CACHE_REDIS_DB": 1, "CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@superset_redis-{COOLIFY_RESOURCE_UUID}:6379/1", } FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"} EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"} SQLALCHEMY_TRACK_MODIFICATIONS = True SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@superset_postgres-{COOLIFY_RESOURCE_UUID}:5432/{os.getenv('POSTGRES_DB')}" # Uncomment if you want to load example data (using "superset load_examples") at the # same location as your metadata postgresql instance. Otherwise, the default sqlite # will be used, which will not persist in volume when restarting superset by default. #SQLALCHEMY_EXAMPLES_URI = SQLALCHEMY_DATABASE_URI healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:8088/health"] interval: 5s timeout: 20s retries: 10 superset_postgres: image: postgres restart: always environment: - POSTGRES_USER=${SERVICE_USER_POSTGRES} - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES} - POSTGRES_DB=superset volumes: - superset_postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 20s retries: 10 superset_redis: image: redis restart: always volumes: - superset_redis_data:/data command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS} healthcheck: test: redis-cli ping interval: 5s timeout: 20s retries: 10 volumes: superset_postgres_data: superset_redis_data: