diff --git a/coder-base/README.md b/coder-base/README.md new file mode 100644 index 0000000..429f2a3 --- /dev/null +++ b/coder-base/README.md @@ -0,0 +1,55 @@ +# ๐Ÿ–ฅ๏ธ Coder Base Module + +This module provides the shared logic and workspace provisioning foundation for my Coder templates using Docker containers. + +It is designed to be imported and reused by language-specific templates to standardize configuration and reduce duplication + +## ๐Ÿ“ฆ Features + +- ๐Ÿณ **Containerized Workspaces** + - Provisions Docker containers using a specified image + +- ๐Ÿ’ป **Remote IDE Support** + - **VS Code Server** with configurable extensions and settings + - **JetBrains Gateway** support with selectable IDEs (IntelliJ, PhpStorm, etc.) + +- ๐Ÿงฐ **Custom Tooling Support** + - Startup scripts to initialize language environments + +- ๐Ÿ”ƒ **Optional Git Repo Clone** + - Clones a user-specified repository into `~/repo` during provisioning + + +## ๐Ÿ“ File Structure + +``` +coder-base/ +โ”œโ”€โ”€ main.tf # Main logic for provisioning the workspace +โ”œโ”€โ”€ variables.tf # Input variables for customization +โ”œโ”€โ”€ outputs.tf # Variables available to use in templates +``` + +## ๐Ÿ”ง Inputs + +| Name | Type | Description | Default | Required | +|------------------------|------------------------------|----------------------------------------------------------|-------------|----------| +| `docker_image` | `string` | Docker image to use for the workspace | n/a | โœ… Yes | +| `vscode_extensions` | `list(string)` | List of VS Code extensions to install | `[]` | โŒ No | +| `vscode_settings` | `map(string)` | Key-value VS Code settings | `{}` | โŒ No | +| `jetbrains_ides` | `list(string)` | JetBrains IDEs to enable (e.g., `["IU", "PS"]`) | `["IU"]` | โœ… Yes | +| `jetbrains_default` | `string` | Default JetBrains IDE to launch | `"IU"` | โœ… Yes | +| `docker_socket` | `string` | Optional Docker socket override | `""` | โŒ No | +| `repo_url` | `string` | Git repository to clone into `~/repo` | `""` | โŒ No | +| `language_startup_script` | `string` | Startup shell script executed on container boot | `""` | โŒ No | +| `language_metadata` | `list(object)` | Custom metadata blocks shown in Coder UI (e.g. versions) | `[]` | โŒ No | + +Each `language_metadata` object includes: +```hcl +{ + display_name = string + key = string + script = string + interval = number + timeout = number +} +``` \ No newline at end of file diff --git a/templates/java/README.md b/templates/java/README.md new file mode 100644 index 0000000..50bfc69 --- /dev/null +++ b/templates/java/README.md @@ -0,0 +1,40 @@ +# Java Development Environment + +This template provisions a ready-to-use Java development environment with Maven preinstalled. + + +## ๐Ÿš€ Features + +- ๐Ÿงฐ **Pre-installed Java Tooling** + - Multiple JDK versions: Java 8, 17, and 21 + - Maven and common utilities +- ๐Ÿณ **Containerized Development** +- ๐Ÿ’ป **Remote IDE Support** + - VS Code Server with extensions for Java + - JetBrains Gateway with IntelliJ IDEA + + +## ๐Ÿ“ฆ Image + +Images are hosted at: +registry.bobert.me/anthorob/coder-images:java\ + +For example: +- `java8` +- `java17` +- `java21` + +๐Ÿ‘‰ Check the repository at [coder-images](https://git.bobert.me/anthorob/coder-images) to see how these images are built. + + +## ๐Ÿงช IDE + +- **Code Server preinstalled extensions** + - `vscjava.vscode-java-pack` + - `redhat.java` + - `vscjava.vscode-java-debug` + - `vscjava.vscode-java-dependency` + - `vscjava.vscode-maven` + +- **JetBrains Gateway** + - IntelliJ IDEA (Ultimate) is enabled by default diff --git a/templates/php/README.md b/templates/php/README.md new file mode 100644 index 0000000..1d880ce --- /dev/null +++ b/templates/php/README.md @@ -0,0 +1,51 @@ +# PHP Development Environment + +This template provisions a ready-to-use PHP development environment with Composer and Node preinstalled. + + +## ๐Ÿš€ Features + +- ๐Ÿงฐ **Preinstalled PHP Tooling** + - Supports PHP 7.4, 8.0, and 8.2 versions (configurable) + - Composer and common CLI tools included + - Integrated with [NVM](https://github.com/nvm-sh/nvm) for managing Node.js versions. +- ๐Ÿณ **Containerized Development** +- ๐Ÿ’ป **Remote IDE Support** + - VS Code Server with PHP extensions + - JetBrains Gateway with PhpStorm enabled + + +## ๐Ÿ“ฆ Images + +Images are hosted at: +registry.bobert.me/anthorob/coder-images:java\ + +For example: +- `php74` +- `php80` +- `php82` + +๐Ÿ‘‰ Check the repository at [coder-images](https://git.bobert.me/anthorob/coder-images) to see how these images are built. + + +## ๐Ÿงช IDE Integrations + +### VS Code Server + +Preinstalled extensions: +- **PHP Development** + - `bmewburn.vscode-intelephense-client` + - `felixfbecker.php-debug` + - `mehedidracula.php-namespace-resolver` + +- **JavaScript / Node.js** + - `dbaeumer.vscode-eslint` + - `ms-vscode.vscode-typescript-tslint-plugin` + +- **Utilities** + - `mikestead.dotenv` + - `christian-kohler.path-intellisense` + +### JetBrains Gateway + +- PhpStorm enabled by default