FROM node:lts

# Install PHP, Python, DB clients, and general utilities
RUN apt-get update && apt-get install -y --no-install-recommends \
    php php-cli php-common php-mbstring php-xml php-curl php-zip \
    php-pgsql php-mysql php-sqlite3 php-redis \
    python3 python3-pip python3-venv \
    wget apt-transport-https \
    git make jq unzip zip \
    openssh-client \
    default-mysql-client postgresql-client sqlite3 \
    && rm -rf /var/lib/apt/lists/*

# Install Docker CLI
RUN curl -fsSL https://download.docker.com/linux/debian/gpg \
    | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
    | tee /etc/apt/sources.list.d/docker.list > /dev/null \
    && apt-get update && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin \
    && rm -rf /var/lib/apt/lists/*

# Install GitHub CLI
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
    | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
    | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
    && apt-get update && apt-get install -y --no-install-recommends gh \
    && rm -rf /var/lib/apt/lists/*

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Install Python tools
RUN pip install --break-system-packages poetry uv

# Install Spec Kit (specify CLI)
RUN uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

# Install .NET 10
RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
    && dpkg -i packages-microsoft-prod.deb \
    && rm packages-microsoft-prod.deb \
    && apt-get update && apt-get install -y --no-install-recommends dotnet-sdk-10.0 \
    && rm -rf /var/lib/apt/lists/*

# Install PowerShell
RUN apt-get update && apt-get install -y --no-install-recommends powershell \
    && rm -rf /var/lib/apt/lists/*

# Install .NET global tools
RUN dotnet tool install --global dotnet-ef \
    && dotnet tool install --global dotnet-aspnet-codegenerator
ENV PATH="$PATH:/root/.dotnet/tools:/root/.local/bin"

RUN git config --global user.name "Daniel Covington"
RUN git config --global user.email "danielcovington@comcast.net"


# Install Node.js global tools
RUN npm install -g @bonsai-ai/cli
RUN npm install -g @abacus-ai/cli
RUN npm install -g @openai/codex
RUN npm install -g @github/copilot

# Install ttyd (web terminal)
RUN ARCH=$(dpkg --print-architecture) && \
    case "$ARCH" in \
      amd64) TTYD_ARCH="x86_64" ;; \
      arm64) TTYD_ARCH="aarch64" ;; \
      *) echo "Unsupported arch: $ARCH" && exit 1 ;; \
    esac && \
    wget -O /usr/local/bin/ttyd \
      "https://github.com/tsl0922/ttyd/releases/latest/download/ttyd.${TTYD_ARCH}" && \
    chmod +x /usr/local/bin/ttyd

# Install BMAD-METHOD CLI
RUN npm install -g bmad-method

WORKDIR /workspace
EXPOSE 7681
CMD ["ttyd", "-W", "-p", "7681", "bash"]
