Stackable Data Platform | Platform Docs | Discussions | Discord
This repository contains the Stackable library stackable-cockpit, the Stackable CLI tool stackablectl, the Stackable
Cockpit server stackable-cockpitd, and the web-based admin user interface.
stackable-cockpit: The underlying library for all actions related to the Stackable Data Platformstackablectl: CLI tool to interact with local and remote deployments of the data platformstackable-cockpitd: API server used by frontends to interact with the data platformstackable-cockpit-web: The web-based admin UI powered by SolidJS, TypeScript and Vite
- A working (and up2date) NodeJS installation, with Yarn as the preferred package manager
- A working (and up2date) Rust installation including rustc, clippy, and cargo
- Optional, but strongly advised: a working pre-commit installation
git clone git@github.com:stackabletech/stackable-cockpit.git
cd stackable-cockpitThe admin UI is registered as a crate and is part of the build process, as the HTML/CSS/JS bundle is included in the
final stackable-cockpitd binary. To get the build process running, first execute yarn install to install all required NodeJS
dependencies in the node_modules folder.
Each component can be build separately like this:
cargo build --release -p stackablectl # Builds stackablectl
cargo build --release -p stackable-cockpitd # Builds the Stackable Cockpit API server
cargo build --release -p stackable-cockpitd --features ui # Builds the Stackable Cockpit API server bundled with the admin UI
cd web && yarn run build && cd - # Builds the admin UIThis repository uses multiple pre-commit hooks to run checks, formatting and code-generation on different files. The hooks are:
trailing-whitespace: Trims trailing whitespace in all filesend-of-file-fixer: Files need to end with newlinesdetect-aws-credentials: Detect AWS secretsdetect-private-key: Detect private keysyamllint: Runs linting on all YAML filesmarkdownlint: Runs linting on all Markdown filesprettier: Runs prettier on files located inwebcargo clippy --all-targets --all-features -- -D warnings: Runs Clippy on all files and errors on warningscargo fmt -- --check: Checks if Rust code needs formattingcargo xtask gen-comp: Runs shell completions generation forstackablectlcargo xtask gen-man: Runs man page generation forstackablectlcargo xtask gen-openapi: Runs OpenAPI spec generation to connect backend with frontendcargo xtask gen-ctl-readme: Generates and insertsstackablectlhelp text into README