https://github.com/steeltoeoss/initializrweb
Reference implementation of a Steeltoe Initializr UI project generator
https://github.com/steeltoeoss/initializrweb
Last synced: 10 months ago
JSON representation
Reference implementation of a Steeltoe Initializr UI project generator
- Host: GitHub
- URL: https://github.com/steeltoeoss/initializrweb
- Owner: SteeltoeOSS
- License: apache-2.0
- Created: 2020-06-04T21:03:52.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-03-15T01:42:47.000Z (12 months ago)
- Last Synced: 2025-03-29T18:51:15.371Z (11 months ago)
- Language: Java
- Size: 7.49 MB
- Stars: 5
- Watchers: 5
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Steeltoe InitializrWeb
Steeltoe Initializr UI reference implementation
## About
This implementation largely steals from the [Spring Initializr Client](https://github.com/spring-io/start.spring.io).
The primary differences between the 2 implementations are branding and domain metadata.
Branding differences include reference URLs, color schemes, and logos.
Domain metadata include metadata differences such as "Java version" vs ".NET Framework" and "Spring Boot" vs "Steeltoe."
A list of files that are known to diverge from Spring, is available [here](./Upstream.md)
## Deploying
There are 2 endpoints that the Web UI uses to 1) populate its UI, and 2) generate projects:
* `/api/config/projectMetadata`
* `/api/project`
For local development, these endpoints are implemented in the development webpack configuration in [start-client/webpack.dev.js](start-client/webpack.dev.js).
In a remote deployment, those endpoints are implemented by the [Initializr API](https://github.com/SteeltoeOSS/InitializrApi).
The deployment should be frontended by an HTTP router that forwards requests to these 2 endpoints to the API server.
A sample Kubernetes ingress configuration:
```yaml
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: initializr-ingress
namespace: initializr
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: my.initializr
http:
paths:
- path: /(.*)
backend:
serviceName: initializr-web
servicePort: 80
- path: /(api/.*)
backend:
serviceName: initializr-api
servicePort: 80
```