{"id":15083722,"url":"https://github.com/fabric8io/fabric8-platform","last_synced_at":"2025-10-05T14:31:47.823Z","repository":{"id":57732037,"uuid":"68029282","full_name":"fabric8io/fabric8-platform","owner":"fabric8io","description":"Generates the distribution of the fabric8 microservices platform","archived":true,"fork":false,"pushed_at":"2018-09-04T05:53:00.000Z","size":3771,"stargazers_count":104,"open_issues_count":107,"forks_count":66,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-12-17T08:11:37.479Z","etag":null,"topics":["ci-cd","continuous","continuous-delivery","continuous-integration","developer","developer-experience","developer-tools","docker","fabric8","jenkins","kubernetes","microservices","openshift"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabric8io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-12T16:59:39.000Z","updated_at":"2023-01-28T18:46:52.000Z","dependencies_parsed_at":"2022-09-13T08:41:30.559Z","dependency_job_id":null,"html_url":"https://github.com/fabric8io/fabric8-platform","commit_stats":null,"previous_names":[],"tags_count":267,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric8io%2Ffabric8-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric8io%2Ffabric8-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric8io%2Ffabric8-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric8io%2Ffabric8-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabric8io","download_url":"https://codeload.github.com/fabric8io/fabric8-platform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235405245,"owners_count":18984868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","continuous","continuous-delivery","continuous-integration","developer","developer-experience","developer-tools","docker","fabric8","jenkins","kubernetes","microservices","openshift"],"created_at":"2024-09-25T06:32:18.724Z","updated_at":"2025-10-05T14:31:42.392Z","avatar_url":"https://github.com/fabric8io.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fabric8 Developer Platform\n\nThis project generates the distribution of the [fabric8 developer platform](https://fabric8.io/)\n\n \u003cp align=\"center\"\u003e\n   \u003ca href=\"http://fabric8.io/\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/fabric8io/fabric8/master/docs/images/cover/cover_small.png\" alt=\"fabric8 logo\"/\u003e\n   \u003c/a\u003e\n \u003c/p\u003e\n\n\nTo install the early access of this on [Minishift check out the installation guide](INSTALL.md)\n\n## Fabric8 Platform Overview\n\nFrom version 4.x onwards of the fabric8 platform there are a core set of _shared services_ which are shared by all users then a set of services created for each user/team which we refer to as _tenant services_.\n\n### Shared Services\n\n* [fabric8-ui](https://github.com/fabric8-ui/fabric8-ui) provides the HTML / CSS / JavaScript from end using Angular and PatternFly to the system\n* [keycloak](https://github.com/fabric8-services/keycloak-deployment) KeyCloak manages SSO\n* [fabric8-tenant](https://github.com/fabric8-services/fabric8-tenant) manages installing and upgrading tenant services as users login etc\n* [fabric8-wit](https://github.com/fabric8-services/fabric8-wit) Work Item Tracker (database and REST API for spaces, work items etc)\n* forge via the [backend](https://github.com/fabric8io/generator-backend) and [forge addon](https://github.com/fabric8io/fabric8-generator) implements wizards for new projects or import projects etc. Reuses the RHOAR quickstarts and uses the [fabric8-jenkinsfiles-library](https://github.com/fabric8io/fabric8-jenkinsfile-library) to add pipelines for CI / CD to projects.\n\nwhen installing on premise we also use these microservices:\n\n* [exposecontroller](https://github.com/fabric8io/exposecontroller/) exposes services as public URLs on kubernetes or openshift clusters via various strategies (Route, Ingress, NodePort, LoadBalancer) depending on the cluster and injects public URLs into ConfigMaps\n* [configmapcontroller](https://github.com/fabric8io/configmapcontroller/) automates rolling upgrades as ConfigMaps are changed (either by users or via the [exposecontroller](https://github.com/fabric8io/exposecontroller/)\n\n\n### Tenant Services\n\nEach user/team can get their own [Jenkins](https://github.com/fabric8io/fabric8-online/tree/master/packages/fabric8-online-jenkins), Che and Content Repository.\n\nOur [Jenkins image](https://github.com/fabric8io/openshift-jenkins-s2i-config) includes the [jenkins sync plugin](https://github.com/fabric8io/jenkins-sync-plugin/tree/job-to-bc) and [kubernetes-pipeline-plugin](https://github.com/fabric8io/kubernetes-pipeline-plugin) along with the [fabric8-pipeline-library](https://github.com/fabric8io/fabric8-pipeline-library)\n\n### Other components\n\n* [fabric8-platform](https://github.com/fabric8io/fabric8-platform) creates the various distributions (openshift + kubernetes manifests, templates etc)\n* [gofabric8](https://github.com/fabric8io/gofabric8) is a go based CLI tool for installing and managing fabric8\n\n\n### Changes in 4.x\n\nVersion 4.x of fabric8 differs a little bit from previous 3.x releases as follows:\n\n* a separation between shared services (like KeyCloak and the console) from tenant services (each tenant (user/team) gets its own jenkins master)\n* SSO is enabled on Kubernetes and OpenShift for using the console, Jenkins and GitHub (with more services coming soon)\n* defaults to using GitHub as the git hosting OOTB; we're hoping to add gogs/gitea/gitlab back soon as soon as the SSO is working\n* integrated issue tracker / kanban board / planning / work item tracking\n* integrated IDE via eclipse Che\n* integrated [analytics](https://github.com/fabric8-analytics) to help developers get insight into their code and libraries and versions they are using or should consider\n* new improved UI which covers project plannning, creation, analytics, editing/debugging, CI/CD\n\n## Github Organisations\n\nThere are lots of github repositories which make up the full platform!\n\nTo make things easier to navigate we've created a few different organisations to contain the various parts of fabric8:\n\n* [fabric8-analytics](https://github.com/fabric8-analytics) the Fabric8 Analytics projects\n* [fabric8-ide](https://github.com/fabric8-ide) the Fabric8 IDE projects (e.g. Eclipse Che related repos)\n* [fabric8-quickstarts](https://github.com/fabric8-quickstarts) the fabric8 community quickstarts\n* [fabric8-services](https://github.com/fabric8-services) various Services used in the fabric8 platform\n* [fabric8io-images](https://github.com/fabric8io-images) various docker images\n* [fabric8-ui](https://github.com/fabric8-ui) contains all the HTML / CSS / JavaScript / Angular modules to create the web console for fabric8: [fabric8-ui](https://github.com/fabric8-ui/fabric8-ui)\n* [fabric8io](https://github.com/fabric8io) general purpose organisation contains various things like the Java [kubernetes-client](https://github.com/fabric8io/fubernetes-client), [fabric8-maven-plugin](https://github.com/fabric8io/fabric8-maven-plugin), jenkins pipeline libraries but also numerous other things. Longer term stuff from here should probably move to more focussed organisations\n\n## Detailed List of Projects\n\nThe fabric8 developer platform is based on lots of different open source projects. Here's the main repositories:\n\n### [Maven Tooling](https://maven.fabric8.io/)\n\n* [fabric8-maven-plugin](https://github.com/fabric8io/fabric8-maven-plugin) provides [Apache Maven](http://maven.apache.org/) support for Kubernetes, OpenShift and Fabric8\n\n### Developer Console\n\n#### Version 4.x or later\n\nThe new shiny Angular console is here [fabric8-ui](https://github.com/fabric8-ui/fabric8-ui) along with a bunch of other NPM modules in the [fabric8-ui organisation](https://github.com/fabric8-ui)\n\nThe new console works directly with\n\n* kubernetes/openshift REST API for kubernetes/openshift resources\n* [fabric8-wit](https://github.com/fabric8-services/fabric8-wit) for spaces and issue tracking\n* forge for new/import project wizards via the [backend](https://github.com/fabric8io/generator-backend) and [forge addon](https://github.com/fabric8io/fabric8-generator)\n\n#### Version 3.x and earlier\n\nThe angular JS 1.x version of the [Developer Console](https://fabric8.io/guide/console.html) is made up of:\n\n* [fabric8-console](https://github.com/fabric8io/fabric8-console) the web console for fabric8\n* [fabric8-forge](https://github.com/fabric8io/fabric8-forge) contains the main [JBoss Forge addons and REST service](https://fabric8.io/guide/forge.html) which provides developer wizards to create and edit projects\n\n\n\n#### CI / CD\n\n* [fabric8-pipeline-library](https://github.com/fabric8io/fabric8-pipeline-library) provides a set of reusable [Jenkins Pipeline](https://jenkins.io/doc/book/pipeline/) steps and functions that you can reuse inside your `Jenkinsfile` via the [@Library annotation](https://github.com/fabric8io/fabric8-pipeline-library#how-to-use-this-library)\n* [fabric8-jenkinsfiles-library](https://github.com/fabric8io/fabric8-jenkinsfile-library) provides a set of reusable `Jenkinsfile` files you can use on your projects. The `Jenkisnfiles` resue the [fabric8-pipeline-library](https://github.com/fabric8io/fabric8-pipeline-library and they are used by the [Developer Console](https://fabric8.io/guide/console.html) when creating projects or choosing pipelines.\n* [kubernetes-plugin](https://github.com/jenkinsci/kubernetes-plugin) is the Jenkins plugin which adds native Kubernetes support for defining build slave pods with custom pods, images, volumes and secrets. Its reused by the [fabric8-jenkinsfiles-library](https://github.com/fabric8io/fabric8-jenkinsfile-library)\n* [kubernetes-pipeline-plugin](https://github.com/fabric8io/kubernetes-pipeline-plugin) contains additional Jenkins Pipeline steps for working with fabric8\n\n### [DevOps](https://fabric8.io/guide/fabric8DevOps.html)\n\n* [fabric8-devops](https://github.com/fabric8io/fabric8-devops) contains the main [DevOps microservices for the Developer Platform](https://fabric8.io/guide/fabric8DevOps.html)\n\n### [iPaaS](https://fabric8.io/guide/ipaas.html)\n\n* [fabric8-ipaas](https://github.com/fabric8io/fabric8-ipaas) contains the main [iPaaS](https://fabric8.io/guide/ipaas.html) applications\n* [ipaas-quickstarts](https://github.com/fabric8io/ipaas-quickstarts) contains the [quickstarts](https://fabric8.io/guide/quickstarts/index.html) and [archetypes](https://fabric8.io/guide/quickstarts/archetypes.html) for the [iPaaS](https://fabric8.io/guide/ipaas.html)\n\n\n### [kubeflix](https://github.com/fabric8io/kubeflix)\n\n* [kubeflix](https://github.com/fabric8io/kubeflix) provides \u003ca href=\"http://kubernetes.io/\"\u003eKubernetes\u003c/a\u003e integration with \u003ca href=\"https://netflix.github.io/\"\u003eNetflix OSS\u003c/a\u003e like \u003ca href=\"https://github.com/Netflix/Hystrix\"\u003eHystrix\u003c/a\u003e, \u003ca href=\"https://github.com/Netflix/Ribbon\"\u003eRibbon\u003c/a\u003e and \u003ca href=\"https://github.com/Netflix/Turbine\"\u003eTurbine\u003c/a\u003e\n\n### Tools\n\n* [gofabric8](https://github.com/fabric8io/gofabric8) is a go based CLI tool for installing and managing fabric8\n\n\n### Suppport for non-docker\n\nSome folks have work loads they need to orchestrate on operating systems that don't yet have production quality docker support (e.g. Windows, AIX, Solaris, HPUX).\n\n* [kansible](https://github.com/fabric8io/kansible) lets you orchestrate operating system processes on Windows or any Unix in the same way as you orchestrate your Docker containers with Kubernetes by using Ansible to provision the software onto hosts and Kubernetes to orchestrate the processes and the containers in a single system\n\n\n## Java Libraries\n\nIf you want to write any Java/JVM based tools to interact with [Kubernetes](http://kubernetes.io) we have a number of libraries to help:\n\n### Kubernetes\n\nKubernetes provides the main REST API for working with the [Kubernetes Platform](http://kubernetes.io). It should provide all you need for writing most services and plugins for Kubernetes.\n\n* [kubernetes-model](https://github.com/fabric8io/kubernetes-model) the Java DTOs for working with [kubernetes](http://kubernetes.io/) and OpenShift which are generated from the go source code in kubernetes and OpenShift\n* [kubernetes-client](https://github.com/fabric8io/fubernetes-client) provides a Java API for working with the Kubernetes and OpenShift REST API (pods, replication controllers, services etc)\n\n* [fabric8](https://github.com/fabric8io/fabric8) contains the main java libraries such as:\n* [kubernetes-api](https://github.com/fabric8io/fabric8/tree/master/components/kubernetes-api) provides helper APIs around the [kubernetes-client](https://github.com/fabric8io/fubernetes-client) for working with Kubernetes and OpenShift\n* [kubernetes-jolokia](https://github.com/fabric8io/fabric8/tree/master/components/kubernetes-jolokia) makes it easy to work with the [Jolokia Client API](http://jolokia.org/reference/html/clients.html#client-java) and Java containers running in [Pods](pods.html) inside Kubernetes which expose the Jolokia port\n\n#### Testing\n\n* [fabric8-arquillian](https://github.com/fabric8io/fabric8/tree/master/components/fabric8-arquillian) provides a plugin for [Arquillian](fabric8-arquillian) for integration testing [Apps](apps.html) on top of Kubernetes; using Kubernetes to provision and orchestrate the containers and then making [assertions](https://github.com/fabric8io/fabric8/tree/master/components/kubernetes-assertions) that the required resources startup correctly.\n* [fabric8-selenium](https://github.com/fabric8io/fabric8/tree/master/components/fabric8-selenium) provides a library to make it easier to create [Selenium WebDriver based](http://www.seleniumhq.org/projects/webdriver/) integration and system tests on Kubernetes using [fabric8-arquillian](https://github.com/fabric8io/fabric8/tree/master/components/fabric8-arquillian)\n* [kubernetes-assertions](https://github.com/fabric8io/fabric8/tree/master/components/kubernetes-assertions) provides a set of [assertj](http://joel-costigliola.github.io/assertj/) assertions of the form **assertThat(kubernetesResource)** for working with the [kubernetes-api](https://github.com/fabric8io/fabric8/tree/master/components/kubernetes-api)\n* [jolokia-assertions](https://github.com/fabric8io/fabric8/tree/master/components/jolokia-assertions) makes it easy to perform assertions on remote JVMs via JMX using  [Jolokia](http://jolokia.org/) over HTTP/JSON\n\n### Spring\n\n* [spring-cloud-kubernetes](https://github.com/fabric8io/spring-cloud-kubernetes) provides \u003ca href=\"http://kubernetes.io/\"\u003eKubernetes\u003c/a\u003e integration with \u003ca href=\"http://projects.spring.io/spring-cloud/\"\u003eSpring Cloud\u003c/a\u003e\n* [kubernetes-zipkin](https://github.com/fabric8io/kubernetes-zipkin) provides \u003ca href=\"http://kubernetes.io/\"\u003eKubernetes\u003c/a\u003e integration with \u003ca href=\"http://zipkin.io/\"\u003eZipkin\u003c/a\u003e for tracing microservices\n\n\n### ActiveMQ\n\n* [mq-client](https://github.com/fabric8io/fabric8-ipaas/tree/master/mq-client) provides the the **io.fabric8.mq.core.MQConnectionFactory** class which implements the JMS ConnectionFactory to connect to Apache ActiveMQ Artemis using the [Kubernetes Service](http://fabric8.io/guide/services.html) discovery mechanism which requires no user configuration (other than a single environment variable if you wish to switch to a non default service implementation)\n\n\n### Camel\n\n* [camel-amq](https://github.com/fabric8io/fabric8-ipaas/tree/master/camel-amq) provides the [Camel](http://camel.apache.org/) **amq:** component which uses the [Kubernetes Service](http://fabric8.io/guide/services.html) discovery mechanism to discover and connect to the ActiveMQ Artemis brokers so that no configuration is required (other than a single environment variable if you wish to switch to a non default service implementation)\n\n* [camel-master](https://github.com/fabric8io/fabric8-ipaas/tree/master/camel-master) provides the [Camel](http://camel.apache.org/) **master:** component which provides a locking mechanism to ensure that only one pod implements a consumer at any time; if that pod dies then another one takes over.\n\n### CDI\n\n* [fabric8-cdi](cdi.html) provides an easy way to work with Kubernetes [services](service.html) using the CDI Dependency Injection approach\n* [fabric8-apt](https://github.com/fabric8io/fabric8/tree/master/fabric8-apt) provides an APT code generator to create a JSON Schema file for each environment variable injected by the [@ConfigProperty](http://deltaspike.apache.org/documentation/configuration.html) annotation from [deltaspike](http://deltaspike.apache.org/) - giving dteails of the name, type, default value and description. This can then be used by the [fabric8:json maven goal](mavenplugin.html) to list all of the environment variables and their\n\n### DevOps\n\n* [fabric8-devops-connector](https://github.com/fabric8io/fabric8/tree/master/components/fabric8-devops-connector) provides a Java library for connecting the various DevOps services like git hosting, chat, issue tracking and jenkins for a project reusing the optional `fabric8.yml` file\n\n### Git Repos\n\n* [gitrepo-api](https://github.com/fabric8io/fabric8/blob/master/components/gitrepo-api/) provides a Java API for working with git repositories such as  \u003ca href=\"http://gogs.io/\"\u003egogs\u003c/a\u003e or \u003ca href=\"http://github.com/\"\u003egithub\u003c/a\u003e\n\n### Hubot\n\n* [hubot-api](https://github.com/fabric8io/fabric8/blob/master/components/hubot-api/) provides a Java API for working with the \u003ca href=\"http://hubot.github.com/\"\u003eHubot chat bot\u003c/a\u003e for sending notifications to chat services like Lets Chat, IRC, Slack, HipChat and Campfire\n\n### Letschat\n\n* [letschat-api](https://github.com/fabric8io/fabric8/blob/master/components/letschat-api/) provides a Java API for working with the \u003ca href=\"http://sdelements.github.io/lets-chat/\"\u003eLet's Chat\u003c/a\u003e to auto-create rooms etc.\n\n### Taiga\n\n* [taiga-api](https://github.com/fabric8io/fabric8/blob/master/components/taiga-api/) provides a Java API for working with the \u003ca href=\"http://taiga.io/\"\u003eTaiga\u003c/a\u003e issue tracker / kanban / scrum management system\n\n\n\n### Additional projects\n\nThe web console uses many different [hawtio 2 modules](http://hawt.io/overview/index.html). In particular the main dependency of is [hawtio-kubernetes](https://github.com/hawtio/hawtio-kubernetes)\n\n### Docker images\n\nThere are numerous docker images created via separate github repositories such as the following:\n\n* [docker-gerrit](https://github.com/fabric8io/docker-gerrit)\n* [docker-grafana](https://github.com/fabric8io/docker-grafana)\n* [docker-gogs](https://github.com/fabric8io/docker-gogs)\n* [docker-prometheus](https://github.com/fabric8io/docker-prometheus)\n* [nexus-docker](https://github.com/fabric8io/nexus-docker)\n* [hubot-irc](https://github.com/fabric8io/hubot-irc)\n* [hubot-lets-chat](https://github.com/fabric8io/hubot-lets-chat)\n* [hubot-slack](https://github.com/fabric8io/hubot-slack)\n* [fabric8-eclipse-orion](https://github.com/fabric8io/fabric8-eclipse-orion)\n* [fabric8-kiwiirc](https://github.com/fabric8io/fabric8-kiwiirc)\n* [jenkins-docker](https://github.com/fabric8io/jenkins-docker)\n* [lets-chat](https://github.com/fabric8io/lets-chat)\n* [taiga-docker](https://github.com/fabric8io/taiga-docker)\n* [openshift-auth-proxy](https://github.com/fabric8io/openshift-auth-proxy)\n\n### Base images\n\nThe above-packaged docker images leverage some of these base Docker images:\n\n#### Java Alpine Linux\n* [docker.io/fabric8/java-alpine-openjdk8-jdk](https://github.com/fabric8io/base-images/tree/master/java/images/alpine/openjdk8/jdk)\n* [docker.io/fabric8/java-alpine-openjdk8-jre](https://github.com/fabric8io/base-images/tree/master/java/images/alpine/openjdk8/jre)\n* [docker.io/fabric8/java-alpine-openjdk7-jdk](https://github.com/fabric8io/base-images/tree/master/java/images/alpine/openjdk7/jdk)\n* [docker.io/fabric8/java-alpine-openjdk7-jre](https://github.com/fabric8io/base-images/tree/master/java/images/alpine/openjdk7/jdk)\n\n#### Java Centos Linux\n* [docker.io/fabric8/java-centos-openjdk8-jdk](https://github.com/fabric8io/base-images/tree/master/java/images/centos/openjdk8/jdk)\n* [docker.io/fabric8/java-centos-openjdk8-jre](https://github.com/fabric8io/base-images/tree/master/java/images/centos/openjdk8/jre)\n* [docker.io/fabric8/java-centos-openjdk7-jdk](https://github.com/fabric8io/base-images/tree/master/java/images/centos/openjdk7/jdk)\n* [docker.io/fabric8/java-centos-openjdk7-jre](https://github.com/fabric8io/base-images/tree/master/java/images/centos/openjdk7/jdk)\n\n#### JBoss\n* [docker.io/fabric8/java-jboss-openjdk8-jdk](https://github.com/fabric8io/base-images/tree/master/java/images/jboss/openjdk8/jdk)\n\n\n#### Jetty\n* [docker.io/fabric8/jetty-9](https://github.com/fabric8io/base-images/tree/master/jetty/images/9)\n* [docker.io/fabric8/jetty-8](https://github.com/fabric8io/base-images/tree/master/jetty/images/8)\n\n#### Karaf\n* [docker.io/fabric8/karaf-2.4](https://github.com/fabric8io/base-images/tree/master/karaf/images/2.4)\n* [docker.io/fabric8/karaf-3.0](https://github.com/fabric8io/base-images/tree/master/karaf/images/3)\n\n#### Tomcat\n* [docker.io/fabric8/tomcat-8.0](https://github.com/fabric8io/base-images/tree/master/tomcat/images/8)\n* [docker.io/fabric8/tomcat-7.0](https://github.com/fabric8io/base-images/tree/master/tomcat/images/7)\n\n#### s2i\n* [docker.io/fabric8/s2i-java](https://github.com/fabric8io-images/s2i/tree/master/java)\n* [docker.io/fabric8/s2i-karaf](https://github.com/fabric8io-images/s2i/tree/master/karaf)\n\n# v 4.x pre-release development\n\nSteps to run the in development 4.x fabric8-platform using the latest mnishift please see the new [Install Guide](INSTALL.md)\n\nHere's the old way we were installing it via gofabric8:\n```\nminishift  start --vm-driver=xhyve --memory=6144 --cpus=4 --disk-size=50g --openshift-version=v3.6.0-alpha.1\nminishift openshift config set --patch '{\"corsAllowedOrigins\": [\".*\"]}'\noc new-project fabric8\ngit clone https://github.com/fabric8io/fabric8-platform.git\ncd fabric8-platform\nmvn clean install -DskipTests=true\ngofabric8 deploy --package=packages/fabric8-system/target/classes/META-INF/fabric8/openshift.yml\n```\nPods may be restarted a few times whilst configuration is updated and applied.\n\nOnce all pods are seen running with `oc get pods`\n\n_NOTE these next steps will be automated soon_\n\nApply manual step as an admin user:\n```\noc login -u system:admin\ncat \u003c\u003cEOF | oc create -f -\nkind: OAuthClient\napiVersion: v1\nmetadata:\n  name: fabric8-online-platform\nsecret: fabric8\nredirectURIs:\n- \"https://$(oc get route keycloak -o jsonpath=\"{.spec.host}\")/auth/realms/fabric8/broker/openshift-v3/endpoint\"\ngrantMethod: prompt\nEOF\noc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:fabric8:init-tenant\noc login -u developer -p developer\n```\n\n## Configure Keycloak\n\nWe now have GitHub integration which for now requires a manual OAuth setup to obtain a clientid and secret that we will give to keycloak.  Follow these steps using the output of:\n```\necho https://$(oc get route keycloak -o jsonpath=\"{.spec.host}\")/auth/realms/fabric8/broker/github/endpoint\n```\nas the Authorization callback URL and `http://fabric8.io` as a sample homepage URL.\n\nhttps://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps/\n\n![Register OAuth App](./images/register-oauth.png)\n\n```\nopen https://$(oc get route keycloak -o jsonpath=\"{.spec.host}\")\n```\nLog in with username `admin` and password `admin`\n\nNow in Keycloak navigate to the GitHub Identity Provider and `edit` now you can replace the Client ID and Secret with the values you get from the GitHub setup above.\n\n![GitHub provider](./images/keycloak-github.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabric8io%2Ffabric8-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabric8io%2Ffabric8-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabric8io%2Ffabric8-platform/lists"}