Apa yang bisa kami bantu?

Dashboard visualisasi data cukup membantu dalam mengalisa data, salah satu software yang dapat digunakan yaitu Apache Superet yang merupaan salah satu platform open-source untuk kebutuhan visualisasi data, eksplorasi data, dan analisis data berbasis SQL. Superset sendiri platform yang dikembangkan oleh Apache Software Fundation yang dirancang khusus untuk eksplorasi dan visualisasi data yang dapat diintegrasikan dengan jenis database seperti PostgreSQL, MySQL, MariaDB, SQL Server, BigQuery, dan lainnya.

 

Pada artikel kali ini akan membahas cara instalasi Apache Supertset dengan menggunakan Dockerfile dan Docker Compose dengan konfigurasi ringan di VPS Linux Ubuntu 24.04 LTS, karena untuk instalasi menggunakan default menggunakan stack delopment bawaan Superset cukup berat yang akan menginstal stack seperti Node Js, Webpack, Redis, Celery Worker, Celery Beat, Websocket, Nginx, dan data dummy. Maka dari itu pada artikel kali ini akan menginstal dengan konfigurasi ringan dengan setup dua service saja yaitu Superset App dan PostgreSQL sebagai database.

 

Sebelumnya itu pastikan telah menyiapkan server dengan spesifikasi berikut:

  • Ubuntu Server 24.04
  • RAM minimal 4 GB
  • CPU minimal 2 core
  • Storage minimal 20 GB
  • Docker
  • Docker Compose Plugin
  • Akses SSH ke server
  • Akses user dengan privilege sudo
Gambar 1. Informasi Server dan Versi Docker

1. Persiapan Konfigurasi Superset

Persiapan awal tentunya menginstall docker, untuk instalasi docker dapat mengikuti langkah panduan dibawah:

Cara Install Docker Pada Linux dan Windows OS

 

Jika docker telah terinstal pada server dapat melanjutkan setup awal file konfigurasi awal dengan struktur berikut:

Superset/
├── Dockerfile
├── docker-compose.yml
├── .env
└── superset_config.py

 

Setelah mendapatkan struktur yang sesuai, lanjut buat folder Superset:

mkdir Superset
cd Superset

 

a. Buat File Environment Seperset

Buat file .env, sebelum itu generate secret key dahulu:

openssl rand -base64 42

 

Simpan secret key yang nantinya akan ditambahkan pada .env, lanjut buat konfigurasi .env.

nano .env

 

Inputkan konfigurasi berikut pada file .env.

SUPERSET_SECRET_KEY=PASTE_SECRET_KEY
POSTGRES_PASSWORD=PasswordDB

Note:

- SUPERSET_SECRET_KEY : Diisi dengan secret key yang telah digenerate sebelumnya.

- POSTGRES_PASSWORD : Dapat diisi dengan password yang akan digunakan oleh Database PosgreSQL

 

b. Konfigurasi File Superset

Buat file konfigurasi dalam:

nano superset_config.py

 

Inputkan dengan konfigurasi berikut

import os
SECRET_KEY = os.getenv("SUPERSET_SECRET_KEY")
SQLALCHEMY_DATABASE_URI = os.getenv("SQLALCHEMY_DATABASE_URI")
SQLALCHEMY_ENGINE_OPTIONS = {
    "pool_size": 5,
    "max_overflow": 5,
    "pool_pre_ping": True,
}

# Low-resource settings
ROW_LIMIT = 5000
SUPERSET_WEBSERVER_TIMEOUT = 120

# Use local simple cache, no Redis needed
CACHE_CONFIG = {
    "CACHE_TYPE": "SimpleCache",
    "CACHE_DEFAULT_TIMEOUT": 300,
}

DATA_CACHE_CONFIG = CACHE_CONFIG

# Useful if later you use reverse proxy
ENABLE_PROXY_FIX = True

# Disable alerts/reports because they need Celery worker
FEATURE_FLAGS = {
    "ALERT_REPORTS": False,
}

 

c. Konfigurasi Dockerfile Superset

Buat file Dokerfile:

nano Dockerfile

 

Inputkan dengan konfigurasi berikut

FROM apache/superset:latest

USER root

RUN uv pip install --python /app/.venv/bin/python --no-cache psycopg2-binary

USER superset
d. Konfigurasi Docker Compose
Buat file Dokerfile:
nano docker-compose.yml
Inputkan dengan konfigurasi berikut
services:
  db:
    image: postgres:16-alpine
    container_name: superset-lite-db
    restart: unless-stopped
    environment:
      POSTGRES_DB: superset
      POSTGRES_USER: superset
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    command: >
      postgres
      -c shared_buffers=256MB
      -c max_connections=50
      -c work_mem=8MB
      -c maintenance_work_mem=64MB
    mem_limit: 1g
    cpus: "1.0"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U superset -d superset"]
      interval: 10s
      timeout: 5s
      retries: 10
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  superset:
    build: .
    image: superset-lite:latest
    container_name: superset-lite-app
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    environment:
      SUPERSET_SECRET_KEY: ${SUPERSET_SECRET_KEY}
      SUPERSET_CONFIG_PATH: /app/pythonpath/superset_config.py
      SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:${POSTGRES_PASSWORD}@db:5432/superset
    volumes:
      - ./superset_config.py:/app/pythonpath/superset_config.py:ro
      - ./superset-home:/app/superset_home
    ports:
      - "8088:8088"
    command:
      - /bin/sh
      - -c
      - |
        gunicorn \
          --bind 0.0.0.0:8088 \
          --workers 1 \
          --worker-class gthread \
          --threads 4 \
          --timeout 120 \
          --limit-request-line 0 \
          --limit-request-field_size 0 \
          "superset.app:create_app()"
    mem_limit: 2g
    cpus: "1.5"
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

 

e. Build Image Superset

Setelah membuat file konfigurasi yang dibutuhkan, dapat melakukan build image dengan menjalankan:

sudo docker compose build --no-cache superset

 

f. Setup Database PosgreSQL

Jalankan container database dan pastikan berstatus running / up:

sudo docker compose up -d db
sudo docker compose ps

 

Migrate database Superset  ke database.

docker compose run --rm superset superset db upgrade

 

Buat user dan set password user

docker compose run --rm superset superset fab create-admin
Gambar 2. Create User Login Superset.

 

g. Menjalankan Superset

Setelah setup database, dapat meanjutkan setup aplikasi Apache Superset dan pastikan container berstatus running / up:

sudo docker compose up –d
sudo docker ps -a
Gambar 3. List Container Berjalan.

 

2. Akses Superset

Setelah dipastikan service container Superset dan Database PostgreSQL berjalan, dapat melanjutkan akses melalui browser dengan url port 8088 sesuai port yang di ekspose.

http://IP_SERVER:8088
Gambar 4. Login Aplikasi Superset

 

Setelah itu login dengan user dan password Superset yang telah di setup sebelumnya, setelah user dan password valid akan dialihkan ke laman dashboard Apache Superset.

Gambar 5. Dashboard Superset.

 

3. Penutup.

Instalasi Apache Superset dengan menggunakan kofigurasi ringan / lightweight menggunakan Docker Compose dapat menjadi pilihan untuk server dengan resource yang terbatas dan cocotk untuk kebutuhan dashboard internal, ekplorasi data dan reporting data sederhana.

 

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau melalui live chat maupun WhatsApp di website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.