Local Apache Iceberg + Polaris development stack for running a catalog-first Iceberg setup with MinIO object storage, Spark compute, and the official Polaris Console.
- MinIO: object storage for the warehouse
- Polaris: Iceberg REST catalog
- Spark + Jupyter: local compute and notebook access
- Polaris Console: official web UI for the catalog
Before running the stack, install and start Docker Engine-compatible tooling such as:
- Docker Desktop
- OrbStack (recommended for macOS)
The project uses Docker Compose, so a running Docker daemon is required before executing any make target.
This repo expects a local .env file in the project root. A checked-in template is provided at .env.example. To create your local config:
cp .env.example .envThen edit .env with your local values. The real .env file is gitignored and should not be committed.
Running make by itself shows the list of project targets.
makeCommon commands:
make build
make up
make up-bootstrap
make bootstrap-only
make down
make cleanStart the runtime services only:
make upThis rebuilds images and starts the stack in the background.
If you also want the initial MinIO bucket and Polaris catalog created once, run:
make up-bootstrapIf the stack is already running and you only want to bootstrap the bucket and catalog again, use:
make bootstrap-only- MinIO console: http://localhost:9001
- Spark UI: http://localhost:8080
- Jupyter: http://localhost:8888
- Polaris API: http://localhost:8281
- Polaris health: http://localhost:8282/q/health
- Polaris Console: http://localhost:8081
Use the default bootstrap client:
- Realm:
<POLARIS_REALM>from.env - Client ID:
<POLARIS_ROOT_CLIENT_ID>from.env - Client Secret:
<POLARIS_ROOT_CLIENT_SECRET>from.env - Scope:
PRINCIPAL_ROLE:ALL
Note: the values in
.envare for local development only. Do not use these credentials or environment values directly in production environments.
Stop the running stack:
make downFully remove the stack and bootstrap-related containers/volumes:
make clean.envis intentionally local-only and should stay out of version control..env.exampleis the safe file to commit to the repository.- The workspace includes a
toolsdirectory for the Polaris Console source; it is created automatically when needed by thepolaris-console-clonetarget.