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-cockpit
The 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 UI
This 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 inweb
cargo 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 forstackablectl
cargo xtask gen-man
: Runs man page generation forstackablectl
cargo xtask gen-openapi
: Runs OpenAPI spec generation to connect backend with frontendcargo xtask gen-ctl-readme
: Generates and insertsstackablectl
help text into README