File size: 5,333 Bytes
1b7c504
 
5d8ea34
1b7c504
 
5d8ea34
1b7c504
 
 
 
 
 
5d8ea34
 
 
 
1b7c504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5d8ea34
1b7c504
5d8ea34
1b7c504
 
 
 
 
 
 
 
 
 
 
5d8ea34
1b7c504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a005bde
 
 
 
 
 
 
1b7c504
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# ==========================================
# 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"]