# ========================================== # OMNIGROUP - SYNAPS FULL-STACK # HumHub 1.18.2 + MariaDB | Debian Bookworm (pinned) # HF Spaces 18GB RAM | Port 7860 # ========================================== FROM php:8.2-apache-bookworm USER root ENV DEBIAN_FRONTEND=noninteractive \ PORT=7860 \ HUMHUB_VERSION=1.18.2 \ MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-omnigroup_root} \ MYSQL_USER=${MYSQL_USER:-madiba} \ MYSQL_PASSWORD=${MYSQL_PASSWORD:-omnigroup_master} \ MYSQL_DATABASE=${MYSQL_DATABASE:-synaps_db} \ APACHE_RUN_USER=www-data \ APACHE_RUN_GROUP=www-data # ── Apache : port 7860 + modules ───────────────────────────────────────────── RUN sed -i 's/Listen 80/Listen 7860/' /etc/apache2/ports.conf && \ echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ a2enmod rewrite headers expires deflate RUN cat > /etc/apache2/sites-available/000-default.conf << 'APACHECONF' DocumentRoot /var/www/html Options FollowSymLinks AllowOverride All Require all granted Deny from all APACHECONF # ── Dépendances système ─────────────────────────────────────────────────────── RUN apt-get update && apt-get install -y --no-install-recommends \ mariadb-server mariadb-client cron \ libpng-dev libjpeg-dev libfreetype6-dev libicu-dev libxml2-dev \ libzip-dev libonig-dev libmagickwand-dev tar curl wget unzip sudo \ libldap2-dev libsodium-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* # ── Extensions PHP ──────────────────────────────────────────────────────────── RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ docker-php-ext-install -j$(nproc) \ gd intl pdo_mysql mysqli zip mbstring xml opcache exif ldap sodium fileinfo RUN pecl install apcu imagick && docker-php-ext-enable apcu imagick # ── php.ini optimisé 18GB ───────────────────────────────────────────────────── RUN { \ echo "memory_limit = 512M"; \ echo "upload_max_filesize = 1G"; \ echo "post_max_size = 1G"; \ echo "max_execution_time = 600"; \ echo "max_input_time = 600"; \ echo "date.timezone = UTC"; \ echo "realpath_cache_size = 4096K"; \ echo "realpath_cache_ttl = 600"; \ echo "opcache.enable = 1"; \ echo "opcache.memory_consumption = 512"; \ echo "opcache.max_accelerated_files = 20000"; \ echo "opcache.interned_strings_buffer = 64"; \ echo "opcache.fast_shutdown = 1"; \ echo "apc.enabled = 1"; \ echo "apc.shm_size = 512M"; \ echo "allow_url_fopen = On"; \ echo "pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock"; \ echo "mysqli.default_socket = /var/run/mysqld/mysqld.sock"; \ } > /usr/local/etc/php/conf.d/synaps-optimizations.ini # ── HumHub ──────────────────────────────────────────────────────────────────── WORKDIR /var/www/html RUN wget -q https://download.humhub.com/downloads/install/humhub-${HUMHUB_VERSION}.tar.gz -O humhub.tar.gz && \ tar -xzf humhub.tar.gz --strip-components=1 && \ rm humhub.tar.gz RUN mkdir -p \ /var/www/html/uploads/file \ /var/www/html/uploads/profile_image \ /var/www/html/protected/runtime/cache \ /var/www/html/protected/runtime/logs \ /var/www/html/protected/runtime/searchdb \ /var/www/html/protected/runtime/tmp \ /var/www/html/protected/modules \ /var/www/html/assets && \ chown -R www-data:www-data /var/www/html && \ find /var/www/html -type d -exec chmod 755 {} + && \ find /var/www/html -type f -exec chmod 644 {} + && \ chmod -R 775 \ /var/www/html/uploads \ /var/www/html/protected/runtime \ /var/www/html/protected/modules \ /var/www/html/assets # ── Pretty URLs ─────────────────────────────────────────────────────────────── RUN cp /var/www/html/.htaccess.dist /var/www/html/.htaccess && \ cp /var/www/html/.env.example /var/www/html/.env && \ sed -i 's|#HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__SHOW_SCRIPT_NAME=false|HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__SHOW_SCRIPT_NAME=false|' /var/www/html/.env && \ sed -i 's|#HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__ENABLE_PRETTY_URL=true|HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__ENABLE_PRETTY_URL=true|' /var/www/html/.env && \ chown www-data:www-data /var/www/html/.htaccess /var/www/html/.env COPY omni_start.sh /omni_start.sh RUN chmod +x /omni_start.sh EXPOSE 7860 ENTRYPOINT ["/omni_start.sh"]