Skip to content

Commit ef603b3

Browse files
committed
install nvm/node/npm within philo install dir
1 parent 9d5b3b9 commit ef603b3

3 files changed

Lines changed: 32 additions & 14 deletions

File tree

Dockerfile

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,7 @@ RUN apt-get update && apt-get upgrade -y && \
1010
apt-get install -y --no-install-recommends libxml2-dev libxslt-dev zlib1g-dev apache2 libgdbm-dev liblz4-tool brotli ripgrep gcc make wget sudo && \
1111
apt-get clean && rm -rf /var/lib/apt
1212

13-
# Install nvm and Node.js
14-
ENV NVM_DIR=/root/.nvm
15-
ENV NODE_VERSION=22.14.0
16-
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash \
17-
&& . $NVM_DIR/nvm.sh \
18-
&& nvm install $NODE_VERSION \
19-
&& nvm alias default $NODE_VERSION \
20-
&& nvm use default
21-
ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
22-
23-
# Install PhiloLogic
13+
# Install PhiloLogic (nvm and Node.js are installed by install.sh)
2414
COPY . /PhiloLogic5
2515
WORKDIR /PhiloLogic5
2616
RUN ./install.sh && a2enmod rewrite && a2enmod cgi && a2enmod brotli && a2enmod headers && mkdir -p /var/www/html/philologic

install.sh

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# Default Python version
44
PYTHON_VERSION="3.12"
55
INSTALL_TRANSFORMERS=false
6+
NODE_MAJOR_VERSION="22"
67

78
# Parse command line arguments
89
while getopts "p:t" opt; do
@@ -37,6 +38,32 @@ if [ -d /var/lib/philologic5 ]; then
3738
sudo rm -rf /var/lib/philologic5
3839
fi
3940

41+
# Install nvm and Node.js to a shared location
42+
echo -e "\n## INSTALLING NVM AND NODE.JS ##"
43+
export NVM_DIR=/var/lib/philologic5/nvm
44+
sudo mkdir -p "$NVM_DIR"
45+
sudo chown -R $USER:$USER "$NVM_DIR"
46+
47+
# Install nvm
48+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
49+
50+
# Source nvm and install Node.js (latest in the major version series)
51+
source "$NVM_DIR/nvm.sh"
52+
nvm install $NODE_MAJOR_VERSION
53+
nvm alias default $NODE_MAJOR_VERSION
54+
nvm use default
55+
56+
# Verify node installation
57+
echo "Node.js version: $(node --version)"
58+
echo "npm version: $(npm --version)"
59+
60+
# Create symlink to npm in a fixed location
61+
sudo mkdir -p /var/lib/philologic5/bin
62+
sudo ln -sf "$(which npm)" /var/lib/philologic5/bin/npm
63+
64+
# Make nvm directory accessible to all users
65+
sudo chmod -R 755 "$NVM_DIR"
66+
4067
# Create base directory with write permissions for current user
4168
sudo mkdir -p /var/lib/philologic5
4269
sudo chown -R $USER:$USER /var/lib/philologic5
@@ -86,8 +113,8 @@ deactivate
86113
cd ..
87114

88115
# Install philoload5 script
89-
# Use absolute path to venv's Python to avoid PATH issues
90-
echo -e '#!/bin/bash\n/var/lib/philologic5/philologic_env/bin/python3 -m philologic.loadtime "$@"' > philoload5 && sudo mv philoload5 /usr/local/bin/
116+
echo -e '#!/bin/bash\n/var/lib/philologic5/philologic_env/bin/python3 -m philologic.loadtime "$@"' > philoload5
117+
sudo mv philoload5 /usr/local/bin/
91118
sudo chmod 775 /usr/local/bin/philoload5
92119
sudo mkdir -p /etc/philologic/
93120
sudo mkdir -p /var/lib/philologic5/web_app/

python/philologic/loadtime/Loader.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,8 +1181,9 @@ def finish(self):
11811181
os.chdir(self.web_app_dir)
11821182
with open(os.path.join(self.web_app_dir, "appConfig.json"), "w") as app_config:
11831183
dump({"dbUrl": ""}, app_config)
1184+
npm = "/var/lib/philologic5/bin/npm"
11841185
os.system(
1185-
f"cd {self.web_app_dir}; npm install > {self.web_app_dir}/web_app_build.log 2>&1 && npm run build >> {self.web_app_dir}/web_app_build.log 2>&1"
1186+
f"cd {self.web_app_dir}; {npm} install > {self.web_app_dir}/web_app_build.log 2>&1 && {npm} run build >> {self.web_app_dir}/web_app_build.log 2>&1"
11861187
)
11871188
print("done.")
11881189

0 commit comments

Comments
 (0)