Get a Beacon query engine running and query your first dataset in a couple of minutes. For the full picture, see the README and the documentation.
You need Docker. From a folder where you want your data to live:
docker run -d \
--name beacon \
-p 5001:5001 \
-e BEACON_ADMIN_USERNAME=admin \
-e BEACON_ADMIN_PASSWORD=securepassword \
-v ./datasets:/beacon/data/datasets \
-v ./tables:/beacon/data/tables \
ghcr.io/maris-development/beacon:latestThat's it — Beacon is now serving on http://localhost:5001. That page links to the admin UI, the API docs and this documentation.
Drop any supported files (e.g. .parquet, .nc, .zarr, .csv) into the
./datasets folder you just mounted. Beacon discovers them automatically — no
import step.
Open http://localhost:5001/admin and sign in with the admin username and
password you set above (admin / securepassword).
From the UI you can:
- Query editor — write SQL, run it (⌘/Ctrl + Enter), view results, and download CSV/Parquet.
- Datasets — browse discovered files and inspect their schemas.
- Tables — register and manage queryable tables over your datasets.
- Crawlers & external tables — automate discovery and register external sources.
- Server — runtime info, health, and available functions.
Every request goes to a single endpoint and streams back a file in the format you ask for:
curl -X POST http://localhost:5001/api/query \
-H "Content-Type: application/json" \
-d '{
"sql": "SELECT * FROM read_parquet([\"**/*.parquet\"]) LIMIT 10",
"output": { "format": "csv" }
}'Interactive API docs are at http://localhost:5001/swagger/.
- README — start a server, point it at data, query it from Python.
- Quick Start — the same steps, with a public server to try.
- Documentation — full data model and API reference.
- Configuration reference — all
BEACON_*settings. - Community Slack.