Compare commits
12 Commits
4ff4e74b95
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| bca289f4c8 | |||
| a2ed0f6c36 | |||
| 6e68910409 | |||
| 251b07a3b0 | |||
| 2ff550f024 | |||
| e65d1c6b7d | |||
| 37f970ef0c | |||
| 25c8297c72 | |||
| 505561b909 | |||
| f2ea2d2956 | |||
| 69923a05ee | |||
| ae067f92a1 |
5
cmd/cmd.txt
Normal file
5
cmd/cmd.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
docker build -t hubzilla:debian12 .
|
||||
docker tag hubzilla:debian12 git.piaf.im/sylvain/hubzilla:latest
|
||||
docker push git.piaf.im/sylvain/hubzilla:latest
|
||||
|
||||
docker pull git.piaf.im/sylvain/hubzilla:latest
|
||||
86
dockerfile
86
dockerfile
@@ -2,60 +2,52 @@ 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
|
||||
# Installation des dépendances nécessaires
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apache2 \
|
||||
mariadb-client \
|
||||
php \
|
||||
php-cli \
|
||||
php-mysql \
|
||||
php-curl \
|
||||
php-gd \
|
||||
php-json \
|
||||
php-xml \
|
||||
php-zip \
|
||||
php-mbstring \
|
||||
php-bcmath \
|
||||
php-gmp \
|
||||
php-intl \
|
||||
git \
|
||||
curl \
|
||||
unzip \
|
||||
nano \
|
||||
cron \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 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
|
||||
# Configuration du répertoire de travail
|
||||
WORKDIR /var/www/html
|
||||
|
||||
# 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
|
||||
RUN a2dissite 000-default default-ssl
|
||||
RUN a2ensite $DOMAIN.conf
|
||||
RUN a2enmod ssl rewrite
|
||||
|
||||
# Installer Hubzilla
|
||||
# Clonage du dépôt Hubzilla
|
||||
RUN rm -r /var/www/html/
|
||||
RUN git clone https://framagit.org/hubzilla/core.git /var/www/html/
|
||||
RUN cd /var/www/html/ && util/add_addon_repo https://framagit.org/hubzilla/addons.git official
|
||||
RUN mkdir -p "/var/www/html/store/[data]/smarty3" && \
|
||||
chown -R www-data:www-data /var/www/html/
|
||||
RUN git clone https://framagit.org/hubzilla/core.git . && \
|
||||
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
|
||||
# Activation des modules Apache nécessaires
|
||||
RUN a2enmod rewrite ssl
|
||||
|
||||
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
|
||||
# Configuration de PHP
|
||||
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
|
||||
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
|
||||
# Configuration du site Apache
|
||||
COPY src/hubzilla.conf /etc/apache2/sites-available/hubzilla.conf
|
||||
RUN a2dissite 000-default.conf && a2ensite hubzilla.conf
|
||||
|
||||
# Cron
|
||||
RUN echo "*/15 * * * * cd /var/www/html; /usr/bin/php Zotlabs/Daemon/Master.php Cron" | crontab -u www-data -
|
||||
|
||||
# Script de démarrage
|
||||
# Copie du script de démarrage
|
||||
COPY src/start.sh /start.sh
|
||||
RUN chmod +x /start.sh
|
||||
|
||||
CMD ["/bin/bash", "/start.sh"]
|
||||
55
hubzilla.yml
Normal file
55
hubzilla.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mariadb:10.6
|
||||
environment:
|
||||
MYSQL_DATABASE: hubzilla
|
||||
MYSQL_USER: hubzilla
|
||||
MYSQL_PASSWORD: hubzilla_pass
|
||||
MYSQL_ROOT_PASSWORD: root_pass
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
- hubzilla_net
|
||||
deploy:
|
||||
placement:
|
||||
constraints: [node.hostname == ds1]
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
|
||||
hubzilla:
|
||||
image: hubzilla:debian12 # buildé et pushé manuellement avant
|
||||
ports:
|
||||
- target: 80
|
||||
published: 8380
|
||||
protocol: tcp
|
||||
mode: host
|
||||
environment:
|
||||
DOMAIN: hub.alto.im
|
||||
ADMIN_EMAIL: admin@hub.alto.im
|
||||
SMTP_EMAIL: hub@admin.alto.im
|
||||
SMTP_SERVER: smtp.example.com
|
||||
SMTP_PORT: 587
|
||||
SMTP_USER: hub@admin.alto.im
|
||||
SMTP_PASS: yourpass
|
||||
depends_on:
|
||||
- db
|
||||
volumes:
|
||||
- hubzilla_data:/var/www/html # contient site et config
|
||||
networks:
|
||||
- hubzilla_net
|
||||
deploy:
|
||||
placement:
|
||||
constraints: [node.hostname == ds1]
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
hubzilla_data:
|
||||
|
||||
networks:
|
||||
hubzilla_net:
|
||||
driver: overlay
|
||||
attachable: true
|
||||
@@ -6,7 +6,8 @@ define('Z_PATH', dirname(__FILE__));
|
||||
define('Z_CONFIG', dirname(__FILE__));
|
||||
define('Z_DATA', 'store');
|
||||
|
||||
$db_host = 'db'; // à ajuster si besoin
|
||||
// Base de données
|
||||
$db_host = 'db';
|
||||
$db_port = 3306;
|
||||
$db_user = 'hubzilla';
|
||||
$db_pass = 'hubzilla_pass';
|
||||
@@ -15,7 +16,6 @@ $db_data = 'hubzilla';
|
||||
$default_timezone = 'Europe/Paris';
|
||||
|
||||
$hostname = '{{DOMAIN}}';
|
||||
$directory = '';
|
||||
$site_location = 'https://{{DOMAIN}}/';
|
||||
$admin_email = '{{ADMIN_EMAIL}}';
|
||||
$site_id = '{{LOCATION_HASH}}';
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName {{DOMAIN}}
|
||||
Redirect permanent / https://{{DOMAIN}}/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName {{DOMAIN}}
|
||||
|
||||
ServerName yourdomain.com
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
<Directory /var/www/html>
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/{{DOMAIN}}.crt
|
||||
SSLCertificateKeyFile /etc/ssl/private/{{DOMAIN}}.key
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
</VirtualHost>
|
||||
12
src/hubzilla.conf
Normal file
12
src/hubzilla.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName yourdomain.com
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
<Directory /var/www/html>
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
</VirtualHost>
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "[INFO] Lancement du service cron..."
|
||||
service cron start
|
||||
# Démarrage du service Apache
|
||||
service apache2 start
|
||||
|
||||
echo "[INFO] Lancement du serveur Apache..."
|
||||
apachectl -D FOREGROUND
|
||||
# Attente indéfinie pour maintenir le conteneur en cours d'exécution
|
||||
tail -f /dev/null
|
||||
Reference in New Issue
Block a user