che-server/README.md

5.9 KiB

What is Che server

Che Server is a core component of the Eclipse Che. This component is responsible for creation and managing of Che workspaces, but will some day be replaced by the Dev Workspace Operator.

Project structure

Che Server is mostly a Java web application deployed on a Apache Tomcat server in a container.

  • 'pom.xml' The root Maven module, that lists all dependencies and structure.
  • 'assembly' - module for final assemblies of Che web applications
  • 'dockerfiles' - directory contains image Dockerfile for Che Server, as well as additional images.
  • 'core' - core and utility modules for Che.
  • 'wsmaster' - primary modules of the Che Server API.
  • 'multiuser' - modules related to multiuser implementation of Che.
  • 'infrastructure' - implementations for the underlying infrastructure, on which Che is running (Kubernetes, Openshift, etc.)
  • 'deploy' - deployment files for Helm installation.
  • 'typescript-dto' module, that provides DTO objects for typescript projects that may depend on Che Server, such as Che Theia.

Build requirements

  • Apache Maven 3.6.3 or Higher
  • JDK Version 11
  • Podman or Docker (required for running integration tests)

Sources build

Run mvn clean install to build. Activate a faster profile build by adding -Pfast

Image build and push

  1. Go to the dockerfiles directory.
  2. Run ./build.sh.
  3. Tag the che-server image with your account docker tag quay.io/eclipse/che-server:next <docker registry>/<your account>/che-server:next.
  4. Push the che-server image to your account docker push <docker registry>/<your account>/che-server:next.

Debug

  1. Deploy Che to an openshift cluster or minikube. Use the previously built image: chectl server:start --platform=<openshift / minikube> --cheimage=<docker registry>/<your account>/che-server:next
  2. Enable local debug of Eclipse Che server: chectl server:debug.
  3. In your IDE create a new Remote JVM Debug configuration on localhost:8000.
  4. Hit a breakpoint in the code and activate the debug configuration.

CI

There are several GitHub Actions workflows implemented for this repository:

  • build-next
    Builds Maven artifacts, builds container images and pushes them to quay.io on each commit to main branch.
  • Release Che Server
    Builds Maven artifacts and container images. Images are public and pushed to quay.io. See RELEASE.md for more information about this workflow.
  • Release Changelog
    Creates a GitHub release which will include a generated changelog.
  • Update Che docs variables
    Runs on each commit to main branch.
  • build-pr-check
    Builds Maven artifacts and container images. This workflow is used as a check for all pull requests that are submitted to this project.
  • Sonar
    Runs Sonar against the main branch. The result can be seen here.
  • Try in Web IDE
    Used as a check for pull requests that are submitted to this project.

Downstream builds can be found at the link below, which is internal to Red Hat. Stable builds can be found by replacing the 3.x with a specific version like 3.2.

License

Join the community

The Eclipse Che community is globally reachable through public chat rooms, mailing list and weekly calls. See https://www.eclipse.org/che/docs/stable/overview/introduction-to-eclipse-che/#_joining_the_community

Report issues

Issues are tracked on the main Eclipse Che Repository: https://github.com/eclipse/che/issues