ele / Dockerfile
OpenClaw
Switch HF Space build to Ubuntu-based upstream flow
38382bc
FROM node:24
ARG BUILD_DATE
LABEL build-date=$BUILD_DATE
LABEL maintainer="OpenClaw"
LABEL description="HuggingFace Space for electerm-web with dataset sync"
RUN apt-get update && apt-get install -y \
git python-is-python3 python3-venv python3-pip \
make build-essential g++ curl ca-certificates tar \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd -r electerm && useradd -r -g electerm -d /home/electerm -s /bin/bash electerm \
&& mkdir -p /home/electerm /app /home/electerm/data \
&& chown -R electerm:electerm /home/electerm /app \
&& chmod 755 /home/electerm
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
RUN pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir huggingface_hub
WORKDIR /app
USER electerm:electerm
RUN git clone --depth 1 https://github.com/electerm/electerm-web.git
WORKDIR /app/electerm-web
RUN npm config set legacy-peer-deps true
RUN npm install
RUN npm run build
RUN cp .sample.env .env \
&& sed -i 's/HOST=.*/HOST=0.0.0.0/' .env \
&& sed -i 's/# ENABLE_AUTH=.*/ENABLE_AUTH=1/' .env \
&& sed -i 's/SERVER_USER=.*/SERVER_USER=admin/' .env \
&& sed -i 's/SERVER_PASS=.*/SERVER_PASS=xm552297/' .env \
&& sed -i 's|# DB_PATH=.*|DB_PATH=/home/electerm/data|' .env
RUN npm cache clean --force
USER root
COPY sync_data.sh /sync_data.sh
RUN chmod +x /sync_data.sh && chown electerm:electerm /sync_data.sh
RUN mkdir -p /home/electerm/data/electerm_session_logs \
&& chown -R electerm:electerm /app/electerm-web /home/electerm/data \
&& chmod -R 777 /home/electerm/data
WORKDIR /app/electerm-web
USER electerm:electerm
ENV NODE_ENV=production
ENV HOME=/home/electerm/data
ENV HOST=0.0.0.0
ENV PORT=5577
ENV ENABLE_AUTH=1
ENV DB_PATH=/home/electerm/data
ENV SERVER_SECRET=xm552297-electerm-secret
ENV SERVER_USER=admin
ENV SERVER_PASS=xm552297
ENV TOKEN_EXPIRED_TIME=120y
ENV SYNC_INTERVAL=7200
EXPOSE 5577
CMD ["/sync_data.sh"]