Frontend Tests Backend Tests CodeQL OpenSSF Scorecard OpenSSF Best Practices Angular Go Version Latest Release License: MIT
Angualr 20 upgrade of frontend code is completed, working on supporting elements.
- Convert GoLang backend (Jetstream) to use Cloud Foundry V3 API and remove V2 API calls
- Convert Frontend to call either Jetstream API or V3 API directly. V3 API calls can require more roundtrips than the V2 APIs they replace.
(Please note: The official repository is at cloudfoundry/stratos and the cloudfoundry-community/stratos will track this but may be used for some testing purposes)
Stratos is an Open Source Web-based UI (Console) for managing Cloud Foundry. It allows users and administrators to both manage applications running in the Cloud Foundry cluster and perform cluster management tasks.
Please visit our new documentation site. There you can discover (* This is currently being updated from the 4.4.0 docs)
- Our introduction, including quick start, contributing and troubleshooting guides.
- How to deploy Stratos in a number of environments.
- Cloud Foundry, as an application. (Recommended)
- Kubernetes, using a Helm chart.
- Docker, as a single container deploying all components.
- Configuring advanced features such a Single Sign On and Cloud Foundry 'invite to org'.
- Guides for developers.
- How to extend Stratos functionality and apply a custom theme.
- Node.js 24 or 26 - Required for the build system. The
enginesfield is^24 || ^26, so 25 is not supported. - Bun 1.3.14+ - Package manager (installation guide)
- Go 1.26.3+ - For backend development
These are taken from engines in package.json and the go directive in
src/jetstream/go.mod, which are the versions the build and CI actually use.
On a fresh checkout, run the bootstrap script once to initialize the development environment:
git clone https://github.com/cloudfoundry/stratos.git cd stratos # One-time bootstrap (builds required infrastructure) ./bootstrap # OR make bootstrap # OR bun run bootstrap # Install dependencies bun install # Start development server make dev-frontend
What bootstrap does:
- Verifies prerequisites (Node.js, Bun, Go)
- Builds the devkit package (required by Angular CLI)
- Generates extension module imports
- Creates development proxy configuration
- Stamps
build-info.tsso vitest can run without a full build - Cleans up workspace
Troubleshooting:
- If
bun installfails with missing files: Runmake bootstrapfirst - If builds fail with "File not found" errors: Run
make bootstrap - Bootstrap only needs to run once per checkout
# Frontend development server (https://127.0.0.1:5440) make dev-frontend # OR bun run start # Build for production make build # Both frontend and backend make build-frontend # Frontend only make build-backend # Backend only # Testing bun test # All frontend tests bun run test-frontend:core bun run test-frontend:cloud-foundry bun run test-backend # Backend tests bun run e2e # End-to-end tests # Linting bun run lint
Run these in separate terminals:
# Terminal 1: Frontend (port 5440) make dev-frontend # Terminal 2: Backend API (port 5443) make dev-backend # Access at: https://127.0.0.1:5440
For more detailed information, see CLAUDE.md.
Tested with Browserstack
This feature helps in pre-building the Stratos web application so that it can be deployed faster in Cloud Foundry, or be run offline.
You can find pre-built versions of Stratos UI in the releases of this repository.
To run those .zip packages inside Cloud Foundry, unzip it, write a manifest,
and cf push it.
You are not required to have stratos-buildpack, you can use binary buildpack.
Here is an example app manifest that worked for us:
applications: - name: console memory: 128M disk_quota: 192M host: console timeout: 180 buildpack: binary_buildpack health-check-type: port
For best results rather than pushing manually instead use within the (Genesis CF Kit)[https://github.com/genesis-community/cf-genesis-kit] like so:
genesis <env-name> do stratos sgs
Note: sgs creates security groups the first time, upgrades do not use sgs.
Requires node, go, and zip.
Build and package for all targets (linux/amd64, linux/arm64):
bin/package
To skip the build step and package from existing artifacts:
bin/package --skip-build
To override the version (default: from package.json):
VERSION="4.8.1" bin/packageThis produces per-target zips in dist/:
dist/stratos-cf-<version>-<os>-<arch>.zip
Deploy with:
cf push -f dist/cf-package-<os>-<arch>/manifest.yml \ -p dist/stratos-cf-<version>-<os>-<arch>.zip
The original packaging code was based on work from the Orange Cloud Foundry Github Repository. Many thanks to Benjamin & Arthur, we appreciate you both!
The work done has been re-licensed under MIT License. The license file can be found here.