Synaps / Dockerfile
madibaalbert's picture
Update Dockerfile
a005bde verified
# ==========================================
# 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'
<VirtualHost *:7860>
DocumentRoot /var/www/html
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/protected>
Deny from all
</Directory>
</VirtualHost>
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"]