Coder Social home page Coder Social logo

limesurvey-docker's People

Contributors

adamzammit avatar amasson84 avatar amenk avatar bovender avatar chaoskid42 avatar crramirez avatar debuglevel avatar jrlmulholland avatar koelle25 avatar nilshee avatar ymc-dabe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

limesurvey-docker's Issues

Impossible to export structure lss survey

Hi all, I migrated limesurvey from local to docker (being much more handy).
From the initial server I exported the structures and imported them into the new configuration in docker.
Unfortunately now I have already published it and it is accessible from outside for clients.
I am in trouble in that if I need to export the structure in the future it goes to error.
When I do the export of the lss file it returns the following string:

{"success":false,"message":"XMLWriter::writeElement(): Argument #2 ($content) must be of type ?string, stdClass given","error":{"code":500,"type":"TypeError","errorCode":0,"message":"XMLWriter::writeElement(): Argument #2 ($content) must be of type ?string, stdClass given","file":"/var/www/html/application/helpers/export_helper.php","line":3138,"trace":"#0 /var/www/html/application/helpers/export_helper.php(3138): XMLWriter->writeElement('cssframework', Object(stdClass))\n#1 /var/www/html/application/helpers/export_helper.php(3127): writeXmlFromArray(Object(XMLWriter), Array, 'options')\n#2 /var/www/html/application/helpers/export_helper.php(3127): writeXmlFromArray(Object(XMLWriter), Array, 'config')\n#3 /var/www/html/application/helpers/export_helper.php(3125): writeXmlFromArray(Object(XMLWriter), Array, 'theme')\n#4 /var/www/html/application/helpers/export_helper.php(3127): writeXmlFromArray(Object(XMLWriter), Array, 'theme')\n#5 /var/www/html/application/helpers/export_helper.php(3127): writeXmlFromArray(Object(XMLWriter), Array, 'themes_inherite...')\n#6 /var/www/html/application/helpers/export_helper.php(3173): writeXmlFromArray(Object(XMLWriter), Array)\n#7 /var/www/html/application/helpers/export_helper.php(1015): surveyGetThemeConfiguration(421816, Object(XMLWriter), true, 'themes_inherite...')\n#8 /var/www/html/application/controllers/admin/Export.php(1033): surveyGetXMLData(421816)\n#9 /var/www/html/application/controllers/admin/Export.php(925): Export->exportMultipleSurveys('["421816"]', 'structure')\n#10 [internal function]: Export->exportMultipleStructureSurveys()\n#11 /var/www/html/vendor/yiisoft/yii/framework/web/actions/CAction.php(115): ReflectionMethod->invokeArgs(Object(Export), Array)\n#12 /var/www/html/application/core/SurveyCommonAction.php(83): CAction->runWithParamsInternal(Object(Export), Object(ReflectionMethod), Array)\n#13 /var/www/html/vendor/yiisoft/yii/framework/web/CController.php(308): SurveyCommonAction->runWithParams(Array)\n#14 /var/www/html/vendor/yiisoft/yii/framework/web/CController.php(286): CController->runAction(Object(Export))\n#15 /var/www/html/vendor/yiisoft/yii/framework/web/CController.php(265): CController->runActionWithFilters(Object(Export), Array)\n#16 /var/www/html/application/controllers/AdminController.php(202): CController->run('export')\n#17 /var/www/html/vendor/yiisoft/yii/framework/web/CWebApplication.php(282): AdminController->run('export')\n#18 /var/www/html/vendor/yiisoft/yii/framework/web/CWebApplication.php(141): CWebApplication->runController('admin/export/sa...')\n#19 /var/www/html/vendor/yiisoft/yii/framework/base/CApplication.php(185): CWebApplication->processRequest()\n#20 /var/www/html/index.php(161): CApplication->run()\n#21 {main}","traces":[{"file":"/var/www/html/application/helpers/export_helper.php","line":3138,"function":"writeElement","class":"XMLWriter","type":"->","args":["cssframework",{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3127,"function":"writeXmlFromArray","args":[{},{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}},"options"]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3127,"function":"writeXmlFromArray","args":[{},{"options":{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}}},"config"]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3125,"function":"writeXmlFromArray","args":[{},{"id":null,"sid":421816,"template_name":"Infonet_GDPR","config":{"options":{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}}}},"theme"]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3127,"function":"writeXmlFromArray","args":[{},[{"id":null,"sid":421816,"template_name":"Infonet_GDPR","config":{"options":{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}}}}],"theme"]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3127,"function":"writeXmlFromArray","args":[{},{"theme":[{"id":null,"sid":421816,"template_name":"Infonet_GDPR","config":{"options":{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}}}}]},"themes_inherited"]},{"file":"/var/www/html/application/helpers/export_helper.php","line":3173,"function":"writeXmlFromArray","args":[{},{"themes_inherited":{"theme":[{"id":null,"sid":421816,"template_name":"Infonet_GDPR","config":{"options":{"container":"on","showpopups":"1","showclearall":"off","questionhelptextposition":"top","fixnumauto":"off","brandlogo":"on","brandlogofile":"image::theme::files/logo.png","hideprivacyinfo":"off","cssframework":{"@attributes":{"type":"dropdown","category":"Simple options","title":"Variations","parent":"cssframework"}}}}}]}}]},{"file":"/var/www/html/application/helpers/export_helper.php","line":1015,"function":"surveyGetThemeConfiguration","args":[421816,{},true,"themes_inherited"]},{"file":"/var/www/html/application/controllers/admin/Export.php","line":1033,"function":"surveyGetXMLData","args":[421816]},{"file":"/var/www/html/application/controllers/admin/Export.php","line":925,"function":"exportMultipleSurveys","class":"Export","type":"->","args":["["421816"]","structure"]},{"function":"exportMultipleStructureSurveys","class":"Export","type":"->","args":[],"file":"unknown","line":0},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/actions/CAction.php","line":115,"function":"invokeArgs","class":"ReflectionMethod","type":"->","args":[{},[]]},{"file":"/var/www/html/application/core/SurveyCommonAction.php","line":83,"function":"runWithParamsInternal","class":"CAction","type":"->","args":[{},{"name":"exportMultipleStructureSurveys","class":"Export"},{"sa":"exportMultipleStructureSurveys"}]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/CController.php","line":308,"function":"runWithParams","class":"SurveyCommonAction","type":"->","args":[{"sa":"exportMultipleStructureSurveys"}]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/CController.php","line":286,"function":"runAction","class":"CController","type":"->","args":[{}]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/CController.php","line":265,"function":"runActionWithFilters","class":"CController","type":"->","args":[{},[]]},{"file":"/var/www/html/application/controllers/AdminController.php","line":202,"function":"run","class":"CController","type":"->","args":["export"]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/CWebApplication.php","line":282,"function":"run","class":"AdminController","type":"->","args":["export"]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/web/CWebApplication.php","line":141,"function":"runController","class":"CWebApplication","type":"->","args":["admin/export/sa/exportMultipleStructureSurveys"]},{"file":"/var/www/html/vendor/yiisoft/yii/framework/base/CApplication.php","line":185,"function":"processRequest","class":"CWebApplication","type":"->","args":[]},{"file":"/var/www/html/index.php","line":161,"function":"run","class":"CApplication","type":"->","args":[]}]}}

This is my yaml file:
limesurvey:
image: adamzammit/limesurvey:latest
container_name: limesurvey
ports:
- 8082:80
restart: always
environment:
LIMESURVEY_DB_PASSWORD: PERSONAL INFO***
LIMESURVEY_ADMIN_USER: admin
LIMESURVEY_ADMIN_PASSWORD: PERSONAL INFO***
LIMESURVEY_ADMIN_NAME: PERSONAL INFO***
LIMESURVEY_ADMIN_EMAIL: PERSONAL INFO***
volumes:
- /opt/cont/limesurvey/plugins:/var/www/html/plugins
- /opt/cont/limesurvey/upload:/var/www/html/upload
- /opt/cont/limesurvey/config:/var/www/html/application/config
- /opt/cont/limesurvey/sessions:/var/lime/sessions
#these are all the images for the main pagee
- /opt/cont/limesurvey/assets/images:/var/www/html/assets/images
#this is for putting the web page icon on the home
- /opt/cont/limesurvey/themes/admin/favicon.ico:/var/www/html/themes/admin/favicon.ico

mysql:
image: mariadb:10.5
container_name: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: PERSONAL INFO***
volumes:
- /opt/cont/mariadb:/var/lib/mysql

Can you please help me?

Thanks

docker-compose fails

When I cloned the repository (tag: 6.1.4) and just ran "docker-compose up -d", it failed with the following:

Step 7/16 : RUN set -x;     curl -SL "$DOWNLOAD_URL" -o /tmp/lime.zip;     echo "$DOWNLOAD_SHA256 /tmp/lime.zip" | sha256sum -c - || exit 1;     unzip /tmp/lime.zip -d /tmp;     mv /tmp/lime*/* /var/www/html/;     mv /tmp/lime*/.[a-zA-Z]* /var/www/html/;     rm /tmp/lime.zip;     rmdir /tmp/lime*;     chown -R www-data:www-data /var/www/html;     mkdir -p /var/lime/application/config;     mkdir -p /var/lime/upload;     mkdir -p /var/lime/plugins;     mkdir -p /var/lime/sessions;     chown -R www-data:www-data /var/lime/sessions;     cp -dpR /var/www/html/application/config/* /var/lime/application/config;     cp -dpR /var/www/html/upload/* /var/lime/upload;     cp -dpR /var/www/html/plugins/* /var/lime/plugins
 ---> Running in 57696ec6de2f
+ curl -SL https://download.limesurvey.org/latest-master/limesurvey6.1.4+230620.zip -o /tmp/lime.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   162  100   162    0     0     27      0  0:00:06  0:00:05  0:00:01    35
+ echo 64ddd7a7b0c854295882989e51564ca042f6b43ccfe164342688bf3f691e39d7 /tmp/lime.zip
+ sha256sum -c -
/tmp/lime.zip: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
+ exit 1

What is the cause of this problem?

SMTP mail from not set correctly

Hello,

I am trying to configure SMTP capabilities for Limesurvey with this Docker image. However, I am facing some issues when it comes to testing my configuration.

I set all the following environment variables:

LIMESURVEY_SMTP_HOST=${SMTP_HOST}:${SMTP_PORT}
LIMESURVEY_SMTP_USER=${SMTP_USERNAME}
LIMESURVEY_SMTP_PASSWORD=${SMTP_PASSWORD}
LIMESURVEY_SMTP_SSL=tls

In the LimeSurvey UI, I set the "Default site admin email" to be something that matches the domain of my SMTP server. But When I hit the "Send test email", I get the following error:

SERVER -> CLIENT: 554 Message rejected: Email address is not verified. The following identities failed the check: [email protected]

And in the logs of the send email test, I am also picking up those two lines:

CLIENT -> SERVER: MAIL FROM:[email protected]
CLIENT -> SERVER: From: AdminName [email protected]

Even with my configuration changes, it seems that it is picking up the default configuration for the MAIL FROM address, and not the one that I set. I looked into the configuration files, it appears in email.php but those are only default values, the actual values are in config.php and match what I set. Then, I don't understand where the "[email protected]" is picked up from...

Would that be possible to add a LIMESURVEY_SMTP_FROM environment variable to set that properly? Thanks for considering my request.

KC finder not working (cant upload anything)

Hey there adam. I was looking at your docker file and docker compose on your latest release ya. I am trying to replicate/copy your dockerfile configuration and add them into mine as i cannot upload any images using the resources tab as you can see below:

image

As you can see, it isnt rendering it properly and buttons are not functional. These are the console logs:
image

When i tried running your docker with your image and it works absolutely fine! Was checking the dockerfile for any difference but i didnt see any. i have also attached my docker file for you to have a look at.

Compose

`version: "3.0"
services:
  mpulse_6.5:
    build:
      context: .
      dockerfile: dockerfile
    volumes:
      - /tmp/runtime:/var/www/html/tmp/runtime:rw # PHP Main Runtime
    #   - /tmp/assets:/var/www/html/tmp/assets:rw
      - limesurvey-uploads:/var/www/html/upload # Uploaded user survey templates
      - ./plugins:/var/www/html/plugins
      - ./upload:/var/www/html/upload
      - ./config:/var/www/html/application/config
      - ./sessions:/var/lime/sessions
    ports:
      - "8080:80"
    environment:
      - DB_NAME=limesurvey
      - DB_HOST=host.docker.internal
      - DB_PORT=3307
      - DB_USERNAME=secret
      - DB_PASSWORD=secret
      - ADMIN_PASSWORD=password
      - DB_MYSQL_ENGINE=InnoDB
      - "DB_TABLE_PREFIX= "
      - [email protected]
      - LISTEN_PORT=80
      - DEBUG=0
      - DEBUG_SQL=0
      # - PUBLIC_URL=localhost
      - REDIS_HOSTNAME=host.docker.internal
      - REDIS_PORT=6380
      # - REDIS_PASS=A3U163BLemY4!&mvUYL
      # - REDIS_DB=0
    depends_on:
      - redis

  redis:                                                                          
    image: redis
    container_name: redis
    ports:
      - "6380:6379"
    # command: redis-server --requirepass 'A3U163BLemY4!&mvUYL'

volumes:
 limesurvey-uploads:`

Dockerfile

`FROM php:8.1-apache
LABEL maintainer="[email protected]"


RUN set -ex; \
        apt-get update; \
        apt-get install -y --no-install-recommends \
                netcat-openbsd \
                libldap-common \
                libsasl2-modules \
                redis-server \
        ; \
        \
        apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
        rm -rf /var/lib/apt/lists/*

RUN set -ex; \
        \
        savedAptMark="$(apt-mark showmanual)"; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
                libldap2-dev \
                libfreetype6-dev \
                libjpeg-dev \
                libonig-dev \
                zlib1g-dev \
                libc-client-dev \
                libkrb5-dev \
                libpng-dev \
                libpq-dev \
                libzip-dev \
                libtidy-dev \
                libsodium-dev \
                unzip \
                libmcrypt-dev \
        ; \
        \
        debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
        docker-php-ext-configure gd --with-freetype --with-jpeg; \
        docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
        docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
        docker-php-ext-install -j "$(nproc)" \
                exif \
                gd \
                imap \
                ldap \
                mbstring \
                pdo \
                pdo_mysql \
                pdo_pgsql \
                pgsql \
                sodium \
                tidy \
                zip \
                mysqli \
                opcache \
                iconv \
        ; \
        pecl install mcrypt-1.0.6; \
        docker-php-ext-enable mcrypt; \
        \
        apt-mark auto '.*' > /dev/null; \
        apt-mark manual $savedAptMark; \
        ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
                | awk '/=>/ { print $3 }' \
                | sort -u \
                | xargs -r dpkg-query -S \
                | cut -d: -f1 \
                | sort -u \
                | xargs -rt apt-mark manual; \
        ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
                | awk '$3 ~ /^\/lib/ { print "/usr"$3 }' \
                | sort -u \
                | xargs -r dpkg-query -S \
                | cut -d: -f1 \
                | sort -u \
                | xargs -rt apt-mark manual; \
        \
        apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
        rm -rf /var/lib/apt/lists/*

RUN mkdir -p /etc/apache2/ssl

RUN a2enmod ssl && a2enmod rewrite

RUN a2enmod rewrite headers


RUN { \
        echo 'opcache.memory_consumption=128'; \
        echo 'opcache.interned_strings_buffer=8'; \
        echo 'opcache.max_accelerated_files=4000'; \
        echo 'opcache.revalidate_freq=2'; \
        echo 'opcache.fast_shutdown=1'; \
        echo 'opcache.enable_cli=1'; \
    } > /usr/local/etc/php/conf.d/opcache-recommended.ini

RUN set -x; \
        chown -R www-data:www-data /var/www/html; \
        chmod -R ug=rx /var/www/html; \
        mkdir -p /var/lime/application/config; \
        mkdir -p /var/lime/upload; \
        mkdir -p /var/lime/plugins; \
        mkdir -p /var/lime/sessions; \
        chown -R www-data:www-data /var/lime/sessions; \
        cp -dpR /var/www/html/application/config/* /var/lime/application/config; \
        cp -dpR /var/www/html/upload/* /var/lime/upload; \
        cp -dpR /var/www/html/plugins/* /var/lime/plugins; \
        chown -R www-data:www-data /var/lime/application; \
        chown -R www-data:www-data /var/lime/plugins; \
        chown -R www-data:www-data /var/lime/upload

RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

RUN { \
        echo 'memory_limit=256M'; \
        echo 'upload_max_filesize=128M'; \
        echo 'post_max_size=128M'; \
        echo 'max_execution_time=120'; \
        echo 'max_input_vars=10000'; \
        echo 'date.timezone=UTC'; \
        echo 'session.gc_maxlifetime=86400'; \
        echo 'session.save_path="/var/lime/sessions"'; \
    } > /usr/local/etc/php/conf.d/limesurvey.ini



ARG version="6.5.0+240319"
ARG sha256_checksum="d95a0e3bb114917d536d4d18a2a502799f7c80e81e2dfa3bf5461931563bb31c"
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
ARG USER=root
ARG LISTEN_PORT=80
ENV LIMESURVEY_VERSION=$version

EXPOSE $LISTEN_PORT

WORKDIR /var/www/html
COPY . /var/www/html
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod 777 /usr/local/bin/entrypoint.sh
RUN chmod -R 777 /var/www/html/tmp
RUN chmod -R 777 /var/www/html/upload
RUN chmod -R 777 /var/www/html/themes
RUN chmod -R 777 /var/www/html/application/config
VOLUME ["/var/www/html/plugins"]
VOLUME ["/var/www/html/upload"]
VOLUME ["/var/lime/sessions"]
ensure that the config is persisted especially for security.php
VOLUME ["/var/www/html/application/config"]
COPY vhosts-access-log.conf /etc/apache2/conf-enabled/other-vhosts-access-log.conf
USER $USER
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["redis-server"]
CMD ["apache2-foreground"]`

Let me know if you need anything else ya. Thanks

Unable to copy survey

Hi i have a problem when i try to copy a survey.
Procedure:

  1. Create New Survey
  2. Copy
  3. Select survey that i want to copy , set new name

For all of them i have this message error:

500: Internal Server Error XMLWriter::startElement(): Argument #2 must be a valid element name, "@attributes" given

Server Ubuntu 22.04
Docker latest version

image

Question: Is there any limitation on LIMESURVEY_DB_HOST?

Hello

I try to use MySQL on my host but not a container.
And my container bridge IP is 172.23.0.1
So I set LIMESURVEY_DB_HOST to "172.23.0.1:3306"
But I always get MySQL connection error.

Is it possible to use LIMESURVEY_DB_HOST to connect to MySQL on my host?

Thanks!

Unbound variable error

After updating the container (latest tag) I get the following error:

/usr/local/bin/docker-entrypoint.sh: line 118: LIMESURVEY_USE_DB_SESSIONS: unbound variable

It seems this variable was recently added to the docker-entrypoint.sh.

Have I forgotten to configure something?
It worked before updating.

How to enable HTTPS

Could you please provide instructions or a configuration to enable HTTPS with provided certificates? Currently, LimeSurvey presents a warning about SSL not being enforced.

As a workaround, I've put my instance behind a reverse proxy to add HTTPS, but links used by the application, such as in the invitation email templates, show as http://... This is not ideal

Thank you

Incorrect file type from limesurvey curl download

Dockerfile downloads:
ENV DOWNLOAD_URL https://download.limesurvey.org/latest-stable-release/limesurvey4.3.3+200707.zip

But then :
curl -SL "$DOWNLOAD_URL" -o /tmp/lime.tar.gz
tar xf /tmp/lime.tar.gz --strip-components=1 -C /var/www/html

which fails.

Replace :
ENV DOWNLOAD_URL https://download.limesurvey.org/latest-stable-release/limesurvey4.3.3+200707.zip
with
ENV DOWNLOAD_URL https://download.limesurvey.org/latest-stable-release/limesurvey4.3.3+200707.tar.gz

KCFinder for uploading images not working

The docker-compose seems to be working fine except that somehow the KCfinder to upload images is not working.

In Firefox 96.0.2 (64-bit) the KCfinder window opens but all the buttons do not respond.
Using Chrome 97.0.4692.99 the browser wants to use linux xdg-open when clicking on any button in the KCfinder.

I am not sure if this is a problem with this docker(-compose) instance or a problem with limesurvey itself.

Mysql errors after upgrading containers

Is there a known error in one of the latest upgrades or upgrade processes?
I had a limesurvey:latest instance running for about 4 weeks, without upgrading because I didn't want to risk a downtime.

Now after the time for the survey has ended I wanted to upgrade due to a "security issue" warning.

After pulling and starting the newest versions of my services the mariadb service is throwing these to errors without end:

mysql_1       | 2022-07-02  7:31:26 14 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
mysql_1       | 2022-07-02  7:31:26 14 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).

I can access LimeSurvey and it tells me that "The database has been updated from version 486 to version 488."
Everything seems to be working, but the errors in the log do worry me.

I haven't changed my configuration, which was working before without problems.
I'm using the docker-compose example with added traefik.

docker-entrypoint.sh does not check folder first

we running images inside Jenkins which setup e.g. working dir for Docker images on default (with -w) to Jenkins job workspace folder

your LimeSurvey is extracted to /var/www/html

the docker-entrypoint.sh script does not check working dir and just checks if application config exists in current folder and even try to copy it from there

could you take care of different working dir by e.g. just switch dir on docker-entrypoint.sh or use full path?

Reverse proxy limesurvey to sub-path

I would like the limesurvey image to run on a sub-path of my domain. The base of limesurvey should be domain.com/survey.

Apache Reverse Proxy Config:

ProxyPass /survey http://127.0.0.1:9355/
ProxyPassReverse /survey http://127.0.0.1:9355/

However, limesurvey always redirects sub-paths to domain.com, causing issues with, like, everything (of course).
(Example: instead of loading files from domain.com/survey/tmp/, it tries to load from domain.com/tmp/. When I open domain.com/survey/admin, it redirects to domain.com/admin)

I saw your comment in #14 and tried what you described there (kind of a last resort), but it didn't seem to work.

Can you guide me towards a working solution for my problem? Thanks a lot.

Why I am getting this error?

I am using the latest docker image, after I log in with the admin username for the first use I get this error:
Screenshot_20240119_121527

docker-compose fails

Hello,

I'm not a docker expert but I can't install.

I have created a docker-compose.yml file identical to the one on the git repository and run docker-compose up but it seems to fail. Here are the logs:

limesurvey_1  | No config file in /var/www/html Copying default config file...
mysql_1       | 2021-01-15 10:03:51+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
mysql_1       | 2021-01-15 10:03:52+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
limesurvey_1  | Downloading BaltimoreCyberTrustroot.crt.pem
mysql_1       | 2021-01-15 10:03:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
mysql_1       | 2021-01-15 10:03:52+00:00 [Note] [Entrypoint]: Initializing database files
mail_1        | MailDev webapp running at http://0.0.0.0:80
mail_1        | MailDev SMTP Server running at 0.0.0.0:25
mysql_1       | 
mysql_1       | 
mysql_1       | PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
mysql_1       | To do so, start the server, then issue the following commands:
mysql_1       | 
mysql_1       | '/usr/bin/mysqladmin' -u root password 'new-password'
mysql_1       | '/usr/bin/mysqladmin' -u root -h  password 'new-password'
mysql_1       | 
mysql_1       | Alternatively you can run:
mysql_1       | '/usr/bin/mysql_secure_installation'
mysql_1       | 
mysql_1       | which will also give you the option of removing the test
mysql_1       | databases and anonymous user created by default.  This is
mysql_1       | strongly recommended for production servers.
mysql_1       | 
mysql_1       | See the MariaDB Knowledgebase at https://mariadb.com/kb or the
mysql_1       | MySQL manual for more instructions.
mysql_1       | 
mysql_1       | Please report any problems at https://mariadb.org/jira
mysql_1       | 
mysql_1       | The latest information about MariaDB is available at https://mariadb.org/.
mysql_1       | You can find additional information about the MySQL part at:
mysql_1       | https://dev.mysql.com
mysql_1       | Consider joining MariaDB's strong and vibrant community:
mysql_1       | https://mariadb.org/get-involved/
mysql_1       | 
mysql_1       | 2021-01-15 10:03:54+00:00 [Note] [Entrypoint]: Database files initialized
mysql_1       | 2021-01-15 10:03:54+00:00 [Note] [Entrypoint]: Starting temporary server
mysql_1       | 2021-01-15 10:03:54+00:00 [Note] [Entrypoint]: Waiting for server startup
mysql_1       | 2021-01-15 10:03:54 0 [Note] mysqld (mysqld 10.5.8-MariaDB-1:10.5.8+maria~focal) starting as process 104 ...
mysql_1       | 2021-01-15 10:03:54 0 [Warning] Could not increase number of max_open_files to more than 1024 (request: 32186)
mysql_1       | 2021-01-15 10:03:54 0 [Warning] Changed limits: max_open_files: 1024  max_connections: 151 (was 151)  table_cache: 421 (was 2000)
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Using Linux native AIO
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Uses event mutexes
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Number of pools: 1
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
mysql_1       | 2021-01-15 10:03:54 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Completed initialization of buffer pool
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: 128 rollback segments are active.
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Creating shared tablespace for temporary tables
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: 10.5.8 started; log sequence number 45118; transaction id 20
mysql_1       | 2021-01-15 10:03:54 0 [Note] Plugin 'FEEDBACK' is disabled.
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
mysql_1       | 2021-01-15 10:03:54 0 [Note] InnoDB: Buffer pool(s) load completed at 210115 10:03:54
mysql_1       | 2021-01-15 10:03:54 0 [Warning] 'user' entry 'root@d65a4da63683' ignored in --skip-name-resolve mode.
mysql_1       | 2021-01-15 10:03:54 0 [Warning] 'proxies_priv' entry '@% root@d65a4da63683' ignored in --skip-name-resolve mode.
mysql_1       | 2021-01-15 10:03:54 0 [Note] Reading of all Master_info entries succeeded
mysql_1       | 2021-01-15 10:03:54 0 [Note] Added new Master_info '' to hash table
mysql_1       | 2021-01-15 10:03:54 0 [Note] mysqld: ready for connections.
mysql_1       | Version: '10.5.8-MariaDB-1:10.5.8+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 0  mariadb.org binary distribution
mysql_1       | 2021-01-15 10:03:55+00:00 [Note] [Entrypoint]: Temporary server started.
mysql_1       | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
mysql_1       | Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
mysql_1       | Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
mysql_1       | 2021-01-15 10:03:59 5 [Warning] 'proxies_priv' entry '@% root@d65a4da63683' ignored in --skip-name-resolve mode.
mysql_1       | 
mysql_1       | 2021-01-15 10:03:59+00:00 [Note] [Entrypoint]: Stopping temporary server
mysql_1       | 2021-01-15 10:03:59 0 [Note] mysqld (initiated by: root[root] @ localhost []): Normal shutdown
mysql_1       | 2021-01-15 10:03:59 0 [Note] Event Scheduler: Purging the queue. 0 events
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: FTS optimize thread exiting.
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: Starting shutdown...
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: Buffer pool(s) dump completed at 210115 10:03:59
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: Shutdown completed; log sequence number 45130; transaction id 21
mysql_1       | 2021-01-15 10:03:59 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
mysql_1       | 2021-01-15 10:03:59 0 [Note] mysqld: Shutdown complete
mysql_1       | 
mysql_1       | 2021-01-15 10:04:00+00:00 [Note] [Entrypoint]: Temporary server stopped
mysql_1       | 
mysql_1       | 2021-01-15 10:04:00+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
mysql_1       | 
mysql_1       | 2021-01-15 10:04:00 0 [Note] mysqld (mysqld 10.5.8-MariaDB-1:10.5.8+maria~focal) starting as process 1 ...
mysql_1       | 2021-01-15 10:04:00 0 [Warning] Could not increase number of max_open_files to more than 1024 (request: 32186)
mysql_1       | 2021-01-15 10:04:00 0 [Warning] Changed limits: max_open_files: 1024  max_connections: 151 (was 151)  table_cache: 421 (was 2000)
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Using Linux native AIO
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Uses event mutexes
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Number of pools: 1
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
mysql_1       | 2021-01-15 10:04:00 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Completed initialization of buffer pool
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: 128 rollback segments are active.
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Creating shared tablespace for temporary tables
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: 10.5.8 started; log sequence number 45130; transaction id 20
mysql_1       | 2021-01-15 10:04:00 0 [Note] Plugin 'FEEDBACK' is disabled.
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
mysql_1       | 2021-01-15 10:04:00 0 [Note] InnoDB: Buffer pool(s) load completed at 210115 10:04:00
mysql_1       | 2021-01-15 10:04:00 0 [Note] Server socket created on IP: '::'.
mysql_1       | 2021-01-15 10:04:00 0 [Warning] 'proxies_priv' entry '@% root@d65a4da63683' ignored in --skip-name-resolve mode.
mysql_1       | 2021-01-15 10:04:00 0 [Note] Reading of all Master_info entries succeeded
mysql_1       | 2021-01-15 10:04:00 0 [Note] Added new Master_info '' to hash table
mysql_1       | 2021-01-15 10:04:00 0 [Note] mysqld: ready for connections.
mysql_1       | Version: '10.5.8-MariaDB-1:10.5.8+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
limesurvey_1  | Failed to download certificate - continuing anyway
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_1  | 
limesurvey_1  | MySQL Connection Error: () 
limesurvey_limesurvey_1 exited with code 1

AFAIU everything seems to be ok for mail_1 and mysql_1 but there are errors in limesurvey_1. Any thought ?

I'm using Docker version 19.03.13, build 4484c46 on Fedora 33.

Permission Denied when restarting the server

Hi, I just found your project and am excited to see it.
I tried to use the default docker-compose file that is provided in the repository to create the server. For the first creation and boot up, everything seems to work fine. All the files are created and the server works great. However, if I power down the containers and start them up again at a future time, I get the following error:

limesurvey-1  | Copying default container default config files into config volume...
limesurvey-1  | cp: cannot create regular file 'application/config/config-defaults.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/config-sample-dblib.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/config-sample-mysql.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/config-sample-pgsql.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/config-sample-sqlsrv.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/console.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/email.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/fonts.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/index.html': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/internal.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/ldap.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/packages.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/questiontypes.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/rest/v1/example/survey-patch-all.json': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/rest/v1/session.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/rest/v1/survey.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/rest/v1.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/rest.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/routes.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/tcpdf.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/updater_version.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/vendor.php': Permission denied
limesurvey-1  | cp: cannot create regular file 'application/config/version.php': Permission denied

If I delete the config folder that the initial initialization did, then the server works again. However, removing the config on every reboot does seem excessive. The only related issue I found was at the end of #10 , however there the solution was to delete the config folder.

other info:

  • Windows 10 machine (fully up to date)
  • WSL 2 enabled
  • Docker version 24.0.7
  • Tried on Limesurvey versions 6.3.8 and 6.3.9

Thanks in advance.

Persistent mode issue

If the example Docker Compose configuration is used along with the built-in MySQL, the forms will be deleted upon stack restart.

CAPTCHA query not always reliable

Hi, thank you for sharing the image!

I noticed a small issue when using a captcha to restrict access to a survey. Sometimes, the captcha does not show up, and one has to click the reload button a few times for it to appear.

The request made for retrieving the captcha (/index.php/survey/captcha?v=...) then returns the following:

500: Internal Server Error
imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)

Not sure if this is a problem within this image or of LimeSurvey in general. Sorry if this is the wrong place to raise this issue.

unable to start limesurvey container: syntax error in config.php

Images tested: 5.3.27, 5.3.28

Hi,

I used the docker-compose.yml template suggested in the repo to setup an instance of limesurvey.

Unfortunately, I got an error when I launch the containers, in the limesurvey container:

Parse error: syntax error, unexpected identifier "iE209", expecting ")" in /var/www/html/application/config/config.php on line 32

Any hint on what could it be?

Persistence of security.php

The config path /var/www/html/application/config contains a file named security.php, which holds automatically generated keys that should never change. If this file isn't persisted and the container is recreated, for instance in case of an update, the old security.php will be lost and limesurvey will create a new one. This will break the functionality of the instance entirely, as certain values can not be read anymore.

Basically, everybody who is using this deployment right now is on the brink of irrecoverable data loss.

To fix this issue, I mounted a volume into the path /var/www/html/application/config.

Currently, the documentation says nothing about volumes or data persistence in general. Volumes are only defined in the Dockerfile. In my opinion, they should be at least defined in the Docker Compose file.

entrypoint script error set_config

Running container 3.27.7 in docker-swarm with secrets I get the following error and the service crashes:

sed: -e expression #1, char 48: unknown option to `s'

Is it possible that a special character used in any of the values set in the config file would make the following line crash?

sed -i "/'$key'/s/>\(.*\)/>$value,/1" application/config/config.php

Thanks!

Cannot reinstall limesurvey

Hi,
I had some issues with the admin login upon setting up the docker container so I decided to delete all the config files and start from scratch. However, it doesn't seem to work anymore. It does seem to create the database, but when I try to access the website I get the error "LimeSurvey table settings_global not found in database". This is after stopping both the limesurvey and the mysql docker containers, deleting all folders that map to volumes for those and running "docker system prune -a --volumes" to make sure all related files should be deleted. So any idea why it does not seem to run the inital setup correctly anymore?

Cannot sign in

Hi,
whenever I try to login to the web interface it tells me that the username or password are wrong.
I have tried setting those in multiple ways:

  1. setting the LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD environment variables
  2. not setting the variables and trying to sign in with both values empty as well as "admin" and "password"
  3. running the following script in mariadb:
DROP TABLE IF EXISTS `lime_users`;
CREATE TABLE `lime_users` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `users_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `password` blob NOT NULL,
  `full_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `parent_id` int(11) NOT NULL,
  `lang` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(254) COLLATE utf8_unicode_ci DEFAULT NULL,
  `htmleditormode` varchar(7) COLLATE utf8_unicode_ci DEFAULT 'default',
  `templateeditormode` varchar(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'default',
  `questionselectormode` varchar(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'default',
  `one_time_pw` blob,
  `dateformat` int(11) NOT NULL DEFAULT '1',
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`uid`),
  UNIQUE KEY `users_name` (`users_name`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `lime_users`
--

INSERT INTO `lime_users` (`uid`,`users_name`,`password`,`full_name`,`parent_id`,`lang`,`email`,`htmleditormode`,`templateeditormode`,`questionselectormode`,`one_time_pw`,`dateformat`,`created`,`modified`) VALUES
('1', 'admin', 'password', 'Admin', '0', 'en', 'email_address', 'default', 'default', 'default', NULL, '1', '2023-05-23 18:45:00', NULL);

None of them seemed to work; I can still not sign in.
Here is my docker-compose.yml:

services:    
    limesurvey:
        image: acspri/limesurvey
        container_name: limesurvey
        depends_on:
            - limedb
        ports:
            - 8082:80
        environment:
            - LIMESURVEY_DB_HOST=limedb
            - LIMESURVEY_DB_PASSWORD=${LIMEDB_PW}
            - LIMESURVEY_ADMIN_USER="admin"
            - LIMESURVEY_ADMIN_PASSWORD="password"
            - LIMESURVEY_ADMIN_NAME="Admin"
            - LIMESURVEY_ADMIN_EMAIL=${EMAIL}
        volumes:
            - /docker/limesurvey/plugins:/var/www/html/plugins
            - /docker/limesurvey/upload:/var/www/html/upload
            - /docker/limesurvey/config:/var/www/html/application/config
    limedb:
        image: linuxserver/mariadb:latest
        container_name: limedb
        environment:
            - PUID=1000
            - PGID=1000
            - MYSQL_ROOT_PASSWORD=${LIMEDB_PW}
            - TZ=${TIMEZONE}
        volumes:
            - /docker/limedb:/config```

index.php showing up in URLs

Hi Adam,

Thank you for your ongoing efforts to offer up-to-date versions of LimeSurvey as a Docker container.

I've noticed that a lot of URLs are showing up with a superfluous index.php/ in them:

  • https://limesurvey.mydomain/index.php/772916
  • https://limesurvey.mydomain/index.php/admin/index
  • etc.

Interestingly, the URLs all work even when the index.php/ component is removed, so the issue seems to be more to do with URL generation. Looking at the source of generated pages, they do indeed contain index.php/ in all their outgoing links.

In your view, is this likely to be a direct LimeSurvey limitation or potentially something that can be dealt with via the Dockerfile somehow? I know that these things can sometimes be tweaked with environment variables or the like—I'm yet to delve too deeply into the Configuration section of the manual.

—Alex

Postgres support

can i know if postgres is supported or not ? if yes what is your envrioment files

MySQL server certificates are not verified when passing MYSQL_SSL_CA

Hello

I was performing small code review before running the container and I've noticed that when MYSQL_SSL_CA environment variable is passed on runtime, the docker-entrypoint.sh sets these PDO attributes:

if [ -n "$MYSQL_SSL_CA" ]; then
    set_config 'attributes' "array(PDO::MYSQL_ATTR_SSL_CA => '\/var\/www\/html\/$MYSQL_SSL_CA', PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false)"
fi

It misses the point a bit from security perspective as MySQL CA validation was created with intention to validate if the certificate of a server we are connecting was issued by certain CA - to prevent man-in-the-middle attacks. On the other hand, the script sets PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT to false what instructs PDO to skip cryptographic checks at all, making PDO::MYSQL_ATTR_SSL_CA effectively ignored.

I don't know the original intention but my suggestion would be to remove PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT from attributes or set it explicitly to true.

Feature: Persistent sessions accross container restarts

I think we should persist sessions across container restarts, otherwise users who are in the middle of a survey for example during server restarts or upgrade will use their progress.

Should be possible with

  • setting a specific session_save_path in php.ini
  • mounting that path in docker composer

Cannot access backend with nginx reverse proxy

I am using a pretty basic nginx reverse proxy config for my SSL setup.

Unfortunately the limesurvey admin-backend always redirects to http://limesurvey/admin/ when I am trying to access survey.mydomain.com/admin.

My nginx compose setup:

nginx:
   container_name: limesurvey_proxy
   restart: always
   image: nginx
   volumes:
   - /etc/containers/limesurvey/nginx.conf:/etc/nginx/nginx.conf:ro
   - /etc/containers/limesurvey/limesite.conf:/etc/nginx/conf.d/default.conf:ro
   - /etc/containers/limesurvey/certs:/etc/nginx/certs
   - /opt/limesurvey/nginx-logs:/var/log/nginx
   ports:
   - 443:443
   links:
   - limesurvey
   networks:
     limenetwork_compose:
   command: /bin/bash -c "nginx -g 'daemon off;'"

the relevant nginx config:

server {
    listen       443 ssl http2;
    server_name <FQDN>;

        ssl_certificate     /etc/nginx/certs/crt.pem;
        ssl_certificate_key /etc/nginx/certs/key.pem;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling off;
        ssl_stapling_verify off;

    location / {
    proxy_pass http://limesurvey:80/;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    access_log off;
    client_max_body_size 4096m;
}

The surveys work fine with the reverse proxy and the default start page also loads fine. Only the admin-backend is not working properly.

Is there any way to fix this issue?

kcfinder

hello
just did a fresh install. and trie to upload picture in buy setting/ressources tab but when i clic on upload nothing all button upload, refresh, setting do nothing. not sur if the problem is me. put a screenshot of thge debug console in firefox
Sans titre
.

(38)Function not implemented: AH00141: Could not initialize random number generator

I'm running version 5.1.14
Docker API version 1.26
OS Version: Ubuntu 14.04.5 LTS (yes I know it's EOL, but I didn't think that would be causing this error)

Getting this critical error when trying to start the container. Have you seen this before or know if there is a work around?

This is the full output from running "docker logs" on the container

Copying default container default config files into config volume...
No index.html file upload dir in /var/www/html Copying defaults...
Updating password for admin user
Password for user admin was set.
Flushing assets in /var/www/html/tmp
[Tue Oct 05 14:45:54.233787 2021] [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator

Here's the compose file:

  limesurvey5:
    image: acspri/limesurvey:5.1.14
    container_name: limesurvey_lime5
    ports:
      - "8082:80"
    environment:
      - "LIMESURVEY_DB_HOST=*****************************.rds.amazonaws.com"
      - "LIMESURVEY_DB_NAME=limesurvey5"
      - "LIMESURVEY_DB_USER=*********"
      - "LIMESURVEY_DB_PASSWORD=***********************"
      - "LIMESURVEY_TABLE_PREFIX=lime_"
      - "LIMESURVEY_ADMIN_USER=********"
      - "LIMESURVEY_ADMIN_PASSWORD=*************************"
      - "[email protected]"
      - "LIMESURVEY_ADMIN_NAME=Admin User"
      - "LIMESURVEY_DEBUG=2"
    restart: always
    volumes:
      - ./plugins:/var/www/html/plugins
      - ./upload:/var/www/html/upload
      - ./config:/var/www/html/application/config

entrypoint script permissions

got
/usr/local/bin/docker-entrypoint.sh: line 59: application/config/config.php: Permission denied
when running container with another user which is default to Jenkins pipeline Docker commands

may use "sudo" here if available in your Docker base image - or setup directories to be owned by given Docker user

Postgres support

Hi!

I wanted to run this image to use postgres as the backend instead of mysql.
What would be the necessary changes needed to make that work ?

I saw crramirez/limesurvey has support for postgres but could not find the equivalent docs.

Thanks.

Everything disappears each time the container restarts...

I have mounted the following paths

    volumes:
      - /docker/ccea/lime/uploads:/var/www/html/upload
      - /docker/ccea/lime/plugins:/var/www/html/plugins
      - /docker/ccea/lime/config:/var/www/html/application/config
      - /docker/ccea/lime/session:/var/lime/sessions

And yet, everything erases every time I stop and start the stack. I don't know what I am doing wrong...

Additionally, anytime I change a global config setting instead of a green success modal popup I get a red warning/error without any text and nothing shows in the logs.

Set timezone

Is there (or could you make) a way to set the server timezone in docker-compose.yml?

As far as I can se the timezone is hard coded in Dockerfile:55
echo 'date.timezone=UTC'; \
But I'm not a developer myself.

A possible fix is to set "Time difference" (Global settings -> General) but daylight savings makes this a repeating manual task.

Thank you for your work and for maintaining this repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.