# Base image using Debian for arm64 architecture (optimized for Apple Silicon)
FROM debian:bullseye-slim AS lumier-base

# Set environment variables for Lume API server configuration
ENV LUME_API_HOST="host.docker.internal"

# Default VM configuration (can be overridden at runtime)
ENV VERSION="ghcr.io/trycua/macos-sequoia-vanilla:latest"
ENV RAM_SIZE="8192"
ENV CPU_CORES="4"
ENV DISK_SIZE="100"
ENV DISPLAY="1024x768"
ENV VM_NAME="lumier"
ENV HOST_SHARED_PATH=""
ENV LUMIER_DEBUG="0"

# Install necessary tools and noVNC dependencies
RUN apt-get update && \
    apt-get install -y \
    netcat-traditional \
    curl \
    sshpass \
    wget \
    unzip \
    git \
    python3 \
    python3-pip \
    python3-numpy \
    procps && \
    rm -rf /var/lib/apt/lists/*

# Download and install noVNC without caching
RUN wget https://github.com/trycua/noVNC/archive/refs/heads/master.zip -O master1.zip && \
    unzip master1.zip && \
    mv noVNC-master /opt/noVNC && \
    rm master1.zip

# Set environment variables for noVNC
ENV NOVNC_PATH="/opt/noVNC"

# Create necessary directories
RUN mkdir -p /run/bin /run/lib /run/config /run/hooks /run/lifecycle

# Copy scripts to the container
COPY src/config/constants.sh /run/config/
COPY src/bin/entry.sh /run/bin/entry.sh

# Copy library files if they exist
COPY src/lib/ /run/lib/
COPY src/hooks/ /run/hooks/

# Copy on-logon script to lifecycle directory
COPY src/hooks/on-logon.sh /run/lifecycle/

# Make scripts executable
RUN chmod +x \
    /run/bin/* \
    /run/hooks/* \
    /run/lifecycle/* 2>/dev/null || true

# Expose ports for noVNC and Lume API
EXPOSE 8006

# VOLUME setup
VOLUME [ "/storage" ]
VOLUME [ "/data" ]

# Default entrypoint
ENTRYPOINT ["/run/bin/entry.sh"]