# theia-apps
**Repository Path**: starriddle/theia-apps
## Basic Information
- **Project Name**: theia-apps
- **Description**: mirror repo from github https://github.com/theia-ide/theia-apps.git
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-12-25
- **Last Updated**: 2021-02-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

## Eclipse Theia Applications - Docker & Electron
[](https://github.com/theia-ide/theia-apps/actions?query=branch%3Amaster+event%3Apush+event%3Aschedule)
[](https://github.com/theia-ide/theia-apps/labels/help%20wanted)
[](https://github.com/theia-ide/theia-apps/issues?utf8=%E2%9C%93&q=label%3Aquestion+)
Collection of example cloud & desktop applications built using the [Theia](https://github.com/eclipse-theia/theia) platform.
---
### Outline
- [Overview](#overview)
- [Docker Image Variants](#docker-image-variants)
- [Additional Docker Examples](#additional-docker-examples)
- [How to use `theiaide/theia` image](#how-to-use-theiaidetheia-image)
- [Electron Applications](#electron-apps)
- [Running & Debugging](#running-&-debugging)
- [Tips & Tricks](#tips-&-tricks)
- [Build Options](#build-options)
- [Contributing](#contributing)
- [License](#license)
### Overview
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.
### Docker Image Variants
| Image Name | Description | Documentation |
|:---|:---|:---|
| [theiaide/theia](https://hub.docker.com/r/theiaide/theia) | Theia-based JavaScript/TypeScript (Web Technologies) example application | |
_Other Variants_:
| Image Name | Description | Documentation |
|:---|:---|:---|
| [theiaide/theia-cpp](https://hub.docker.com/r/theiaide/theia-cpp) | Theia-based C/C++ example application | [docs](./theia-cpp-docker/README.md) |
| [theiaide/theia-dart](https://hub.docker.com/r/theiaide/theia-dart) | Theia-based Dart example application | |
| [theiaide/theia-full](https://hub.docker.com/r/theiaide/theia-full) | Theia-based example application with support for multiple languages | |
| [theiaide/theia-go](https://hub.docker.com/r/theiaide/theia-go) | Theia-based Go example application | [docs](./theia-go-docker/README.md) |
| [theiaide/theia-python](https://hub.docker.com/r/theiaide/theia-python) | Theia-based Python example application | [docs](./theia-python-docker/README.md) |
| [theiaide/theia-php](https://hub.docker.com/r/theiaide/theia-php) | Theia-based PHP example application | [docs](./theia-php-docker/README.md) |
| [theiaide/theia-rust](https://hub.docker.com/r/theiaide/theia-rust) | Theia-based Rust example application | [docs](./theia-rust-docker/README.md) |
| [theiaide/theia-swift](https://hub.docker.com/r/theiaide/theia-swift) | Theia-based Swift example application | |
---
### Additional Docker Examples
| Image Name | Description | Documentation |
|:---|:---|:---|
| `theia-deb-build-docker` | Example on how to package the IDE into a Debian package | [docs](./theia-deb-build-docker/README.md) |
| `theia-https-docker` | Example on how to add security layer over existing images | [docs](./theia-https-docker/README.md) |
| `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-rpm-build-docker/README.md) |
### How to use `theiaide/theia` image?
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](https://github.com/theia-ide/theia-apps/issues/195).
# 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
### Electron Apps
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-cpp-electron/README.md) |
| `theia-electron` | Theia-based JavaScript/TypeScript (Web Technologies) desktop IDE | [docs](./theia-electron/README.md) |
---
## VS Code Extensions
Many applications in the repository now include support for running VS Code extensions, and an integration to the public instance of [open-vsx registry](https://open-vsx.org/), an open alternative to the Visual Studio Marketplace. The `Extensions` view can be opened through the `Views` top-level menu when starting the application.
## Tips & Tricks
- #### Build Options:
- `--init` injects an instance of [tini](https://github.com/krallin/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](https://docs.docker.com/engine/security/seccomp/) for debugging. This option is also required if the swift REPL is needed.
## Contributing
[Contributing](CONTRIBUTING.md)
## License
[Apache 2.0](LICENSE)