Skip to content

Commit 48d0ab4

Browse files
tjbckdennypradipta
andcommitted
enh: OPEN_TERMINAL_NPM_PACKAGES
Co-Authored-By: Denny Pradipta <dennypradiptaprojects@gmail.com>
1 parent 1bc3aab commit 48d0ab4

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ docker run -d -p 8000:8000 -e OPEN_TERMINAL_API_KEY=secret ghcr.io/open-webui/op
4343
```
4444

4545
> [!NOTE]
46-
> Slim and Alpine don't support `OPEN_TERMINAL_PACKAGES` / `OPEN_TERMINAL_PIP_PACKAGES`. To add packages, extend [Dockerfile.slim](Dockerfile.slim) or [Dockerfile.alpine](Dockerfile.alpine).
46+
> Slim and Alpine don't support `OPEN_TERMINAL_PACKAGES` / `OPEN_TERMINAL_PIP_PACKAGES` / `OPEN_TERMINAL_NPM_PACKAGES`. To add packages, extend [Dockerfile.slim](Dockerfile.slim) or [Dockerfile.alpine](Dockerfile.alpine).
4747
4848
#### Updating
4949

@@ -78,13 +78,15 @@ The easiest way to add extra packages is with environment variables — no fork
7878
docker run -d --name open-terminal -p 8000:8000 \
7979
-e OPEN_TERMINAL_PACKAGES="cowsay figlet" \
8080
-e OPEN_TERMINAL_PIP_PACKAGES="httpx polars" \
81+
-e OPEN_TERMINAL_NPM_PACKAGES="typescript tsx" \
8182
ghcr.io/open-webui/open-terminal
8283
```
8384

8485
| Variable | Description |
8586
|---|---|
8687
| `OPEN_TERMINAL_PACKAGES` | Space-separated list of **apt** packages to install at startup |
8788
| `OPEN_TERMINAL_PIP_PACKAGES` | Space-separated list of **pip** packages to install at startup |
89+
| `OPEN_TERMINAL_NPM_PACKAGES` | Space-separated list of **npm** packages to install globally at startup |
8890

8991
> [!NOTE]
9092
> Packages are installed each time the container starts, so startup will take longer with large package lists. For heavy customization, build a custom image instead.

entrypoint.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ if [ -n "${OPEN_TERMINAL_PIP_PACKAGES:-}" ]; then
7171
fi
7272
fi
7373

74+
# Auto-install npm packages
75+
if [ -n "${OPEN_TERMINAL_NPM_PACKAGES:-}" ]; then
76+
echo "Installing npm packages: $OPEN_TERMINAL_NPM_PACKAGES"
77+
if [ "${OPEN_TERMINAL_MULTI_USER:-false}" = "true" ]; then
78+
sudo npm install -g $OPEN_TERMINAL_NPM_PACKAGES
79+
else
80+
npm install -g $OPEN_TERMINAL_NPM_PACKAGES
81+
fi
82+
fi
83+
7484
# -----------------------------------------------------------------------
7585
# Network egress filtering via DNS whitelist + iptables + capability drop
7686
#

0 commit comments

Comments
 (0)