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 Platform
- stackablectl: CLI tool to interact with local and remote deployments of the data platform
- stackable-cockpitd: API server used by frontends to interact with the data platform
- stackable-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 files
- end-of-file-fixer: Files need to end with newlines
- detect-aws-credentials: Detect AWS secrets
- detect-private-key: Detect private keys
- yamllint: Runs linting on all YAML files
- markdownlint: Runs linting on all Markdown files
- prettier: Runs prettier on files located in- web
- cargo clippy --all-targets --all-features -- -D warnings: Runs Clippy on all files and errors on warnings
- cargo fmt -- --check: Checks if Rust code needs formatting
- cargo xtask gen-comp: Runs shell completions generation for- stackablectl
- cargo xtask gen-man: Runs man page generation for- stackablectl
- cargo xtask gen-openapi: Runs OpenAPI spec generation to connect backend with frontend
- cargo xtask gen-ctl-readme: Generates and inserts- stackablectlhelp text into README