Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
cloudfoundry/stratos: Stratos: Web-based Management UI for Cloud Foundry and Kubernetes

cloudfoundry/stratos: Stratos: Web-based Management UI for Cloud Foundry and Kubernetes

5 hours ago

Stratos

Frontend Tests</a> Backend Tests</a> CodeQL</a> OpenSSF Scorecard</a> OpenSSF Best Practices</a> Angular</a> Go Version</a> Latest Release</a> License: MIT</a>

Roadmap

Angualr 20 upgrade of frontend code is completed, working on supporting elements.

  1. Convert GoLang backend (Jetstream) to use Cloud Foundry V3 API and remove V2 API calls
  2. 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)

About

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.

!Stratos Application view

Please visit our new documentation site. There you can discover (* This is currently being updated from the 4.4.0 docs)

  1. Our introduction, including quick start, contributing and troubleshooting guides.
  2. How to deploy Stratos in a number of environments.
1. Cloud Foundry, as an application. (Recommended) 1. Kubernetes, using a Helm chart. 1. Docker, as a single container deploying all components.
  1. Configuring advanced features such a Single Sign On and Cloud Foundry 'invite to org'.
  2. Guides for developers.
  3. How to extend Stratos functionality and apply a custom theme.

Developer Workflow

Prerequisites

  • Node.js 24 or 26 - Required for the build system. The engines field is
^24 || ^26, so 25 is not supported. 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.

First-Time Setup

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:

  1. Verifies prerequisites (Node.js, Bun, Go)
  2. Builds the devkit package (required by Angular CLI)
  3. Generates extension module imports
  4. Creates development proxy configuration
  5. Stamps build-info.ts so vitest can run without a full build
  6. Cleans up workspace
Troubleshooting:
  • If bun install fails with missing files: Run make bootstrap first
  • If builds fail with "File not found" errors: Run make bootstrap
  • Bootstrap only needs to run once per checkout

Development Commands

# 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

Full Stack Development

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.

Acknowledgements

Tested with Browserstack

Browserstack

Stratos UI pre-packager

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.

The zip already contains the jetstream binary and the compiled UI, so the push uses binary_buildpack and builds nothing during staging. The old stratos-buildpack source-push path is no longer used.

Here is an example app manifest:

applications:
  - name: console
    memory: 512M
    disk_quota: 1024M
    host: console
    timeout: 180
    buildpack: binary_buildpack
    command: ./jetstream
    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.

Packaging

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/package

This 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

NOTE

The original packaging code was based on work from the Orange Cloud Foundry Github Repository. Many thanks to Benjamin & Arthur, we appreciate you both!

License

The work done has been re-licensed under MIT License. The license file can be found here.

Chat with me