Kubernetes Orchestration and Resource Explorer - A lightweight, open-source Kubernetes IDE built with Tauri v2 and Svelte 5.
kube-rs & k8s-openapilucide-svelteβββ src/ # Svelte Frontend
β βββ lib/
β β βββ components/
β β β βββ ui/ # Reusable UI components
β β β βββ IconSidebar.svelte # Left-most navigation
β β β βββ ResourceSidebar.svelte # Cluster resource navigation
β β β βββ ClusterImportModal.svelte
β β βββ stores/
β β βββ clusters.svelte.ts # Cluster CRUD operations
β β βββ activeCluster.svelte.ts # Current cluster state
β β βββ bookmarks.svelte.ts # Sidebar bookmarks
β β βββ settings.svelte.ts # App settings
β βββ routes/
β β βββ +page.svelte # Cluster overview
β β βββ cluster/[id]/ # Cluster-scoped routes
β β β βββ pods/
β β β βββ deployments/
β β β βββ settings/ # Cluster settings
β β β βββ ...
β β βββ settings/ # App settings
β βββ ...
βββ src-tauri/ # Rust Backend
β βββ src/
β β βββ cluster_manager.rs # SQLite cluster storage
β β βββ import.rs # Kubeconfig import & extraction
β β βββ k8s.rs # Kubernetes API & Watchers
β β βββ ...
β βββ ...
Install dependencies:
pnpm install
cd src-tauri && cargo fetch
Run Development Server:
pnpm tauri dev
pnpm tauri build
Kore uses GitHub Actions for automated testing and releases.
test.yml: Runs on PRs and pushes to main. Performs linting, type checking, and tests on all platforms.release.yml: Triggered on tag pushes (v*). Builds signed binaries for all platforms and creates a GitHub release.pages.yml: Deploys the landing page and update manifest to GitHub Pages.The Tauri updater requires signed binaries. To set this up:
Generate signing keys:
pnpm tauri signer generate -w ~/.tauri/kore.key
This creates a private key (kore.key) and outputs the public key.
Update the public key in src-tauri/tauri.conf.json:
"plugins": {
"updater": {
"pubkey": "YOUR_PUBLIC_KEY_HERE",
...
}
}
Add GitHub secrets (Settings β Secrets β Actions):
TAURI_SIGNING_PRIVATE_KEY: Contents of ~/.tauri/kore.keyTAURI_SIGNING_PRIVATE_KEY_PASSWORD: Your key password (if set)Set up the gh-pages branch (orphan branch for the website):
# Create orphan branch
git checkout --orphan gh-pages
git rm -rf .
# Add your landing page (index.html, etc.)
echo '<!DOCTYPE html><html>...</html>' > index.html
git add index.html
git commit -m "Initial gh-pages"
git push origin gh-pages
# Return to main
git checkout main
Working on the site with a worktree:
git worktree add ../kore-pages gh-pages
cd ../kore-pages
# Edit site files, commit, push
Enable GitHub Pages (Settings β Pages):
gh-pages / / (root)Update the version in src-tauri/Cargo.toml and src-tauri/tauri.conf.json
Commit the changes
Create and push a tag:
git tag v1.0.0
git push origin v1.0.0
The release workflow will automatically build all platforms and publish to GitHub Releases and Pages.
Frontend (Svelte/TS)
# Run Unit Tests
pnpm test:unit
# Run Unit Tests with Coverage
pnpm test:coverage
# Run Playwright E2E Tests
pnpm test
Backend (Rust)
# Run Unit Tests
cd src-tauri
cargo test
# Run Coverage (requires cargo-llvm-cov)
# Install: cargo install cargo-llvm-cov
cargo llvm-cov
See tests/README.md for more details.
Kore stores its configuration in:
~/.kore/C:\Users\<User>\.kore\Storage structure:
~/.kore/
βββ clusters.db # SQLite database (cluster metadata)
βββ kubeconfigs/ # Extracted single-context configs
β βββ <uuid-1>.yaml
β βββ <uuid-2>.yaml
β βββ ...
βββ bookmarks.json # Sidebar bookmarks