Spaces:
Sleeping
Sleeping
FROM node:20-alpine3.21 | |
ARG BUILD_DATE | |
LABEL build-date=$BUILD_DATE | |
LABEL maintainer="ZHAO Xudong <[email protected]>" | |
LABEL description="This is Docker image for electerm-web" | |
LABEL url="https://github.com/electerm/electerm-web-docker" | |
LABEL vendor="electerm" | |
LABEL version="2.60.56" | |
ENV CF_TOKEN=your_token | |
WORKDIR /app | |
RUN apk add --no-cache python3 py3-pip curl | |
COPY --from=cloudflare/cloudflared:latest /usr/local/bin/cloudflared /usr/local/bin/cloudflared | |
RUN chmod +x /usr/local/bin/cloudflared | |
RUN addgroup -S electerm && \ | |
adduser -S -G electerm -h /home/electerm -s /bin/sh electerm && \ | |
mkdir -p /home/electerm /app && \ | |
chown -R electerm:electerm /home/electerm /app && \ | |
chmod 755 /home/electerm | |
ENV VIRTUAL_ENV=/opt/venv | |
RUN python3 -m venv $VIRTUAL_ENV | |
ENV PATH="$VIRTUAL_ENV/bin:$PATH" | |
RUN pip install --no-cache-dir huggingface_hub | |
RUN apk update && apk add --no-cache \ | |
python3 \ | |
git \ | |
make \ | |
g++ \ | |
build-base && \ | |
cd /app && \ | |
git clone --depth 1 https://github.com/electerm/electerm-web.git && \ | |
cd electerm-web && \ | |
npm un @playwright/test chai playwright && \ | |
npm i ipv6 && \ | |
npm i && \ | |
npm audit fix --force && \ | |
npm run build && \ | |
cp .sample.env .env && \ | |
sed -i 's/HOST=.*/HOST=0.0.0.0/' .env && \ | |
sed -i 's/ENABLE_AUTH=.*/ENABLE_AUTH=1/' .env && \ | |
npm prune --production && \ | |
npm cache clean --force && \ | |
apk del build-base make g++ python3 git && \ | |
rm -rf /var/cache/apk/* && \ | |
mkdir -p /app/electerm-web/data/electerm_session_logs && \ | |
chown -R electerm:electerm /app/electerm-web && \ | |
chmod -R 777 /app/electerm-web/data | |
COPY sync_data.sh / | |
RUN chmod +x /sync_data.sh && \ | |
chown electerm:electerm /sync_data.sh | |
USER electerm | |
WORKDIR /app/electerm-web | |
ENV NODE_ENV=production | |
ENV HOST=0.0.0.0 | |
ENV ENABLE_AUTH=1 | |
ENV SERVER_SECRET=your-secret-key | |
ENV SERVER_PASS=your-password | |
EXPOSE 5577 | |
CMD cloudflared tunnel --no-autoupdate run --token $CF_TOKEN & \ | |
/sync_data.sh |