FROM debian:12 ENV DEBIAN_FRONTEND=noninteractive ARG DOMAIN ARG SMTP_EMAIL ARG SMTP_SERVER ARG SMTP_PORT ARG SMTP_USER ARG SMTP_PASS ARG ADMIN_EMAIL # Installer les paquets nécessaires RUN apt-get update && apt-get install -y \ apache2 \ php php-cli php-mysql php-curl php-fpm php-gd php-json php-xml php-zip php-mbstring php-bcmath php-gmp php-intl \ software-properties-common git msmtp mariadb-client cron curl unzip nano # Nettoyer RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Copier et activer la config Apache (HTTP uniquement) COPY src/container_apache.conf /etc/apache2/sites-available/${DOMAIN}.conf RUN sed -i "s/{{DOMAIN}}/${DOMAIN}/g" /etc/apache2/sites-available/${DOMAIN}.conf && \ a2dissite 000-default.conf && \ a2ensite ${DOMAIN}.conf && \ a2enmod rewrite # Installer Hubzilla RUN git clone https://framagit.org/hubzilla/core.git /tmp/hubzilla && \ mv /tmp/hubzilla /var/www/html && \ cd /var/www/html && \ util/add_addon_repo https://framagit.org/hubzilla/addons.git official && \ mkdir -p store/[data]/smarty3 && \ chown -R www-data:www-data /var/www/html # Configurer msmtp COPY src/msmtprc /etc/msmtprc RUN sed -i "s/{{SMTP_EMAIL}}/${SMTP_EMAIL}/g" /etc/msmtprc && \ sed -i "s/{{SMTP_SERVER}}/${SMTP_SERVER}/g" /etc/msmtprc && \ sed -i "s/{{SMTP_PORT}}/${SMTP_PORT}/g" /etc/msmtprc && \ sed -i "s/{{SMTP_USER}}/${SMTP_USER}/g" /etc/msmtprc && \ sed -i "s/{{SMTP_PASS}}/${SMTP_PASS}/g" /etc/msmtprc && \ chmod 600 /etc/msmtprc && \ chown www-data:www-data /etc/msmtprc # Activer msmtp dans PHP RUN echo "sendmail_path = /usr/bin/msmtp -t" >> /etc/php/8.2/apache2/php.ini # Config PHP (upload size + register_argc_argv) RUN echo "upload_max_filesize = 20M" >> /etc/php/8.2/apache2/php.ini && \ echo "post_max_size = 20M" >> /etc/php/8.2/apache2/php.ini && \ echo "register_argc_argv = On" >> /etc/php/8.2/apache2/php.ini # Fichier .htconfig.php (préconfiguré) COPY src/.htconfig.php /tmp/.htconfig.php RUN LOCATION_HASH=$(cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 64 | head -n 1) && \ sed "s/{{DOMAIN}}/${DOMAIN}/g; s/{{LOCATION_HASH}}/${LOCATION_HASH}/g; s/{{ADMIN_EMAIL}}/${ADMIN_EMAIL}/g" /tmp/.htconfig.php > /var/www/html/.htconfig.php && \ chown www-data:www-data /var/www/html/.htconfig.php # Cron RUN echo "*/15 * * * * cd /var/www/html; /usr/bin/php Zotlabs/Daemon/Master.php Cron" | crontab -u www-data - # Script de démarrage COPY src/start.sh /start.sh RUN chmod +x /start.sh CMD ["/bin/bash", "/start.sh"]