FROM ubuntu:focal

# Metadata labels
LABEL maintainer="Carlos Vargas wmcarlosv@gmail.com"
LABEL version="1.0.0"
LABEL description="Panel para la gestion de cuentas plex."
LABEL icon="https://dashboard.plexcontrol.info/storage/users/October2024/GDI6ERsbhhCeS3hJPoh3.webp"
LABEL org.opencontainers.image.version="1.0.0"
LABEL org.opencontainers.image.title="Panel para la gestion de cuentas plex."
LABEL org.opencontainers.image.icon="https://dashboard.plexcontrol.info/storage/users/October2024/GDI6ERsbhhCeS3hJPoh3.webp"

RUN apt-get update -y

# Installing apache in non-interactive mode
ARG DEBIAN_FRONTEND=noninteractive

# Installing apache web server
RUN apt-get install apache2 -y

# Installing cron
RUN apt-get install cron

# Add a build argument to pass APP_URL dynamically
ARG IPADDRESS

# Add the cron job
RUN crontab -l | { cat; echo "*/5 * * * * curl -s http://${IPADDRESS}/cron"; } | crontab -

# Installing PHP v 8.2
RUN apt-get -y install software-properties-common && \
    add-apt-repository ppa:ondrej/php && \
    apt-get update && \
    apt-get -y install php8.2

# Installing vim
RUN apt install vim -y

# Install curl
RUN apt install curl -y

# Installing required PHP extensions
RUN apt-get install -y php8.2-bcmath php8.2-fpm php8.2-xml php8.2-mysql php8.2-zip php8.2-intl php8.2-ldap php8.2-gd php8.2-cli php8.2-bz2 php8.2-curl php8.2-mbstring php8.2-pgsql php8.2-opcache php8.2-soap php8.2-cgi

# Installing MySQL
RUN apt-get update -qq && apt-get install -y mysql-server

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

RUN sed -i 's#/var/www/html#/var/www/html/plex-panel/public#g' /etc/apache2/sites-available/000-default.conf

ADD plexpanel.sql ./

RUN mkdir -p /var/www/html/plex-panel

ADD ./ /var/www/html/plex-panel/

ADD apache2.conf /etc/apache2/

RUN chmod 777 -R /var/www/html/plex-panel/storage && cd /var/www/html/plex-panel && php artisan storage:link

# Replace APP_URL dynamically in the .env file
RUN sed -i "s|^APP_URL=.*|APP_URL=http://${IPADDRESS}|g" /var/www/html/plex-panel/.env

EXPOSE 80 3306

ADD start.sh ./

RUN chmod +x /start.sh

CMD ["/usr/bin/bash", "/start.sh"]