Collection of example cloud & desktop applications built using the Theia platform.
Note: This repository is soon to be considered deprecated and will eventually be archived. Theia Blueprint is a more polished example application based on the Eclipse Theia framework, that might be of interest. For more details, see issue #496.
- Overview
- Docker Image Variants
- Additional Docker Examples
- Electron Applications
- Running & Debugging
- Tips & Tricks
- Contributing
- License
This repository contains a collection of Theia-based IDE applications (both electron desktop apps and docker images) as examples, for demo and continuous-integration purposes.
Image Name | Description | Documentation |
---|---|---|
theiaide/theia | Theia-based JavaScript/TypeScript (Web Technologies) example application |
Other Variants:
Image Name | Description | Documentation |
---|---|---|
theiaide/theia-cpp | Theia-based C/C++ example application | docs |
theiaide/theia-dart | Theia-based Dart example application | |
theiaide/theia-full | Theia-based example application with support for multiple languages | |
theiaide/theia-go | Theia-based Go example application | docs |
theiaide/theia-python | Theia-based Python example application | docs |
theiaide/theia-php | Theia-based PHP example application | docs |
theiaide/theia-rust | Theia-based Rust example application | docs |
theiaide/theia-swift | Theia-based Swift example application |
Image Name | Description | Documentation |
---|---|---|
theia-deb-build-docker |
Example on how to package the IDE into a Debian package | docs |
theia-https-docker |
Example on how to add security layer over existing images | docs |
theia-openshift-docker |
Example image for OpenShift | |
theia-rpm-build-docker |
Example on how to package the IDE into an RPM (for RHEL/CentOS) | docs |
Theia is actively being developed. It is recommended to use theiaide/theia:latest
if you want the latest stable release of Theia or theiaide/theia:next
if you want the most recent version of Theia at the time the image was built (bleeding edge).
The following pulls the image and runs Theia IDE on http://localhost:3000 with the current directory as a workspace. The option of --init
is added to fix the defunct process problem.
# Linux, macOS, or PowerShell
docker run -it --init -p 3000:3000 -v "$(pwd):/home/project:cached" theiaide/theia:next
# Windows (cmd.exe)
docker run -it --init -p 3000:3000 -v "%cd%:/home/project:cached" theiaide/theia:next
You can pass additional arguments to Theia after the image name, for example to enable debugging:
# Linux, macOS, or PowerShell
docker run -it --init -p 3000:3000 --expose 9229 -p 9229:9229 -v "$(pwd):/home/project:cached" theiaide/theia:next --inspect=0.0.0.0:9229
# Windows (cmd.exe)
docker run -it --init -p 3000:3000 --expose 9229 -p 9229:9229 -v "%cd%:/home/project:cached" theiaide/theia:next --inspect=0.0.0.0:9229
The repository contains example Electron applications which are packaged using electron-builder
. Following the steps provided in their respective README, it is possible to build and package the applications for Desktop use.
Application Name | Description | Documentation |
---|---|---|
theia-cpp-electron |
Theia-based C/C++ desktop IDE | docs |
theia-electron |
Theia-based JavaScript/TypeScript (Web Technologies) desktop IDE | docs |
Many applications in the repository now include support for running VS Code extensions, and an integration to the public instance of open-vsx registry, an open alternative to the Visual Studio Marketplace. The Extensions
view can be opened through the Views
top-level menu when starting the application.
-
--init
injects an instance of tini in the container, that will wait-for and reap terminated processes, to avoid leaking PIDs.--security-opt seccomp=unconfined
enables running without the default seccomp profile for debugging. This option is also required if the swift REPL is needed.