From f3dd4a0670a048d1bdb137238d3d4449ea41bcbe Mon Sep 17 00:00:00 2001 From: sylvain Date: Wed, 14 May 2025 16:46:59 +0000 Subject: [PATCH] Ajouter dockerfile --- dockerfile | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 dockerfile diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..b7791de --- /dev/null +++ b/dockerfile @@ -0,0 +1,73 @@ +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 \ + software-properties-common \ + git \ + openssl \ + msmtp \ + mariadb-client \ + cron \ + curl \ + unzip \ + nano + + # Nettoyer + RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + + # Générer un certificat SSL auto-signé + RUN mkdir -p /etc/ssl/private && \ + mkdir -p /etc/ssl/certs && \ + openssl req -x509 -nodes -subj "/C=FR/ST=France/L=Paris/O=organization/OU=Org/CN=${DOMAIN}" \ + -newkey rsa:4096 -keyout /etc/ssl/private/${DOMAIN}.key -out /etc/ssl/certs/${DOMAIN}.crt -days 365 + + # Copier et activer la config Apache + 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 ssl rewrite headers + + # Installer Hubzilla + WORKDIR /var/www/html + RUN git clone https://framagit.org/hubzilla/core.git . && \ + util/add_addon_repo https://framagit.org/hubzilla/addons.git official && \ + mkdir -p /var/www/html/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 + RUN chmod 600 /etc/msmtprc && chown www-data:www-data /etc/msmtprc + RUN echo "sendmail_path = /usr/bin/msmtp -t" >> /etc/php/8.2/apache2/php.ini + + # Fichier .htconfig.php + COPY src/.htconfig.php /var/www/html/.htconfig.php + RUN LOCATION_HASH=$(cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 64 | head -n 1) && \ + sed -i "s/{{DOMAIN}}/${DOMAIN}/g" /var/www/html/.htconfig.php && \ + sed -i "s/{{LOCATION_HASH}}/${LOCATION_HASH}/g" /var/www/html/.htconfig.php && \ + sed -i "s/{{ADMIN_EMAIL}}/${ADMIN_EMAIL}/g" /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"] \ No newline at end of file