https://github.com/ohadlevy/foreman-ui
Modern React-based user interface for Foreman infrastructure management
https://github.com/ohadlevy/foreman-ui
foreman infrastructure patternfly react typescript ui
Last synced: 2 months ago
JSON representation
Modern React-based user interface for Foreman infrastructure management
- Host: GitHub
- URL: https://github.com/ohadlevy/foreman-ui
- Owner: ohadlevy
- Created: 2025-08-02T12:37:50.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-08-02T14:15:57.000Z (2 months ago)
- Last Synced: 2025-08-02T14:38:40.937Z (2 months ago)
- Topics: foreman, infrastructure, patternfly, react, typescript, ui
- Language: TypeScript
- Size: 298 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Foreman React UI
A modern React-based user interface for [Foreman](https://theforeman.org/), built as a monorepo with separate admin and user portals.
## 🚧 Early Development
This project is in active early development. Expect breaking changes and incomplete features.
## Architecture
This project consists of main packages:
- **@foreman/shared** - Shared components, API clients, hooks, and utilities
- **@foreman/user-portal** - Self-service portal for end users ✅
- **@foreman/admin-portal** - Full-featured admin interface (planned)## Quick Start
### Prerequisites
- Node.js 20+
- Yarn 1.22+
- Access to a Foreman instance with API v2### Installation
#### Option 1: Automated Setup (Recommended)
```bash
git clone https://github.com/ohadlevy/foreman-ui.git
cd foreman-ui
./setup.sh
```#### Option 2: Manual Setup
```bash
git clone https://github.com/ohadlevy/foreman-ui.git
cd foreman-ui
yarn install
yarn build:shared # Required before starting user portal
```**📖 For detailed development setup, see [DEVELOPMENT.md](./DEVELOPMENT.md)**
### Development
```bash
# Start user portal in development mode
yarn dev:user# Start all packages in development mode
yarn dev# Build all packages
yarn build# Run tests
yarn test# Run linting
yarn lint
```## Current Status
✅ **User Portal**: Functional with authentication, host management, profile
✅ **Shared Library**: API clients, components, hooks, auth system
⚠️ **Admin Portal**: Planned for future release### Environment Configuration
Create `.env.local` files in each portal package:
```bash
# packages/user-portal/.env.local
REACT_APP_API_URL=http://localhost:3000/api/v2
REACT_APP_GRAPHQL_URL=http://localhost:3000/graphql
```## Package Structure
```
foreman-ui/
├── packages/
│ ├── shared/ # Shared library
│ ├── user-portal/ # User self-service portal
│ └── admin-portal/ # Admin interface (future)
├── tools/ # Build and development tools
└── docs/ # Documentation
```## Technology Stack
- **React 18** with TypeScript
- **PatternFly v5** for UI components
- **React Query + Zustand** for state management
- **React Router v6** for routing
- **Vite** for build tooling
- **Vitest** for testing## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development guidelines and workflow.
## Documentation
- **[DEVELOPMENT.md](./DEVELOPMENT.md)** - Detailed development guide and best practices
- **[TESTING.md](./TESTING.md)** - Testing strategies and examples
- **[SECURITY.md](./SECURITY.md)** - Security policy and vulnerability reporting## License
GNU General Public License v3.0