Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/turing-machines/BMC-UI
https://github.com/turing-machines/BMC-UI
Last synced: about 5 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/turing-machines/BMC-UI
- Owner: turing-machines
- License: gpl-2.0
- Created: 2023-11-01T12:34:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-28T12:41:24.000Z (about 2 months ago)
- Last Synced: 2024-12-10T11:53:12.782Z (2 days ago)
- Language: TypeScript
- Size: 7.73 MB
- Stars: 6
- Watchers: 4
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BMC-UI
BMC-UI is a web-based user interface for managing and configuring the BMC of a Turing Pi cluster.
## Technologies Used
- [React](https://reactjs.org/) - JavaScript library for building user interfaces
- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework
- [TanStack Router](https://tanstack.com/router) - Routing library for React applications
- Handles route management and route protection
- [TanStack Query](https://tanstack.com/query) - Data fetching and caching library for React
- [react-i18next](https://react.i18next.com/) - Internationalization library for React
- [Vite](https://vitejs.dev/) - Fast build tool and development server
- [TypeScript](https://www.typescriptlang.org/) - Typed superset of JavaScript## Getting Started
1. Clone the repository:
```bash
git clone https://github.com/turing-machines/BMC-UI.git
```2. Install dependencies:
```bash
cd BMC-UI
npm install
```3. Start the development server:
There are multiple ways to run the development server:
a. Connect to a local Turing Pi cluster (default):
```bash
npm run dev
```This will connect to `https://turingpi.local` for the API by default.
b. Connect to a specific Turing Pi cluster:
If your Turing Pi cluster is using a different hostname, domain or IP address, you can specify it using the `CLUSTER_URL` environment variable:
```bash
CLUSTER_URL=https://your-cluster.lan npm run dev
```or
```bash
CLUSTER_URL=https://192.168.1.100 npm run dev
```c. Use bmcd-api-mock:
If you want to use [bmcd-api-mock](https://github.com/barrenechea/bmcd-api-mock) as the API for development:
- Clone and set up the bmcd-api-mock repository.
- Run the mock server (usually on `http://localhost:4460`).
- Start the BMC-UI development server with the CLUSTER_URL environment variable:```bash
CLUSTER_URL=http://localhost:4460 npm run dev
```4. Open your browser and visit `http://localhost:5173` to see the application running.
## Deployment
The deployment process for BMC-UI is automated using GitHub Actions. The version management is handled by the `version` field defined in the `package.json` file.
Whenever a pull request targeting the `main` branch is created and the `package.json` file is modified with an updated version, a new build is triggered automatically. Once the pull request is merged into the `main` branch, the version change will be detected, and the built files will be packaged into a tarball and released as an artifact on GitHub.
To deploy a new version:
1. Create a new branch and update the `version` field in the `package.json` file following semantic versioning (e.g., `2.1.0`, `2.1.1`, `3.0.0`).
2. Commit the changes and push the branch to the repository.
3. Open a pull request from the branch targeting the `main` branch.
4. Review and merge the pull request into the `main` branch.
5. GitHub Actions will automatically detect the version change, trigger a new build, and create a release with the tarball artifact.
6. The release artifact can be downloaded and deployed to the target environment.
## Contributing
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
Please note that due to memory restrictions on the BMC, the final bundle size of the application cannot exceed 4MB. To ensure this limit is maintained, every pull request will report its bundle size, allowing us to track the bundle size over time. When contributing, please be mindful of the bundle size impact of your changes.
## License
This project is licensed under the [GNU General Public License v2.0](LICENSE).