A React-based frontend for the 01Cloud platform. This application provides the user interface for managing organizations, projects, applications, environments, clusters, billing, support workflows, and related day-to-day cloud operations.
- Overview
- Key Features
- Tech Stack
- Getting Started
- Runtime Configuration
- Available Scripts
- Docker and Make Targets
- Testing and Code Quality
- Project Structure
- Contributing
- Security
- License
01cloud is a frontend app written primarily in React, TypeScript, and JavaScript. It integrates with the 01Cloud backend APIs and websocket endpoints to support workflows such as:
- Authentication
- Organization and Project management
- Application and Environment lifecycle management
- Cluster provisioning and infrastructure visibility
- CI/CD, Logs, Monitoring, and Alerts
- Billing and payment flows
- Support ticketing and Notifications
The repository also includes unit tests, linting, Docker targets, issue templates, pull request templates, and pre-commit automation to support collaborative open source development.
- Multi-area product UI spanning projects, apps, environments, clusters, organizations and notifications.
- Runtime-configurable frontend endpoints loaded through
public/config.js. - Redux and saga based state management across major application modules.
- Internationalization support with locale resources under
src/locales/. - Extensive component and page-level test coverage using Jest and React Testing Library.
- Contributor safeguards through
pre-commit,codespell,gitleaks, YAML validation, and stylelint.
- React 16
- TypeScript and JavaScript
- React Router v5
- Redux and Redux Saga
- Material-UI v4
- Jest, Enzyme, and React Testing Library
- react-scripts
Make sure you have the following installed:
- Node.js 12+ recommended for compatibility with the current Dockerfile and dependency set
- npm
- Docker (optional, for containerized lint/test/build workflows)
pre-commit(optional, but recommended for contributors)
- Clone the repository.
- Install dependencies:
npm install- Create the runtime config file used by the app shell:
cp public/config.sample.js public/config.js- Review and update the values in
public/config.jsfor your environment. - Start the development server:
npm startThe app will usually be available at http://localhost:3000.
This project loads runtime settings from public/config.js, which is included by public/index.html before the React application boots.
Typical values include:
- API base URL
- websocket endpoint
- OAuth provider endpoints and client IDs
- reCAPTCHA site key
- payment provider URL
- message origin URL
Recommended practices:
- Treat
public/config.jsas environment-specific configuration. - Do not commit production secrets or sensitive values.
- Prefer safe placeholder values in sample files.
- Keep
public/config.sample.jsas the template contributors can copy locally.
The following npm scripts are defined in package.json:
npm start: Run the development server.npm run build: Create a production build.npm test: Run the test suite.npm run test:coverage: Run tests with coverage output.npm run lint: Run ESLint againstsrc/**/*.js.npm run lint:fix: Run ESLint with autofixes.npm run generate-build-meta: Generate build metadata usingreact-clear-cache.
The repository includes a multi-stage Dockerfile and a small Makefile.
Use Docker targets directly:
docker build . --target lint
docker build . --target test
docker build . --target buildOr use the provided Make targets:
make lint
make unit-testBefore opening a pull request, it is a good idea to run the core checks locally:
npm run lint
npm run test -- --watchAll=false
npm run test:coverageThis repository also includes a pre-commit configuration with checks such as:
- YAML validation
- large file detection
- codespell
- gitleaks secret scanning
- stylelint for CSS/SCSS files
To enable the hooks locally:
pre-commit install
pre-commit run --all-filesA simplified view of the repository:
.
|-- .github/ # GitHub workflows, issue templates, PR template
|-- public/ # Static assets and runtime config template
|-- src/
| |-- components/ # Reusable UI components
| |-- containers/ # App-level containers and route wrappers
| |-- constants/ # Shared constants and route definitions
| |-- helpers/ # Utility helpers
| |-- locales/ # i18n translation resources
| |-- models/ # Frontend data models
| |-- pages/ # Feature and route-level pages
| |-- redux/ # Store setup
| |-- services/ # API/service integrations
| |-- test/ # Unit and integration-style tests
| `-- theme/ # Theming and UI overrides
|-- Dockerfile
|-- Makefile
|-- package.json
`-- README.md
Contributions are welcome! Please read the Contributing Guidelines before submitting a pull request. By participating in this project, you agree to abide by its terms.
If you have an idea, found a bug, or want to improve the project:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add your feature') - Push to your branch (
git push origin feature/your-feature) - Open a Pull Request
If you discover a security vulnerability, please do not open a public issue. Instead, refer to our Security Policy for responsible disclosure instructions.
This project is licensed under the Apache 2.0 License.
Copyright © 2026 BerryBytes and 01cloud-ui contributors.