Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions interactive-gallery.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"interactive_type": "vscode",
"name": "VS Code",
"description": "Remote VS Code development environment via tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; sudo apt update && sudo apt install -y gnupg software-properties-common apt-transport-https wget && wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | sudo tee /etc/apt/sources.list.d/vscode.list && sudo apt update && sudo apt install -y code;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; $SUDO apt-get update && $SUDO apt-get install -y gnupg software-properties-common apt-transport-https wget && wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && $SUDO install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | $SUDO tee /etc/apt/sources.list.d/vscode.list && $SUDO apt-get update && $SUDO apt-get install -y code;",
"command": "code tunnel --accept-server-license-terms --disable-telemetry",
"env_parameters": [],
"icon": "https://lab.cloud/img/icons/vscode.png"
Expand All @@ -14,7 +14,7 @@
"interactive_type": "jupyter",
"name": "Jupyter Notebook",
"description": "Jupyter Lab notebook environment via ngrok tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install -y ngrok && pip install jupyter;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok && pip install jupyter;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='' --NotebookApp.password='' --notebook-dir=~ > /tmp/jupyter.log 2>&1 & sleep 3 && ngrok http 8888 --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/jupyter.log /tmp/ngrok.log",
"env_parameters": [
{
Expand All @@ -34,7 +34,7 @@
"interactive_type": "vllm",
"name": "vLLM Server",
"description": "vLLM OpenAI-compatible API server via ngrok tunnel (plus Open WebUI)",
"setup": "export DEBIAN_FRONTEND=noninteractive && curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install -y ngrok curl python3-pip && curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH=\"$HOME/.cargo/bin:$PATH\" && uv venv ~/vllm-venv --seed --python 3.11 && . ~/vllm-venv/bin/activate && uv pip install \"vllm>=0.11.0\" \"transformers>=4.57.1\" qwen-vl-utils==0.0.14 open-webui",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive && curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list && $SUDO apt-get update && $SUDO apt-get install -y ngrok curl python3-pip && if ! command -v uv >/dev/null 2>&1; then curl -LsSf https://astral.sh/uv/install.sh | sh; fi && export PATH=\"$HOME/.local/bin:$HOME/.cargo/bin:$PATH\" && uv venv ~/vllm-venv --seed --python 3.11 && . ~/vllm-venv/bin/activate && uv pip install \"vllm>=0.11.0\" \"transformers>=4.57.1\" qwen-vl-utils==0.0.14 open-webui",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; ~/vllm-venv/bin/python -u -m vllm.entrypoints.openai.api_server --model $MODEL_NAME --tensor-parallel-size $TP_SIZE --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9 > /tmp/vllm.log 2>&1 & sleep 10 && OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1 OPENAI_API_KEY=dummy ~/vllm-venv/bin/open-webui serve --host 0.0.0.0 --port 8080 > /tmp/openwebui.log 2>&1 & sleep 5 && printf '%s\n' 'version: 2' 'authtoken: '\"$NGROK_AUTH_TOKEN\" 'tunnels:' ' vllm:' ' proto: http' ' addr: 8000' ' openwebui:' ' proto: http' ' addr: 8080' > ~/ngrok-vllm.yml && ngrok start --all --config ~/ngrok-vllm.yml --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/vllm.log /tmp/openwebui.log /tmp/ngrok.log",
"env_parameters": [
{
Expand Down Expand Up @@ -79,7 +79,7 @@
"interactive_type": "ollama",
"name": "Ollama Server",
"description": "Ollama model server via ngrok tunnel (plus Open WebUI)",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install -y ngrok curl python3-pip && curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH=\"$HOME/.cargo/bin:$PATH\" && uv venv ~/ollama-venv --seed --python 3.11 && . ~/ollama-venv/bin/activate && uv pip install open-webui && curl -fsSL https://ollama.com/install.sh | sh && sudo apt update && sudo apt install -y pciutils lshw;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok curl python3-pip && if ! command -v uv >/dev/null 2>&1; then curl -LsSf https://astral.sh/uv/install.sh | sh; fi && export PATH=\"$HOME/.local/bin:$HOME/.cargo/bin:$PATH\" && uv venv ~/ollama-venv --seed --python 3.11 && . ~/ollama-venv/bin/activate && uv pip install open-webui && curl -fsSL https://ollama.com/install.sh | sh && $SUDO apt-get update && $SUDO apt-get install -y pciutils lshw;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; export OLLAMA_HOST=0.0.0.0:11434 && ollama serve > /tmp/ollama.log 2>&1 & sleep 3 && ollama pull $MODEL_NAME > /tmp/ollama-pull.log 2>&1 & sleep 5 && OLLAMA_BASE_URL=http://127.0.0.1:11434 ~/ollama-venv/bin/open-webui serve --host 0.0.0.0 --port 8080 > /tmp/openwebui.log 2>&1 & sleep 5 && printf '%s\n' 'version: 2' 'authtoken: '\"$NGROK_AUTH_TOKEN\" 'tunnels:' ' ollama:' ' proto: http' ' addr: 11434' ' openwebui:' ' proto: http' ' addr: 8080' > ~/ngrok-ollama.yml && ngrok start --all --config ~/ngrok-ollama.yml --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/ollama.log /tmp/ollama-pull.log /tmp/openwebui.log /tmp/ngrok.log",
"env_parameters": [
{
Expand Down Expand Up @@ -107,7 +107,7 @@
"interactive_type": "ssh",
"name": "SSH",
"description": "SSH access via ngrok TCP tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install ngrok;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; echo USER_ID=$(whoami 2>/dev/null || basename $HOME 2>/dev/null || echo ''); ngrok tcp 22 --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/ngrok.log",
"env_parameters": [
{
Expand Down
13 changes: 7 additions & 6 deletions interactive/interactive.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

[
{
"id": "vscode",
"interactive_type": "vscode",
"name": "VS Code",
"description": "Remote VS Code development environment via tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; sudo apt update && sudo apt install -y gnupg software-properties-common apt-transport-https wget && wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | sudo tee /etc/apt/sources.list.d/vscode.list && sudo apt update && sudo apt install -y code;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; $SUDO apt-get update && $SUDO apt-get install -y gnupg software-properties-common apt-transport-https wget && wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && $SUDO install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ && echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" | $SUDO tee /etc/apt/sources.list.d/vscode.list && $SUDO apt-get update && $SUDO apt-get install -y code;",
"command": "code tunnel --accept-server-license-terms --disable-telemetry",
"env_parameters": [],
"icon": "https://lab.cloud/img/icons/vscode.png"
Expand All @@ -14,7 +15,7 @@
"interactive_type": "jupyter",
"name": "Jupyter Notebook",
"description": "Jupyter Lab notebook environment via ngrok tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install -y ngrok && pip install jupyter;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok && pip install jupyter;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='' --NotebookApp.password='' --notebook-dir=~ > /tmp/jupyter.log 2>&1 & sleep 3 && ngrok http 8888 --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/jupyter.log /tmp/ngrok.log",
"env_parameters": [
{
Expand All @@ -34,7 +35,7 @@
"interactive_type": "vllm",
"name": "vLLM Server",
"description": "vLLM OpenAI-compatible API server via ngrok tunnel (plus Open WebUI)",
"setup": "export DEBIAN_FRONTEND=noninteractive && curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install -y ngrok curl python3-pip && curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH=\"$HOME/.cargo/bin:$PATH\" && uv venv ~/vllm-venv --seed --python 3.11 && . ~/vllm-venv/bin/activate && uv pip install \"vllm>=0.11.0\" \"transformers>=4.57.1\" qwen-vl-utils==0.0.14 open-webui",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive && curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list && $SUDO apt-get update && $SUDO apt-get install -y ngrok curl python3-pip && if ! command -v uv >/dev/null 2>&1; then curl -LsSf https://astral.sh/uv/install.sh | sh; fi && export PATH=\"$HOME/.local/bin:$HOME/.cargo/bin:$PATH\" && uv venv ~/vllm-venv --seed --python 3.11 && . ~/vllm-venv/bin/activate && uv pip install \"vllm>=0.11.0\" \"transformers>=4.57.1\" qwen-vl-utils==0.0.14 open-webui",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; ~/vllm-venv/bin/python -u -m vllm.entrypoints.openai.api_server --model $MODEL_NAME --tensor-parallel-size $TP_SIZE --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9 > /tmp/vllm.log 2>&1 & sleep 10 && OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1 OPENAI_API_KEY=dummy ~/vllm-venv/bin/open-webui serve --host 0.0.0.0 --port 8080 > /tmp/openwebui.log 2>&1 & sleep 5 && printf '%s\n' 'version: 2' 'authtoken: '\"$NGROK_AUTH_TOKEN\" 'tunnels:' ' vllm:' ' proto: http' ' addr: 8000' ' openwebui:' ' proto: http' ' addr: 8080' > ~/ngrok-vllm.yml && ngrok start --all --config ~/ngrok-vllm.yml --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/vllm.log /tmp/openwebui.log /tmp/ngrok.log",
"env_parameters": [
{
Expand Down Expand Up @@ -79,7 +80,7 @@
"interactive_type": "ollama",
"name": "Ollama Server",
"description": "Ollama model server via ngrok tunnel (plus Open WebUI)",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install -y ngrok curl python3-pip && curl -LsSf https://astral.sh/uv/install.sh | sh && export PATH=\"$HOME/.cargo/bin:$PATH\" && uv venv ~/ollama-venv --seed --python 3.11 && . ~/ollama-venv/bin/activate && uv pip install open-webui && curl -fsSL https://ollama.com/install.sh | sh && sudo apt update && sudo apt install -y pciutils lshw;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok curl python3-pip && if ! command -v uv >/dev/null 2>&1; then curl -LsSf https://astral.sh/uv/install.sh | sh; fi && export PATH=\"$HOME/.local/bin:$HOME/.cargo/bin:$PATH\" && uv venv ~/ollama-venv --seed --python 3.11 && . ~/ollama-venv/bin/activate && uv pip install open-webui && curl -fsSL https://ollama.com/install.sh | sh && $SUDO apt-get update && $SUDO apt-get install -y pciutils lshw;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; export OLLAMA_HOST=0.0.0.0:11434 && ollama serve > /tmp/ollama.log 2>&1 & sleep 3 && ollama pull $MODEL_NAME > /tmp/ollama-pull.log 2>&1 & sleep 5 && OLLAMA_BASE_URL=http://127.0.0.1:11434 ~/ollama-venv/bin/open-webui serve --host 0.0.0.0 --port 8080 > /tmp/openwebui.log 2>&1 & sleep 5 && printf '%s\n' 'version: 2' 'authtoken: '\"$NGROK_AUTH_TOKEN\" 'tunnels:' ' ollama:' ' proto: http' ' addr: 11434' ' openwebui:' ' proto: http' ' addr: 8080' > ~/ngrok-ollama.yml && ngrok start --all --config ~/ngrok-ollama.yml --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/ollama.log /tmp/ollama-pull.log /tmp/openwebui.log /tmp/ngrok.log",
"env_parameters": [
{
Expand Down Expand Up @@ -107,7 +108,7 @@
"interactive_type": "ssh",
"name": "SSH",
"description": "SSH access via ngrok TCP tunnel",
"setup": "export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | sudo tee /etc/apt/sources.list.d/ngrok.list ; sudo apt update ; sudo apt install ngrok;",
"setup": "SUDO=\"\"; if [ \"$(id -u)\" -ne 0 ]; then SUDO=\"sudo\"; fi; export DEBIAN_FRONTEND=noninteractive; curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | $SUDO tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null ; echo \"deb https://ngrok-agent.s3.amazonaws.com bookworm main\" | $SUDO tee /etc/apt/sources.list.d/ngrok.list ; $SUDO apt-get update ; $SUDO apt-get install -y ngrok;",
"command": "ngrok config add-authtoken $NGROK_AUTH_TOKEN; echo USER_ID=$(whoami 2>/dev/null || basename $HOME 2>/dev/null || echo ''); ngrok tcp 22 --log=stdout 2>&1 | tee /tmp/ngrok.log; tail -f /tmp/ngrok.log",
"env_parameters": [
{
Expand All @@ -122,4 +123,4 @@
],
"icon": "https://lab.cloud/img/icons/ssh.png"
}
]
]