FROM debian:12

# Install main dependencies and tools
RUN apt update && apt install -y --force-yes \
    sudo \
    tar \
    git \
    ccache \
    libsystemd-dev \
    autoconf \
    automake \
    libtool \
    libltdl-dev \
    pkg-config \
    dpkg-dev \
    nginx=1.22.1-9 \
    php-fpm=2:8.2+93 \
    build-essential \
    supervisor=4.2.5-1 \
    inotify-tools=3.22.6.0-4

# Create the necessary directories
RUN mkdir -p /var/www/tr143/download \
    /var/www/tr143/upload \
    /var/run/akcom-udpecho

#Ram storage
RUN mkdir -p /run/nginx_temp

# Copy the required files
COPY tr143 /etc/nginx/sites-available/tr143
COPY upload.php /var/www/tr143/upload
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# Download and build akcom-udpecho
COPY akcom-udpecho.tar.gz /tmp
RUN tar -xzvf /tmp/akcom-udpecho.tar.gz -C /var
RUN git config --global --add safe.directory /var/akcom-udpecho
WORKDIR /var/akcom-udpecho

RUN cd build \
    && ../autogen.sh \
    && ../configure \
    && make \
    && make install

# Set up nginx and php-fpm
RUN ln -s /etc/nginx/sites-available/tr143 /etc/nginx/sites-enabled/

# Adjust PHP configuration
RUN sed -i 's/upload_max_filesize = .*/upload_max_filesize = 1000M/' /etc/php/8.2/fpm/php.ini && \
    sed -i 's/post_max_size = .*/post_max_size = 1000M/' /etc/php/8.2/fpm/php.ini

#Create download files
RUN dd if=/dev/zero of=/var/www/tr143/download/speed_test_100M bs=1M count=100
RUN dd if=/dev/zero of=/var/www/tr143/download/speed_test_200M bs=1M count=200
RUN dd if=/dev/zero of=/var/www/tr143/download/speed_test_500M bs=1M count=500
RUN dd if=/dev/zero of=/var/www/tr143/download/speed_test_1G bs=1M count=1000
RUN dd if=/dev/zero of=/var/www/tr143/download/speed_test_2G bs=1M count=2000

#Permissions to the web server
RUN chown -R www-data:www-data /var/www/tr143
RUN chmod 644 /var/www/tr143/upload/upload.php

#FTP Server
RUN apt -y install vsftpd
COPY vsftpd.conf /etc/vsftpd.conf
RUN useradd -m -s /bin/bash ftptr143
RUN echo "ftptr143:F3t4u3r@v3nk0" | chpasswd
RUN echo "ftptr143" > /etc/vsftpd.chroot_list

#Handler for uploaded files
COPY upload_handler.sh /etc/upload_handler.sh
RUN chmod +x /etc/upload_handler.sh

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]