/che-server

Primary LanguageJavaEclipse Public License 2.0EPL-2.0

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)

Build and debug

Run mvn clean install to build Activate a faster profile build by adding -Pfast To debug, run mvn clean install -X and connect your IDE to the debug port

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/che-7/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