# Use an official Node.js runtime as a parent image
FROM node:22-slim

# Set the working directory
WORKDIR /workspace

# Install PM2 globally
RUN npm install -g pm2

# Install git, openssh-client, openssh-server, and other necessary packages
RUN apt-get update && apt-get install -y \
    git \
    openssh-client \
    openssh-server \
    iputils-ping \
    software-properties-common \
    sudo \
    curl \
    unzip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install additional package managers
RUN npm install -g pnpm
RUN curl -fsSL https://bun.sh/install | bash

# Clone and setup linux-presets
RUN git clone https://gitea.bramkelchtermans.be/Bram/linux-presets.git && \
    cd linux-presets && \
    chmod +x setup.sh && \
    ./setup.sh --terminal-icon 󰎙 && \
    cd .. && \
    rm -rf linux-presets

# Add root to sudo group
RUN usermod -aG sudo root

# Create a directory for the SSH keys
RUN mkdir -p /root/.ssh

# Copy the entrypoint script into the container
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

# Expose ports
EXPOSE 3000 22

# Set the entrypoint
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
