Skip to content

cloudfoundry/stratos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15,866 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stratos

GitHub release License slack.cloudfoundry.org

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)
    2. Kubernetes, using a Helm chart.
    3. Docker, as a single container deploying all components.
  3. Configuring advanced features such a Single Sign On and Cloud Foundry 'invite to org'.
  4. Guides for developers.
  5. How to extend Stratos functionality and apply a custom theme.

Developer Workflow

Prerequisites

  • Node.js 24+ - Required for build system
  • Bun - Package manager (installation guide)
  • Go 1.21+ - For backend development

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. 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.

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.

Packaging

Golang is required, and version 1.21 is recommended as this is the version used by the Stratos build system.

When you want to build the 4.8.1 tag in Stratos UI releases, run this command:

./bin/package

OR to package a specific tag

TAG="4.8.1" ./bin/package

NOTE

The original code for this feature can be found in 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.