# theDAW Docker Image
# Linux-based, kompatibel mit Docker Desktop auf Windows (WSL2 backend)
#
# Usage: docker build -t thedaw .
# docker run -d --name thedaw -p 8600:8600 -p 5173:5173 thedaw

FROM ubuntu:24.04

# Environment
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1

# Install dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl \
    git \
    ffmpeg \
    python3 \
    python3-pip \
    python3-venv \
    nodejs \
    npm \
    build-essential \
    libgl1 \
    libglib2.0-0 \
    && rm -rf /var/lib/apt/lists/*

# Install uv (Python package manager)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:$PATH"

# Clone theDAW
WORKDIR /opt
RUN git clone --recurse-submodules https://github.com/gantasmo/theDAW.git theDAW

WORKDIR /opt/theDAW

# Python env
RUN uv sync --group dev

# Frontend
WORKDIR /opt/theDAW/frontend
RUN npm install

# Backend port: 8600
# Frontend port: 5173

EXPOSE 8600 5173

# Start script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
