File size: 1,925 Bytes
38382bc
363df51
 
 
 
 
38382bc
 
 
 
363df51
38382bc
 
 
 
363df51
 
a830ee7
 
38382bc
a830ee7
38382bc
 
 
a830ee7
38382bc
a830ee7
 
38382bc
 
 
 
 
 
a830ee7
363df51
38382bc
363df51
 
38382bc
 
 
363df51
 
38382bc
363df51
38382bc
363df51
 
 
 
7819e3a
363df51
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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"]