diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8117c47..9ee005c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest @@ -24,8 +24,8 @@ jobs: fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest - - run: bun fmt:ci \ No newline at end of file + - run: bun fmt:ci diff --git a/.images/jupyterlab.png b/.images/jupyterlab.png new file mode 100644 index 0000000..3a0451c Binary files /dev/null and b/.images/jupyterlab.png differ diff --git a/.images/jupyterlab.webp b/.images/jupyterlab.webp deleted file mode 100644 index d87f7c0..0000000 Binary files a/.images/jupyterlab.webp and /dev/null differ diff --git a/.sample/run.sh b/.sample/run.sh index 88af7ad..79eb123 100755 --- a/.sample/run.sh +++ b/.sample/run.sh @@ -1,17 +1,18 @@ #!/usr/bin/env sh -echo "Instalalting ${MODULE_NAME}..." +BOLD='\033[0;1m' +echo "$${BOLD}Installing MODULE_NAME..." # Add code here # Use varibles from the templatefile function in main.tf # e.g. LOG_PATH, PORT, etc. -echo "Installation comlete!" +echo "🥳 Installation comlete!" -echo "Starting ${MODULE_NAME}..." +echo "👷 Starting MODULE_NAME in background..." # Start the app in here # 1. Use & to run it in background # 2. redirct stdout and stderr to log files ./app >${LOG_PATH} 2>&1 & -echo "Sample app started!" +echo "check logs at ${LOG_PATH}" diff --git a/dotfiles/README.md b/dotfiles/README.md index 096c74e..316773c 100644 --- a/dotfiles/README.md +++ b/dotfiles/README.md @@ -10,3 +10,10 @@ tags: [helper] # Dotfiles Allow developers to optionally bring their own [dotfiles repository](https://dotfiles.github.io)! Under the hood, this module uses the [coder dotfiles](https://coder.com/docs/v2/latest/dotfiles) command. + +```hcl +module "dotfiles" { + source = "https://registry.coder.com/modules/dotfiles" + agent_id = coder_agent.example.id +} +``` diff --git a/dotfiles/main.tf b/dotfiles/main.tf index c1479eb..d3d0de2 100644 --- a/dotfiles/main.tf +++ b/dotfiles/main.tf @@ -16,11 +16,12 @@ variable "agent_id" { data "coder_parameter" "dotfiles_uri" { type = "string" + name = "dotfiles_uri" display_name = "Dotfiles URL (optional)" default = "" description = "Enter a URL for a [dotfiles repository](https://dotfiles.github.io) to personalize your workspace" mutable = true - icon = "https://raw.githubusercontent.com/jglovier/dotfiles-logo/main/dotfiles-logo-icon.svg" + icon = "/icon/dotfiles.svg" } resource "coder_script" "personalize" { @@ -32,6 +33,6 @@ resource "coder_script" "personalize" { fi EOT display_name = "Dotfiles" - icon = "https://raw.githubusercontent.com/jglovier/dotfiles-logo/main/dotfiles-logo-icon.svg" + icon = "/icon/dotfiles.svg" run_on_start = true } diff --git a/jupyterlab/README.md b/jupyterlab/README.md index d551f96..0953737 100644 --- a/jupyterlab/README.md +++ b/jupyterlab/README.md @@ -11,7 +11,7 @@ tags: [jupyter, helper, ide, web] A module that adds JupyterLab in your Coder template. -![JupyterLab](../.images/jupyterlab.webp) +![JupyterLab](../.images/jupyterlab.png) ```hcl module "jupyterlab" { diff --git a/jupyterlab/main.tf b/jupyterlab/main.tf index e95c0a2..1727aa4 100644 --- a/jupyterlab/main.tf +++ b/jupyterlab/main.tf @@ -9,10 +9,6 @@ terraform { } } -locals { - icon_url = "/icon/jupyter.svg" -} - # Add required variables for your modules and remove any unneeded variables variable "agent_id" { type = string @@ -34,13 +30,12 @@ variable "port" { resource "coder_script" "jupyterlab" { agent_id = var.agent_id display_name = "jupyterlab" - icon = local.icon_url + icon = "/icon/jupyter.svg" script = templatefile("${path.module}/run.sh", { LOG_PATH : var.log_path, PORT : var.port }) run_on_start = true - run_on_stopt = false } resource "coder_app" "jupyterlab" { @@ -48,7 +43,7 @@ resource "coder_app" "jupyterlab" { slug = "jupyterlab" display_name = "JupyterLab" url = "http://localhost:${var.port}" - icon = local.icon_url + icon = "/icon/jupyter.svg" subdomain = true share = "owner" } diff --git a/jupyterlab/run.sh b/jupyterlab/run.sh index a3a484a..ec7c28d 100755 --- a/jupyterlab/run.sh +++ b/jupyterlab/run.sh @@ -1,22 +1,25 @@ #!/usr/bin/env sh -echo "Instalalting ${MODULE_NAME}..." +BOLD='\033[0;1m' + +echo "$${BOLD}Installing jupyterlab!\n" # check if jupyterlab is installed -if ! command -v jupyterlab &> /dev/null then - # install jupyterlab +if ! command -v jupyterlab > /dev/null 2>&1; then + # install jupyterlab # check if python3 pip is installed - if ! command -v pip3 &> /dev/null then + if ! command -v pip3 > /dev/null 2>&1; then echo "pip3 is not installed" - echo "Please install pip3 and try again" + echo "Please install pip3 in your Dockerfile/VM image before running this script" exit 1 fi - pip3 install jupyterlab - echo "jupyterlab installed!" + # install jupyterlab + pip3 install --upgrade --no-cache-dir --no-warn-script-location jupyterlab + echo "🥳 jupyterlab has been installed\n\n" +else + echo "🥳 jupyterlab is already installed\n\n" fi -echo "Starting ${MODULE_NAME}..." - -$HOME/.local/bin/jupyter lab --no-browser --LabApp.token='' --LabApp.password='' >${LOG_PATH} 2>&1 & - -echo "Started ${MODULE_NAME}!" +echo "👷 Starting jupyterlab in background..." +echo "check logs at ${LOG_PATH}" +$HOME/.local/bin/jupyter lab --ServerApp.ip='0.0.0.0' --ServerApp.port=${PORT} --no-browser --ServerApp.token='' --ServerApp.password='' >${LOG_PATH} 2>&1 & diff --git a/kasmvnc/README.md b/kasmvnc/README.md deleted file mode 100644 index 0bfcaf9..0000000 --- a/kasmvnc/README.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -display_name: KasmVNC -description: A modern open source VNC server -icon: ../.icons/kasmvnc.svg -maintainer_github: coder -verified: true -tags: [helper, VNC, web] ---- - -# KasmVNC - -Automatically install [KasmVNC](https://kasmweb.com/kasmvnc) in a workspace, and create an app to access it via the dashboard. - -## Examples - -1. Add latest version of KasmVNC with [`lxde`](https://www.lxde.org/) desktop environment: - - ```hcl - module "kasmvnc" { - source = "https://registry.coder.com/modules/kasmvnc" - agent_id = coder_agent.example.id - } - - ``` - -2. Add specific version of KasmVNC with [`mate`](https://mate-desktop.org/) desktop environment and custom port: - - ```hcl - module "kasmvnc" { - source = "https://registry.coder.com/modules/kasmvnc" - agent_id = coder_agent.example.id - version = "1.0.0" - desktop_environment = "mate" - port = 6080 - } - - ``` - -![Screenshot of KasmVNC]() //TODO diff --git a/kasmvnc/main.tf b/kasmvnc/main.tf deleted file mode 100644 index 6fd0ba4..0000000 --- a/kasmvnc/main.tf +++ /dev/null @@ -1,55 +0,0 @@ -terraform { - required_version = ">= 1.0" - - required_providers { - coder = { - source = "coder/coder" - version = ">= 0.12" - } - } -} - -variable "agent_id" { - type = string - description = "The ID of a Coder agent." -} - -variable "port" { - type = number - description = "The port to run KasmVNC on." - default = 8443 -} - -variable "desktop_environment" { - type = string - description = "The desktop environment to for KasmVNC (xfce, lxde, mate, etc)." - default = "lxde" -} - -variable "version" { - type = string - description = "Version of KasmVNC to install." - default = "1.2.0" -} - -resource "coder_script" "kasm_vnc" { - agent_id = var.agent_id - display_name = "KasmVNC" - icon = "/icon/kasmvnc.svg" - script = templatefile("${path.module}/run.sh", { - PORT : var.port, - DESKTOP_ENVIRONMENT : var.desktop_environment, - VERSION : var.version - }) - run_on_start = true -} - -resource "coder_app" "kasm_vnc" { - agent_id = var.agent_id - slug = "kasm-vnc" - display_name = "kasmVNC" - url = "http://localhost:${var.port}" - icon = "/icon/kasmvnc.svg" - subdomain = false - share = "owner" -} diff --git a/kasmvnc/run.sh b/kasmvnc/run.sh deleted file mode 100644 index 7a59580..0000000 --- a/kasmvnc/run.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash - -# Check if desktop enivronment is installed -if ! dpkg -s ${DESKTOP_ENVIRONMENT} &>/dev/null; then - sudo apt-get update - DEBIAN_FRONTEND=noninteractive sudo apt-get install -y ${DESKTOP_ENVIRONMENT} -else - echo "${DESKTOP_ENVIRONMENT} is already installed." -fi - -# Check if vncserver is installed -if ! dpkg -s kasmvncserver &>/dev/null; then - cd /tmp - wget https://github.com/kasmtech/KasmVNC/releases/download/v${VERSION}/kasmvncserver_focal_${VERSION}_amd64.deb - sudo apt install -y ./kasmvncserver_focal_${VERSION}_amd64.deb - printf "🥳 KasmVNC v${VERSION} has been successfully installed!\n\n" -else - echo "KasmVNC is already installed." -fi - -sudo addgroup $USER ssl-cert - -# Coder port-forwarding from dashboard only supports HTTP -sudo bash -c 'cat > /etc/kasmvnc/kasmvnc.yaml <