Skip to content

Administer Community Edition

The freely available version of the Yellowbrick SQL Data Platform that runs on Docker, designed for single-node deployments. Built on the same engine as Yellowbrick Enterprise Edition, CE is ideal for development environments, functional validation, and smaller datasets. Learn more about supported functionality here.

This collection of how-to guides is designed to help you perform specific tasks related to installing, configuring and administering Community Edition in your local systems.

You can find our latest image and the docker installation steps on docker-hub as well.

Supported Environments and Requirements

We support the community edition docker image on the following platforms with the listed set of requirements

Supported CPU architectures

  • x86-64

Supported platforms

  • Windows (WSL 2)
  • Ubuntu (20.04 or newer)
  • Other x86_64-based Linux distributions

Requirements

  • Docker Desktop v4.38.0 or Docker Engine v26.1.3
  • 12GB RAM allocated to Docker
  • 6 VCPU cores

Installation Instructions

Windows Users

Run all commands inside WSL2 (Ubuntu recommended), not Command Prompt or PowerShell.

Starting Yellowbrick

bash
docker run -it --privileged yellowbrickdata/yb-community-edition:latest

Note: Replace with whatever version you want to use.

Enable External Connections

While the interactive YBSQL prompt is great for quick work, you'll often want to connect from SQL clients, BI tools, or access the web interface. Adding port mappings enables these connections:

bash
docker run -it --privileged -p 443:443 -p 5432:5432 yellowbrickdata/yb-community-edition:latest

Now you can:

For detailed port configuration and advanced networking options, see Opening Network Ports for Clients.

Add Persistent Storage

By default, Yellowbrick stores data inside the container. For development work with datasets you want to keep, mount a local directory:

bash
docker run -it --privileged -p 443:443 -p 5432:5432 \
  -v /path/to/your/data:/mnt \
  yellowbrickdata/yb-community-edition:latest

PLEASE NOTE - This is an example and you will need to replace /path/to/your/data with your actual directory path. Now your tables, data, and logs persist between container restarts. This becomes essential when working with larger datasets or when you need to preserve your work.

PS: PLEASE REFRAIN FROM VOLUME MOUNTING TO THE /tmp DIRECTORY AS TARGET. THIS CAN CAUSE UNWANTED BEHAVIOR.

Run in Background

The -d flag runs the container in the background, and --name ybd-ce gives it a friendly name.

bash
docker run -d --privileged -p 443:443 -p 5432:5432 --name ybd-ce \
  -v /path/to/your/data:/mnt \
  yellowbrickdata/yb-community-edition:latest

Connect to YBSQL anytime with:

bash
docker exec -it ybd-ce bash

From within the container, anytime you use the command ysbql, it will default to the ybdadmin user and yellowbrick database. To overwrite these defaults, use the following command

bash
ybsql -d <your-existing-database> -U <your-existing-user>

Securing with Custom Password

The default password is ybdadmin - set a custom password for your first user using an environment variable:

bash
docker run -d --privileged -p 443:443 -p 5432:5432 --name ybd-ce \
  -v /path/to/your/data:/mnt \
  -e YB_ADMIN_PASSWORD="YourSecurePassword" \
  yellowbrickdata/yb-community-edition:latest

This password applies to both the web UI and database connections, ensuring your Yellowbrick instance is protected from unauthorized access.

Debug Mode

When troubleshooting startup issues or investigating unexpected behavior, enable debug logging:

bash
# Add --debug flag for detailed startup logs
docker run -it --privileged yellowbrickdata/yb-community-edition:latest --debug
# Or use environment variable
docker run -it --privileged -e YB_DEBUG=true yellowbrickdata/yb-community-edition:latest

Headless Mode (No Web UI)

The web interface uses system resources. When you only need SQL access, disable it:

bash
# Add --YM_OFF to disable web interface
docker run -d --privileged --name ybd-ce yellowbrickdata/yb-community-edition:latest --YM_OFF

Supplement Instructions

Version Selection

While :latest gives you the newest features, development systems should pin to specific versions, especially when ran alongside Yellowbrick Enterprise Edition:

bash
# Use specific version instead of latest
docker run -it --privileged yellowbrickdata/yb-community-edition:7.4.0-75659.9d5315b3

Storage Considerations

Without volume mounting (-v), your data lives provided that the container runs. This is actually preferable for quick tests and experiments - no cleanup needed. Only add volume mounting when you have data worth keeping.

Extending the CE image

You can inject custom .sh or .sql scripts into the container without rebuilding the image using volume mounts. The entrypoint will execute:

  1. All *.sh scripts in alphabetical order
  2. Then all *.sql files in alphabetical order

By default, the container looks in /mnt/bootstrap:

bash
docker run -it --privileged \
  -v /path/to/your/data:/mnt/bootstrap \
  --name ybd-ce \
  yellowbrickdata/yb-community-edition:latest

If you’d prefer a different in‑container path, use YB_BOOTSTRAP_DIR:

bash
docker run -it --privileged \
  -e YB_BOOTSTRAP_DIR=/opt/init \
  -v /path/to/your/data:/opt/init \
  --name ybd-ce \
  yellowbrickdata/yb-community-edition:latest

Local Loading Support

You can load data from your local disk into Yellowbrick in three ways:

  1. Place files directly inside the container
  2. Bind‑mount a host directory
  3. Copy files in with docker cp

All methods use the same SQL workflow below—just point your external location at where your files live.


1) Create files inside the container

bash
mkdir -p /opt/data
# create your CSV there, e.g. via curl, wget, echo, or vi
vi local_load.csv

2) Create or upload files inside the container

On the host, prepare a directory with your CSV(s)

bash
mkdir -p ./load_files

Run the container, mounting ./load_files into a location of your choosing

bash
docker run -it --name ybd-ce -v $(pwd)/load_files:/opt/data yellowbrickdata/yb-community-edition:latest

3) Copy files in with docker cp

bash
docker cp ./local_load.csv ybd-ce:/opt/data/local_load.csv

To load the data, use the following SQL prompts

sql
-- create an external storage
CREATE EXTERNAL STORAGE local_file TYPE FILE ENDPOINT 'file:///';
-- create external location where your file to load lives
CREATE EXTERNAL LOCATION local_file_loc PATH '/opt/data' EXTERNAL STORAGE local_file;
-- specify format; for our example we are using csv
create external format local_file_fmt type csv with (skip_blank_lines true, delimiter ',');
-- create a table based on the data format
create table temp(id int, name varchar(30));
-- OPTIONAL - if you want to list objects in that location
list objects external location local_file_loc;
-- load table command
load table temp from ('/local_load.csv') external location local_file_loc external format local_file_fmt;