# Usar una imagen base oficial de Debian
FROM debian:13
FROM php:8.2.7-apache

# Evitar interacciones durante la instalación de paquetes
ARG DEBIAN_FRONTEND=noninteractive

# Actualizar paquetes e instalar Apache
#RUN sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list && \
#    sed -i 's|http://security.debian.org/debian-security|http://archive.debian.org/debian-security|g' /etc/apt/sources.list && \
RUN apt-get update && apt-get install -y \
    sudo \
    proftpd-basic \
    openssl \
    apache2 \
#    python \
#    certbot \
#    python3-certbot-apache \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf

# Copiar archivos de configuración si es necesario
COPY config/php.ini /usr/local/etc/php/

# Copiar configuraciones
COPY proftpd.conf /etc/proftpd/proftpd.conf
COPY ftpusers /etc/proftpd/ftpusers

#Correccion de los permisos
RUN chown root:root /etc/proftpd/proftpd.conf /etc/proftpd/ftpusers && \
    chmod 644 /etc/proftpd/proftpd.conf && \
    chmod 600 /etc/proftpd/ftpusers

# Instalar las extenciones
# para conectarse a MySQL, agregamos  mysqli
RUN docker-php-ext-install mysqli

# Instalar pdo si se ocupa PHP PDO
RUN docker-php-ext-install pdo 
RUN docker-php-ext-install pdo_mysql

# ejecutamos el comando docker-php-ext-enable para activar mysqli
RUN docker-php-ext-enable mysqli
RUN docker-php-ext-enable pdo 
RUN docker-php-ext-enable pdo_mysql

# Habilitar los módulos necesarios
RUN a2enmod userdir
RUN a2enmod rewrite
RUN a2enmod ssl

# Crear un usuario de ejemplo (user1)
RUN useradd -m docker113
RUN useradd -m ejemplo113
RUN useradd -m wordpress113

# Crear el directorio public_html para el usuario
RUN mkdir -p /home/docker113/public_html
RUN mkdir -p /home/ejemplo113/public_html
RUN mkdir -p /home/wordpress113/public_html

# Cambiar permisos para que Apache pueda leer los archivos
RUN chown -R docker113:docker113 /home/docker113/public_html && chmod -R 777 /home/docker113/public_html
RUN chown -R ejemplo113:ejemplo113 /home/ejemplo113/public_html && chmod -R 777 /home/ejemplo113/public_html
RUN chown -R wordpress113:wordpress113 /home/wordpress113/public_html && chmod -R 777 /home/wordpress113/public_html

# Crear directorios para los logs del VirtualHost
RUN mkdir -p /var/log/apache2/docker113
RUN mkdir -p /var/log/apache2/ejemplo113
RUN mkdir -p /var/log/apache2/wordpress113

# Configurar un VirtualHost para docker113.fimaz.net
COPY docker113.fimaz.net.conf /etc/apache2/sites-available/docker113.fimaz.net.conf
COPY ejemplo113.fimaz.net.conf /etc/apache2/sites-available/ejemplo113.fimaz.net.conf
COPY wordpress113.fimaz.net.conf /etc/apache2/sites-available/wordpress113.fimaz.net.conf


# Habilitar el sitio de fimaz.net
RUN a2ensite docker113.fimaz.net.conf
RUN a2ensite ejemplo113.fimaz.net.conf
RUN a2ensite wordpress113.fimaz.net.conf

# Deshabilitar el sitio por defecto de Apache
RUN a2dissite 000-default.conf

# Exponer el puerto 80 y 443 para el servidor web
EXPOSE 21 80 443 30000-30009

# Comando para iniciar Apache en primer plano
CMD ["/bin/bash", "-c", "apachectl -D FOREGROUND & proftpd -n -c /etc/proftpd/proftpd.conf"]