FROM nvcr.io/nvidia/pytorch:26.01-py3
ENV DEBIAN_FRONTEND=noninteractive

# 1. Système + SSH + Dépendances de rendu (zstd, libgl, libglib)
RUN apt-get update && apt-get install -y \
    openssh-server ffmpeg libsndfile1 sox git curl zstd \
    libgl1-mesa-glx libglib2.0-0 \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# Config SSH pour root (nécessaire pour Vast.ai)
RUN mkdir /var/run/sshd && \
    echo 'root:root' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# 2. Python & Dépendances
RUN pip install --no-cache-dir \
    open-webui gradio scipy soundfile julius omegaconf hydra-core \
    flashy torchmetrics encodec xformers einops spacy==3.7.6 numpy==1.26.4

RUN pip install --no-cache-dir --no-deps git+https://github.com/facebookresearch/audiocraft.git

# 3. Ollama & Comfy
RUN curl -fsSL https://ollama.ai/install.sh | sh
WORKDIR /root
RUN git clone https://github.com/comfyanonymous/ComfyUI.git && \
    cd ComfyUI && pip install --no-cache-dir -r requirements.txt

# 4. Copie du code
RUN mkdir -p /root/audiocraft-api
COPY server.py /root/audiocraft-api/server.py

# 5. Script de démarrage avec redirection des logs et sleep infinity
RUN echo '#!/bin/bash\n\
service ssh start\n\
ollama serve > /root/ollama.log 2>&1 & \n\
open-webui serve --port 3000 > /root/webui.log 2>&1 & \n\
python3 /root/ComfyUI/main.py --listen 0.0.0.0 --port 8188 > /root/comfy.log 2>&1 & \n\
python3 /root/audiocraft-api/server.py > /root/audio.log 2>&1 & \n\
echo "Studio Ready" \n\
sleep infinity' > /start.sh && chmod +x /start.sh

EXPOSE 22 3000 7860 8188 11434
ENTRYPOINT ["/bin/bash", "/start.sh"]