diff --git a/.travis.yml b/.travis.yml index 13db9b8..2879499 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,14 +54,23 @@ jobs: - ./generate-stackbrew-library.sh - stage: test images (amd64) - env: VERSION=2018.05-rc VARIANT=fpm-alpine ARCH=amd64 - - env: VERSION=2018.05-rc VARIANT=fpm ARCH=amd64 - - env: VERSION=2018.05-rc VARIANT=apache ARCH=amd64 + env: VERSION=2018.08-dev VARIANT=fpm-alpine ARCH=amd64 + - env: VERSION=2018.08-dev VARIANT=fpm ARCH=amd64 + - env: VERSION=2018.08-dev VARIANT=apache ARCH=amd64 + - env: VERSION=2018.05 VARIANT=fpm-alpine ARCH=amd64 + - env: VERSION=2018.05 VARIANT=fpm ARCH=amd64 + - env: VERSION=2018.05 VARIANT=apache ARCH=amd64 - stage: test images (full) - env: VERSION=2018.05-rc VARIANT=fpm-alpine ARCH=amd64 - - env: VERSION=2018.05-rc VARIANT=fpm-alpine ARCH=i386 - - env: VERSION=2018.05-rc VARIANT=fpm ARCH=amd64 - - env: VERSION=2018.05-rc VARIANT=fpm ARCH=i386 - - env: VERSION=2018.05-rc VARIANT=apache ARCH=amd64 - - env: VERSION=2018.05-rc VARIANT=apache ARCH=i386 + env: VERSION=2018.08-dev VARIANT=fpm-alpine ARCH=amd64 + - env: VERSION=2018.08-dev VARIANT=fpm-alpine ARCH=i386 + - env: VERSION=2018.08-dev VARIANT=fpm ARCH=amd64 + - env: VERSION=2018.08-dev VARIANT=fpm ARCH=i386 + - env: VERSION=2018.08-dev VARIANT=apache ARCH=amd64 + - env: VERSION=2018.08-dev VARIANT=apache ARCH=i386 + - env: VERSION=2018.05 VARIANT=fpm-alpine ARCH=amd64 + - env: VERSION=2018.05 VARIANT=fpm-alpine ARCH=i386 + - env: VERSION=2018.05 VARIANT=fpm ARCH=amd64 + - env: VERSION=2018.05 VARIANT=fpm ARCH=i386 + - env: VERSION=2018.05 VARIANT=apache ARCH=amd64 + - env: VERSION=2018.05 VARIANT=apache ARCH=i386 diff --git a/2018.05/apache/Dockerfile b/2018.05/apache/Dockerfile new file mode 100644 index 0000000..bf6ee42 --- /dev/null +++ b/2018.05/apache/Dockerfile @@ -0,0 +1,120 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.1-apache +LABEL maintainer="Philipp Holzer " + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + sendmail \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libxml2-dev \ + mysql-client \ + bash \ + autoconf \ + g++ \ + make \ + openssl \ + libssl-dev \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmcrypt4 \ + libmcrypt-dev \ + imagemagick \ + libmagick++-dev \ + libgraphicsmagick1-dev \ + libfreetype6 \ + libfreetype6-dev \ + librsvg2-2 \ + libcurl4-openssl-dev \ + curl \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + pecl install imagick-3.4.3; \ + docker-php-ext-enable imagick; \ + pecl clear-cache \ + ; \ + docker-php-ext-configure gd \ + --with-gd \ + --enable-gd-native-ttf \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-install -j 4 curl pdo pdo_mysql xml gd zip opcache mbstring posix ctype json iconv mcrypt \ + ; \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + 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; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +RUN chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + +RUN a2enmod rewrite remoteip ;\ + {\ + echo RemoteIPHeader X-Real-IP ;\ + echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ + echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ + echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ + } > /etc/apache2/conf-available/remoteip.conf;\ + a2enconf remoteip + +RUN {\ + echo sendmail_path = "/usr/sbin/sendmail -t -i" ;\ + } > /usr/local/etc/php/conf.d/sendmail.ini; + +ENV AUTOINSTALL false + +ENV FRIENDICA_VERSION 2018.05 +ENV FRIENDICA_ADDONS 2018.05 + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://github.com/friendica/friendica/archive/${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://github.com/friendica/friendica-addons/archive/${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY bin/* /usr/local/bin/ +COPY config/* /usr/src/config/ +COPY *.sh / +RUN chmod +x /*.sh +RUN chmod +x /usr/local/bin/* + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["apache2-foreground"] diff --git a/2018.05-rc/apache/bin/friendica b/2018.05/apache/bin/friendica similarity index 100% rename from 2018.05-rc/apache/bin/friendica rename to 2018.05/apache/bin/friendica diff --git a/2018.05-rc/apache/config/htconfig.php b/2018.05/apache/config/htconfig.php similarity index 100% rename from 2018.05-rc/apache/config/htconfig.php rename to 2018.05/apache/config/htconfig.php diff --git a/2018.05/apache/cron.sh b/2018.05/apache/cron.sh new file mode 100644 index 0000000..432692c --- /dev/null +++ b/2018.05/apache/cron.sh @@ -0,0 +1,11 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/.htconfig.php ]; do + sleep 1 +done + +while true; do + php -f /var/www/html/scripts/worker.php + sleep 10m +done \ No newline at end of file diff --git a/2018.05-rc/apache/entrypoint.sh b/2018.05/apache/entrypoint.sh similarity index 100% rename from 2018.05-rc/apache/entrypoint.sh rename to 2018.05/apache/entrypoint.sh diff --git a/2018.05/fpm-alpine/Dockerfile b/2018.05/fpm-alpine/Dockerfile new file mode 100644 index 0000000..5b1c9bf --- /dev/null +++ b/2018.05/fpm-alpine/Dockerfile @@ -0,0 +1,101 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template +FROM php:7.1-fpm-alpine +LABEL maintainer="Philipp Holzer " + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apk add --no-cache \ + rsync \ + git; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + apk add -U --no-cache --virtual .build-deps \ + libxml2-dev \ + mysql-client \ + bash \ + autoconf \ + g++ \ + make \ + openssl \ + openssl-dev \ + libpng \ + libpng-dev \ + libjpeg-turbo-dev \ + imagemagick-dev \ + imagemagick \ + libtool \ + libmcrypt \ + libmcrypt-dev \ + freetype \ + libpng \ + libjpeg-turbo-dev \ + freetype-dev \ + librsvg \ + libcurl \ + curl \ + curl-dev \ + rsync \ + bzip2 \ + pcre-dev \ + ; \ + pecl install imagick-3.4.3; \ + docker-php-ext-enable imagick; \ + pecl clear-cache; \ + docker-php-ext-configure gd \ + --with-gd \ + --enable-gd-native-ttf \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-install -j 4 curl pdo pdo_mysql xml gd zip opcache mbstring posix ctype json iconv mcrypt; \ + \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --virtual .friendica-phpext-rundeps $runDeps; \ + apk del .build-deps; + +RUN chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +RUN {\ + echo sendmail_path = "/usr/sbin/sendmail -t -i" ;\ + } > /usr/local/etc/php/conf.d/sendmail.ini; + +ENV AUTOINSTALL false + +ENV FRIENDICA_VERSION 2018.05 +ENV FRIENDICA_ADDONS 2018.05 + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://github.com/friendica/friendica/archive/${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://github.com/friendica/friendica-addons/archive/${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY bin/* /usr/local/bin/ +COPY config/* /usr/src/config/ +COPY *.sh / +RUN chmod +x /*.sh +RUN chmod +x /usr/local/bin/* + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] \ No newline at end of file diff --git a/2018.05-rc/fpm-alpine/bin/friendica b/2018.05/fpm-alpine/bin/friendica similarity index 100% rename from 2018.05-rc/fpm-alpine/bin/friendica rename to 2018.05/fpm-alpine/bin/friendica diff --git a/2018.05-rc/fpm-alpine/config/htconfig.php b/2018.05/fpm-alpine/config/htconfig.php similarity index 100% rename from 2018.05-rc/fpm-alpine/config/htconfig.php rename to 2018.05/fpm-alpine/config/htconfig.php diff --git a/2018.05/fpm-alpine/cron.sh b/2018.05/fpm-alpine/cron.sh new file mode 100644 index 0000000..432692c --- /dev/null +++ b/2018.05/fpm-alpine/cron.sh @@ -0,0 +1,11 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/.htconfig.php ]; do + sleep 1 +done + +while true; do + php -f /var/www/html/scripts/worker.php + sleep 10m +done \ No newline at end of file diff --git a/2018.05-rc/fpm-alpine/entrypoint.sh b/2018.05/fpm-alpine/entrypoint.sh similarity index 100% rename from 2018.05-rc/fpm-alpine/entrypoint.sh rename to 2018.05/fpm-alpine/entrypoint.sh diff --git a/2018.05/fpm/Dockerfile b/2018.05/fpm/Dockerfile new file mode 100644 index 0000000..a28f67e --- /dev/null +++ b/2018.05/fpm/Dockerfile @@ -0,0 +1,112 @@ +# DO NOT EDIT: created by update.sh from Dockerfile-debian.template +FROM php:7.1-fpm +LABEL maintainer="Philipp Holzer " + +# entrypoint.sh and cron.sh dependencies +RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + rsync \ + bzip2 \ + git \ +# For mail() support + sendmail \ + ; \ + rm -rf /var/lib/apt/lists/*; + +# install the PHP extensions we need +# see https://friendi.ca/resources/requirements/ +RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libxml2-dev \ + mysql-client \ + bash \ + autoconf \ + g++ \ + make \ + openssl \ + libssl-dev \ + libpng-dev \ + libjpeg62-turbo-dev \ + libtool \ + libmcrypt4 \ + libmcrypt-dev \ + imagemagick \ + libmagick++-dev \ + libgraphicsmagick1-dev \ + libfreetype6 \ + libfreetype6-dev \ + librsvg2-2 \ + libcurl4-openssl-dev \ + curl \ + ; \ + \ + debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ + pecl install imagick-3.4.3; \ + docker-php-ext-enable imagick; \ + pecl clear-cache \ + ; \ + docker-php-ext-configure gd \ + --with-gd \ + --enable-gd-native-ttf \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include/ \ + --with-jpeg-dir=/usr/include/ \ + ; \ + docker-php-ext-install -j 4 curl pdo pdo_mysql xml gd zip opcache mbstring posix ctype json iconv mcrypt \ + ; \ +# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + 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; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + +RUN chown -R www-data:root /var/www; \ + chmod -R g=u /var/www + +VOLUME /var/www/html + + +RUN {\ + echo sendmail_path = "/usr/sbin/sendmail -t -i" ;\ + } > /usr/local/etc/php/conf.d/sendmail.ini; + +ENV AUTOINSTALL false + +ENV FRIENDICA_VERSION 2018.05 +ENV FRIENDICA_ADDONS 2018.05 + +RUN set -ex; \ + curl -fsSL -o friendica.tar.gz \ + "https://github.com/friendica/friendica/archive/${FRIENDICA_VERSION}.tar.gz"; \ + tar -xzf friendica.tar.gz -C /usr/src/; \ + rm friendica.tar.gz; \ + mv -f /usr/src/friendica-${FRIENDICA_VERSION}/ /usr/src/friendica; \ + chmod 777 /usr/src/friendica/view/smarty3; \ + curl -fsSL -o friendica_addons.tar.gz \ + "https://github.com/friendica/friendica-addons/archive/${FRIENDICA_ADDONS}.tar.gz"; \ + mkdir /usr/src/friendica/addon; \ + tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \ + rm friendica_addons.tar.gz; + +COPY bin/* /usr/local/bin/ +COPY config/* /usr/src/config/ +COPY *.sh / +RUN chmod +x /*.sh +RUN chmod +x /usr/local/bin/* + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/2018.05-rc/fpm/bin/friendica b/2018.05/fpm/bin/friendica similarity index 100% rename from 2018.05-rc/fpm/bin/friendica rename to 2018.05/fpm/bin/friendica diff --git a/2018.05-rc/fpm/config/htconfig.php b/2018.05/fpm/config/htconfig.php similarity index 100% rename from 2018.05-rc/fpm/config/htconfig.php rename to 2018.05/fpm/config/htconfig.php diff --git a/2018.05/fpm/cron.sh b/2018.05/fpm/cron.sh new file mode 100644 index 0000000..432692c --- /dev/null +++ b/2018.05/fpm/cron.sh @@ -0,0 +1,11 @@ +#!/bin/sh +trap "break;exit" HUP INT TERM + +while [ ! -f /var/www/html/.htconfig.php ]; do + sleep 1 +done + +while true; do + php -f /var/www/html/scripts/worker.php + sleep 10m +done \ No newline at end of file diff --git a/2018.05-rc/fpm/entrypoint.sh b/2018.05/fpm/entrypoint.sh similarity index 100% rename from 2018.05-rc/fpm/entrypoint.sh rename to 2018.05/fpm/entrypoint.sh diff --git a/2018.05-rc/apache/Dockerfile b/2018.08-dev/apache/Dockerfile similarity index 97% rename from 2018.05-rc/apache/Dockerfile rename to 2018.08-dev/apache/Dockerfile index fe550c7..a4774f9 100644 --- a/2018.05-rc/apache/Dockerfile +++ b/2018.08-dev/apache/Dockerfile @@ -94,8 +94,8 @@ RUN {\ ENV AUTOINSTALL false -ENV FRIENDICA_VERSION 2018.05-rc -ENV FRIENDICA_ADDONS 2018.05-rc +ENV FRIENDICA_VERSION 2018.08-dev +ENV FRIENDICA_ADDONS 2018.08-dev COPY bin/* /usr/local/bin/ diff --git a/2018.08-dev/apache/bin/friendica b/2018.08-dev/apache/bin/friendica new file mode 100644 index 0000000..da77b29 --- /dev/null +++ b/2018.08-dev/apache/bin/friendica @@ -0,0 +1,216 @@ +#!/bin/sh +set -eu + +FRIENDICA_VERSION=${FRIENDICA_VERSION:-develop} +FRIENDICA_ADDONS=${FRIENDICA_ADDONS:-develop} +AUTOINSTALL=${AUTOINSTALL:-false} + +SOURCEDIR=/usr/src +WORKDIR=/var/www/html + +VERBOSE=1 +for arg; do + case "$arg" in + -q|--quit) + if [ "$VERBOSE" -eq "2" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=0 + break + ;; + -v|--verbose) + if [ "$VERBOSE" -eq "0" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=2 + break + ;; + esac +done + +# run an command with the www-data user +run_as() { + if [ "$(id -u)" = 0 ]; then + su - www-data -s /bin/sh -c "$1" + else + sh -c "$1" + fi +} + +# log event +log() { + currVerb=1 + if [ $# -eq 2 ]; then + currVerb=$2 + fi + if [ "$VERBOSE" -ge "$currVerb" ]; then + echo "$1" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 | head -n 1)" != "$1" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + dir="${1:-$SOURCEDIR}" + friendica="${2:-$FRIENDICA_VERSION}" + addons="${3:-$FRIENDICA_ADDONS}" + + friendica_git=$friendica + addons_git=$addons + if echo "$friendica" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "$addons" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + log 'Cloning Friendica '\'$friendica_git\'' with Addons '\'$addons_git\'' into '\'$dir\' + + # Removing the whole directory first + rm -fr $dir/friendica + + sh -c "git clone -q -b ${friendica_git} https://github.com/friendica/friendica ${dir}/friendica" + mkdir $dir/friendica/addon + sh -c "git clone -q -b ${addons_git} https://github.com/friendica/friendica-addons ${dir}/friendica/addon" +} + +# help of this shell script +friendica_help() { + echo "Usage: friendica []" + echo "" + echo "Commands:" + echo " console Executes an command in the Friendica console" + echo " composer Executes the composer.phar executable for Friendica" + echo " install Installs Friendica" + echo " update Updates Friendica" + exit 0 +} + +# executes the Friendica console +console() { + cd $WORKDIR + php $WORKDIR/bin/console.php "$@" +} + +# executes the composer.phar binary of Friendica +composer() { + if [ -f $WORKDIR/bin/composer.phar ]; then + run_as "cd $WORKDIR;$WORKDIR/bin/composer.phar $@ -d $WORKDIR" + fi +} + +copy_sources() { + installed_version="0.0.0.0" + if [ -f ${WORKDIR}/VERSION ]; then + installed_version="$(cat ${WORKDIR}/VERSION)" + fi + + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + clone_develop + fi + + image_version="0.0.0.0" + if [ -f $SOURCEDIR/friendica/VERSION ]; then + image_version="$(cat $SOURCEDIR/friendica/VERSION)" + else + # no given installation and not using the developer branch => nothing to do + log 'Friendica command '\'$1\'' failed, because of no version found', 0 + exit 1; + fi + + if version_greater "$installed_version" "$image_version"; then + log 'Can'\''t copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ('$image_version')', 0 + exit 1; + fi + + if version_greater "$image_version" "$installed_version"; then + if [ "$(id -u)" = 0 ]; then + rsync_options="-rlDog --chown=www-data:root" + else + rsync_options="-rlD" + fi + + log 'Copying Friendica sources ('$image_version') from '\'$SOURCEDIR'/friendica'\'' to '\'$WORKDIR\' + rsync $rsync_options --delete --exclude=.git --exclude=photo --exclude=proxy --exclude=.htconfig.php $SOURCEDIR/friendica/ $WORKDIR/ + + if [ -f $WORKDIR/view/smarty3 ]; then + chmod 777 $WORKDIR/view/smarty3 + fi + fi +} + +# install Friendica +install() { + if [ -f ${WORKDIR}/VERSION ]; then + # If there is a given installation of Friendica and we should not update it => exit + # We have to explicit update Friendica to avoid breaking something + return + fi + + copy_sources + + log 'Installing Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + + if [ ! -f ${WORKDIR}/.htconfig.php ] && + [ -f ${SOURCEDIR}/config/htconfig.php ] && + "$AUTOINSTALL" == "true"; then + run_as "cp ${SOURCEDIR}/config/htconfig.php ${WORKDIR}/.htconfig.php" + console "autoinstall -f .htconfig.php" + # TODO Workaround because of a strange permission issue + rm -fr ${WORKDIR}/view/smarty3/compiled + fi +} + +update() { + if [ ! -f ${WORKDIR}/VERSION ]; then + # We want to update a given installation + # if there is no installation, exit + return + fi + + copy_sources + + log 'Upgrading Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + console "dbstructure update" +} + +sendmail() { + if [ ! -f /etc/init.d/sendmail ]; then + # If sendmail isn't installed, exit this method + return + fi + + line=$(head -n 1 /etc/hosts) + line2=$(echo $line | awk '{print $2}') + echo "$line $line2.localdomain" >> /etc/hosts + + log 'Starting sendmail for Mail-Support' + nohup /etc/init.d/sendmail start > /dev/null 2>&1 & +} + +if [ $# -eq 0 ]; then + friendica_help + exit 0 +fi + +case "$1" in + install) shift; install $@;; + update) shift; update $@ ;; + console) shift; console $@ ;; + composer) shift; composer $@ ;; + sendmail) shift; sendmail $@ ;; + *) friendica_help ;; +esac diff --git a/2018.08-dev/apache/config/htconfig.php b/2018.08-dev/apache/config/htconfig.php new file mode 100644 index 0000000..c94b94a --- /dev/null +++ b/2018.08-dev/apache/config/htconfig.php @@ -0,0 +1,108 @@ +config['system']['db_charset'] = "utf8mb4"; + +// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". +// It can be changed later and only applies to timestamps for anonymous viewers. + +if (!empty(getenv('TZ'))) { + $default_timezone = getenv('TZ'); +} else { + $default_timezone = 'America/Los_Angeles'; +} + +// Default system language +if (!empty(getenv('LANGUAGE'))) { + $a->config['system']['language'] = getenv('LANGUAGE'); +} else { + $a->config['system']['language'] = 'en'; +} + +// What is your site name? +if (!empty(getenv('SITENAME'))) { + $a->config['sitename'] = getenv('SITENAME'); +} else { + $a->config['sitename'] = "Friendica Social Network"; +} + +// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED. +// Be certain to create your own personal account before setting +// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on +// the registration page. REGISTER_APPROVE requires you set 'admin_email' +// to the email address of an already registered person who can authorise +// and/or approve/deny the request. + +// In order to perform system administration via the admin panel, admin_email +// must precisely match the email address of the person logged in. + +$a->config['register_policy'] = REGISTER_OPEN; +$a->config['register_text'] = ''; +if (!empty(getenv('MAILNAME'))) { + $a->config['admin_email'] = getenv('MAILNAME'); +} else { + $a->config['admin_email'] = ''; +} + +// Maximum size of an imported message, 0 is unlimited + +$a->config['max_import_size'] = 200000; + +// maximum size of uploaded photos + +$a->config['system']['maximagesize'] = 800000; + +// Location of PHP command line processor + +$a->config['php_path'] = 'php'; + +// Server-to-server private message encryption (RINO) is allowed by default. +// set to 0 to disable, 1 to enable + +$a->config['system']['rino_encrypt'] = 1; + +// allowed themes (change this from admin panel after installation) + +$a->config['system']['allowed_themes'] = 'quattro,vier,duepuntozero,smoothly'; + +// default system theme + +$a->config['system']['theme'] = 'vier'; + + +// By default allow pseudonyms + +$a->config['system']['no_regfullname'] = true; + +//Deny public access to the local directory +//$a->config['system']['block_local_dir'] = false; + +// Location of the global directory +$a->config['system']['directory'] = 'https://dir.friendica.social'; + +// Allowed protocols in link URLs; HTTP protocols always are accepted +$a->config['system']['allowed_link_protocols'] = ['ftp', 'ftps', 'mailto', 'cid', 'gopher']; + +// Authentication cookie lifetime, in days +$a->config['system']['auth_cookie_lifetime'] = 7; diff --git a/2018.05-rc/apache/cron.sh b/2018.08-dev/apache/cron.sh similarity index 100% rename from 2018.05-rc/apache/cron.sh rename to 2018.08-dev/apache/cron.sh diff --git a/2018.08-dev/apache/entrypoint.sh b/2018.08-dev/apache/entrypoint.sh new file mode 100644 index 0000000..4a0608c --- /dev/null +++ b/2018.08-dev/apache/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -eu + +friendica install -q +friendica sendmail -q + +exec "$@" \ No newline at end of file diff --git a/2018.05-rc/fpm-alpine/Dockerfile b/2018.08-dev/fpm-alpine/Dockerfile similarity index 96% rename from 2018.05-rc/fpm-alpine/Dockerfile rename to 2018.08-dev/fpm-alpine/Dockerfile index de6e474..d5f02a5 100644 --- a/2018.05-rc/fpm-alpine/Dockerfile +++ b/2018.08-dev/fpm-alpine/Dockerfile @@ -75,8 +75,8 @@ RUN {\ ENV AUTOINSTALL false -ENV FRIENDICA_VERSION 2018.05-rc -ENV FRIENDICA_ADDONS 2018.05-rc +ENV FRIENDICA_VERSION 2018.08-dev +ENV FRIENDICA_ADDONS 2018.08-dev COPY bin/* /usr/local/bin/ diff --git a/2018.08-dev/fpm-alpine/bin/friendica b/2018.08-dev/fpm-alpine/bin/friendica new file mode 100644 index 0000000..da77b29 --- /dev/null +++ b/2018.08-dev/fpm-alpine/bin/friendica @@ -0,0 +1,216 @@ +#!/bin/sh +set -eu + +FRIENDICA_VERSION=${FRIENDICA_VERSION:-develop} +FRIENDICA_ADDONS=${FRIENDICA_ADDONS:-develop} +AUTOINSTALL=${AUTOINSTALL:-false} + +SOURCEDIR=/usr/src +WORKDIR=/var/www/html + +VERBOSE=1 +for arg; do + case "$arg" in + -q|--quit) + if [ "$VERBOSE" -eq "2" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=0 + break + ;; + -v|--verbose) + if [ "$VERBOSE" -eq "0" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=2 + break + ;; + esac +done + +# run an command with the www-data user +run_as() { + if [ "$(id -u)" = 0 ]; then + su - www-data -s /bin/sh -c "$1" + else + sh -c "$1" + fi +} + +# log event +log() { + currVerb=1 + if [ $# -eq 2 ]; then + currVerb=$2 + fi + if [ "$VERBOSE" -ge "$currVerb" ]; then + echo "$1" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 | head -n 1)" != "$1" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + dir="${1:-$SOURCEDIR}" + friendica="${2:-$FRIENDICA_VERSION}" + addons="${3:-$FRIENDICA_ADDONS}" + + friendica_git=$friendica + addons_git=$addons + if echo "$friendica" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "$addons" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + log 'Cloning Friendica '\'$friendica_git\'' with Addons '\'$addons_git\'' into '\'$dir\' + + # Removing the whole directory first + rm -fr $dir/friendica + + sh -c "git clone -q -b ${friendica_git} https://github.com/friendica/friendica ${dir}/friendica" + mkdir $dir/friendica/addon + sh -c "git clone -q -b ${addons_git} https://github.com/friendica/friendica-addons ${dir}/friendica/addon" +} + +# help of this shell script +friendica_help() { + echo "Usage: friendica []" + echo "" + echo "Commands:" + echo " console Executes an command in the Friendica console" + echo " composer Executes the composer.phar executable for Friendica" + echo " install Installs Friendica" + echo " update Updates Friendica" + exit 0 +} + +# executes the Friendica console +console() { + cd $WORKDIR + php $WORKDIR/bin/console.php "$@" +} + +# executes the composer.phar binary of Friendica +composer() { + if [ -f $WORKDIR/bin/composer.phar ]; then + run_as "cd $WORKDIR;$WORKDIR/bin/composer.phar $@ -d $WORKDIR" + fi +} + +copy_sources() { + installed_version="0.0.0.0" + if [ -f ${WORKDIR}/VERSION ]; then + installed_version="$(cat ${WORKDIR}/VERSION)" + fi + + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + clone_develop + fi + + image_version="0.0.0.0" + if [ -f $SOURCEDIR/friendica/VERSION ]; then + image_version="$(cat $SOURCEDIR/friendica/VERSION)" + else + # no given installation and not using the developer branch => nothing to do + log 'Friendica command '\'$1\'' failed, because of no version found', 0 + exit 1; + fi + + if version_greater "$installed_version" "$image_version"; then + log 'Can'\''t copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ('$image_version')', 0 + exit 1; + fi + + if version_greater "$image_version" "$installed_version"; then + if [ "$(id -u)" = 0 ]; then + rsync_options="-rlDog --chown=www-data:root" + else + rsync_options="-rlD" + fi + + log 'Copying Friendica sources ('$image_version') from '\'$SOURCEDIR'/friendica'\'' to '\'$WORKDIR\' + rsync $rsync_options --delete --exclude=.git --exclude=photo --exclude=proxy --exclude=.htconfig.php $SOURCEDIR/friendica/ $WORKDIR/ + + if [ -f $WORKDIR/view/smarty3 ]; then + chmod 777 $WORKDIR/view/smarty3 + fi + fi +} + +# install Friendica +install() { + if [ -f ${WORKDIR}/VERSION ]; then + # If there is a given installation of Friendica and we should not update it => exit + # We have to explicit update Friendica to avoid breaking something + return + fi + + copy_sources + + log 'Installing Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + + if [ ! -f ${WORKDIR}/.htconfig.php ] && + [ -f ${SOURCEDIR}/config/htconfig.php ] && + "$AUTOINSTALL" == "true"; then + run_as "cp ${SOURCEDIR}/config/htconfig.php ${WORKDIR}/.htconfig.php" + console "autoinstall -f .htconfig.php" + # TODO Workaround because of a strange permission issue + rm -fr ${WORKDIR}/view/smarty3/compiled + fi +} + +update() { + if [ ! -f ${WORKDIR}/VERSION ]; then + # We want to update a given installation + # if there is no installation, exit + return + fi + + copy_sources + + log 'Upgrading Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + console "dbstructure update" +} + +sendmail() { + if [ ! -f /etc/init.d/sendmail ]; then + # If sendmail isn't installed, exit this method + return + fi + + line=$(head -n 1 /etc/hosts) + line2=$(echo $line | awk '{print $2}') + echo "$line $line2.localdomain" >> /etc/hosts + + log 'Starting sendmail for Mail-Support' + nohup /etc/init.d/sendmail start > /dev/null 2>&1 & +} + +if [ $# -eq 0 ]; then + friendica_help + exit 0 +fi + +case "$1" in + install) shift; install $@;; + update) shift; update $@ ;; + console) shift; console $@ ;; + composer) shift; composer $@ ;; + sendmail) shift; sendmail $@ ;; + *) friendica_help ;; +esac diff --git a/2018.08-dev/fpm-alpine/config/htconfig.php b/2018.08-dev/fpm-alpine/config/htconfig.php new file mode 100644 index 0000000..c94b94a --- /dev/null +++ b/2018.08-dev/fpm-alpine/config/htconfig.php @@ -0,0 +1,108 @@ +config['system']['db_charset'] = "utf8mb4"; + +// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". +// It can be changed later and only applies to timestamps for anonymous viewers. + +if (!empty(getenv('TZ'))) { + $default_timezone = getenv('TZ'); +} else { + $default_timezone = 'America/Los_Angeles'; +} + +// Default system language +if (!empty(getenv('LANGUAGE'))) { + $a->config['system']['language'] = getenv('LANGUAGE'); +} else { + $a->config['system']['language'] = 'en'; +} + +// What is your site name? +if (!empty(getenv('SITENAME'))) { + $a->config['sitename'] = getenv('SITENAME'); +} else { + $a->config['sitename'] = "Friendica Social Network"; +} + +// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED. +// Be certain to create your own personal account before setting +// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on +// the registration page. REGISTER_APPROVE requires you set 'admin_email' +// to the email address of an already registered person who can authorise +// and/or approve/deny the request. + +// In order to perform system administration via the admin panel, admin_email +// must precisely match the email address of the person logged in. + +$a->config['register_policy'] = REGISTER_OPEN; +$a->config['register_text'] = ''; +if (!empty(getenv('MAILNAME'))) { + $a->config['admin_email'] = getenv('MAILNAME'); +} else { + $a->config['admin_email'] = ''; +} + +// Maximum size of an imported message, 0 is unlimited + +$a->config['max_import_size'] = 200000; + +// maximum size of uploaded photos + +$a->config['system']['maximagesize'] = 800000; + +// Location of PHP command line processor + +$a->config['php_path'] = 'php'; + +// Server-to-server private message encryption (RINO) is allowed by default. +// set to 0 to disable, 1 to enable + +$a->config['system']['rino_encrypt'] = 1; + +// allowed themes (change this from admin panel after installation) + +$a->config['system']['allowed_themes'] = 'quattro,vier,duepuntozero,smoothly'; + +// default system theme + +$a->config['system']['theme'] = 'vier'; + + +// By default allow pseudonyms + +$a->config['system']['no_regfullname'] = true; + +//Deny public access to the local directory +//$a->config['system']['block_local_dir'] = false; + +// Location of the global directory +$a->config['system']['directory'] = 'https://dir.friendica.social'; + +// Allowed protocols in link URLs; HTTP protocols always are accepted +$a->config['system']['allowed_link_protocols'] = ['ftp', 'ftps', 'mailto', 'cid', 'gopher']; + +// Authentication cookie lifetime, in days +$a->config['system']['auth_cookie_lifetime'] = 7; diff --git a/2018.05-rc/fpm-alpine/cron.sh b/2018.08-dev/fpm-alpine/cron.sh similarity index 100% rename from 2018.05-rc/fpm-alpine/cron.sh rename to 2018.08-dev/fpm-alpine/cron.sh diff --git a/2018.08-dev/fpm-alpine/entrypoint.sh b/2018.08-dev/fpm-alpine/entrypoint.sh new file mode 100644 index 0000000..4a0608c --- /dev/null +++ b/2018.08-dev/fpm-alpine/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -eu + +friendica install -q +friendica sendmail -q + +exec "$@" \ No newline at end of file diff --git a/2018.05-rc/fpm/Dockerfile b/2018.08-dev/fpm/Dockerfile similarity index 97% rename from 2018.05-rc/fpm/Dockerfile rename to 2018.08-dev/fpm/Dockerfile index 8e220f7..51d9c32 100644 --- a/2018.05-rc/fpm/Dockerfile +++ b/2018.08-dev/fpm/Dockerfile @@ -86,8 +86,8 @@ RUN {\ ENV AUTOINSTALL false -ENV FRIENDICA_VERSION 2018.05-rc -ENV FRIENDICA_ADDONS 2018.05-rc +ENV FRIENDICA_VERSION 2018.08-dev +ENV FRIENDICA_ADDONS 2018.08-dev COPY bin/* /usr/local/bin/ diff --git a/2018.08-dev/fpm/bin/friendica b/2018.08-dev/fpm/bin/friendica new file mode 100644 index 0000000..da77b29 --- /dev/null +++ b/2018.08-dev/fpm/bin/friendica @@ -0,0 +1,216 @@ +#!/bin/sh +set -eu + +FRIENDICA_VERSION=${FRIENDICA_VERSION:-develop} +FRIENDICA_ADDONS=${FRIENDICA_ADDONS:-develop} +AUTOINSTALL=${AUTOINSTALL:-false} + +SOURCEDIR=/usr/src +WORKDIR=/var/www/html + +VERBOSE=1 +for arg; do + case "$arg" in + -q|--quit) + if [ "$VERBOSE" -eq "2" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=0 + break + ;; + -v|--verbose) + if [ "$VERBOSE" -eq "0" ]; then + echo 'You cannot use verbose and quiet at the same time' + exit 1 + fi + VERBOSE=2 + break + ;; + esac +done + +# run an command with the www-data user +run_as() { + if [ "$(id -u)" = 0 ]; then + su - www-data -s /bin/sh -c "$1" + else + sh -c "$1" + fi +} + +# log event +log() { + currVerb=1 + if [ $# -eq 2 ]; then + currVerb=$2 + fi + if [ "$VERBOSE" -ge "$currVerb" ]; then + echo "$1" + fi +} + +# checks if the the first parameter is greater than the second parameter +version_greater() { + [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 | head -n 1)" != "$1" ] +} + +# clones the whole develop branch (Friendica and Addons) +clone_develop() { + dir="${1:-$SOURCEDIR}" + friendica="${2:-$FRIENDICA_VERSION}" + addons="${3:-$FRIENDICA_ADDONS}" + + friendica_git=$friendica + addons_git=$addons + if echo "$friendica" | grep -Eq '^.*\-dev'; then + friendica_git="develop" + fi + + if echo "$addons" | grep -Eq '^.*\-dev'; then + addons_git="develop" + fi + + log 'Cloning Friendica '\'$friendica_git\'' with Addons '\'$addons_git\'' into '\'$dir\' + + # Removing the whole directory first + rm -fr $dir/friendica + + sh -c "git clone -q -b ${friendica_git} https://github.com/friendica/friendica ${dir}/friendica" + mkdir $dir/friendica/addon + sh -c "git clone -q -b ${addons_git} https://github.com/friendica/friendica-addons ${dir}/friendica/addon" +} + +# help of this shell script +friendica_help() { + echo "Usage: friendica []" + echo "" + echo "Commands:" + echo " console Executes an command in the Friendica console" + echo " composer Executes the composer.phar executable for Friendica" + echo " install Installs Friendica" + echo " update Updates Friendica" + exit 0 +} + +# executes the Friendica console +console() { + cd $WORKDIR + php $WORKDIR/bin/console.php "$@" +} + +# executes the composer.phar binary of Friendica +composer() { + if [ -f $WORKDIR/bin/composer.phar ]; then + run_as "cd $WORKDIR;$WORKDIR/bin/composer.phar $@ -d $WORKDIR" + fi +} + +copy_sources() { + installed_version="0.0.0.0" + if [ -f ${WORKDIR}/VERSION ]; then + installed_version="$(cat ${WORKDIR}/VERSION)" + fi + + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + clone_develop + fi + + image_version="0.0.0.0" + if [ -f $SOURCEDIR/friendica/VERSION ]; then + image_version="$(cat $SOURCEDIR/friendica/VERSION)" + else + # no given installation and not using the developer branch => nothing to do + log 'Friendica command '\'$1\'' failed, because of no version found', 0 + exit 1; + fi + + if version_greater "$installed_version" "$image_version"; then + log 'Can'\''t copy Friendica sources because the version of the data ($installed_version) is higher than the docker image ('$image_version')', 0 + exit 1; + fi + + if version_greater "$image_version" "$installed_version"; then + if [ "$(id -u)" = 0 ]; then + rsync_options="-rlDog --chown=www-data:root" + else + rsync_options="-rlD" + fi + + log 'Copying Friendica sources ('$image_version') from '\'$SOURCEDIR'/friendica'\'' to '\'$WORKDIR\' + rsync $rsync_options --delete --exclude=.git --exclude=photo --exclude=proxy --exclude=.htconfig.php $SOURCEDIR/friendica/ $WORKDIR/ + + if [ -f $WORKDIR/view/smarty3 ]; then + chmod 777 $WORKDIR/view/smarty3 + fi + fi +} + +# install Friendica +install() { + if [ -f ${WORKDIR}/VERSION ]; then + # If there is a given installation of Friendica and we should not update it => exit + # We have to explicit update Friendica to avoid breaking something + return + fi + + copy_sources + + log 'Installing Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + + if [ ! -f ${WORKDIR}/.htconfig.php ] && + [ -f ${SOURCEDIR}/config/htconfig.php ] && + "$AUTOINSTALL" == "true"; then + run_as "cp ${SOURCEDIR}/config/htconfig.php ${WORKDIR}/.htconfig.php" + console "autoinstall -f .htconfig.php" + # TODO Workaround because of a strange permission issue + rm -fr ${WORKDIR}/view/smarty3/compiled + fi +} + +update() { + if [ ! -f ${WORKDIR}/VERSION ]; then + # We want to update a given installation + # if there is no installation, exit + return + fi + + copy_sources + + log 'Upgrading Friendica' + if echo "$FRIENDICA_VERSION" | grep -Eq '^.*(\-dev|-rc)'; then + composer "install" + fi + console "dbstructure update" +} + +sendmail() { + if [ ! -f /etc/init.d/sendmail ]; then + # If sendmail isn't installed, exit this method + return + fi + + line=$(head -n 1 /etc/hosts) + line2=$(echo $line | awk '{print $2}') + echo "$line $line2.localdomain" >> /etc/hosts + + log 'Starting sendmail for Mail-Support' + nohup /etc/init.d/sendmail start > /dev/null 2>&1 & +} + +if [ $# -eq 0 ]; then + friendica_help + exit 0 +fi + +case "$1" in + install) shift; install $@;; + update) shift; update $@ ;; + console) shift; console $@ ;; + composer) shift; composer $@ ;; + sendmail) shift; sendmail $@ ;; + *) friendica_help ;; +esac diff --git a/2018.08-dev/fpm/config/htconfig.php b/2018.08-dev/fpm/config/htconfig.php new file mode 100644 index 0000000..c94b94a --- /dev/null +++ b/2018.08-dev/fpm/config/htconfig.php @@ -0,0 +1,108 @@ +config['system']['db_charset'] = "utf8mb4"; + +// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". +// It can be changed later and only applies to timestamps for anonymous viewers. + +if (!empty(getenv('TZ'))) { + $default_timezone = getenv('TZ'); +} else { + $default_timezone = 'America/Los_Angeles'; +} + +// Default system language +if (!empty(getenv('LANGUAGE'))) { + $a->config['system']['language'] = getenv('LANGUAGE'); +} else { + $a->config['system']['language'] = 'en'; +} + +// What is your site name? +if (!empty(getenv('SITENAME'))) { + $a->config['sitename'] = getenv('SITENAME'); +} else { + $a->config['sitename'] = "Friendica Social Network"; +} + +// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED. +// Be certain to create your own personal account before setting +// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on +// the registration page. REGISTER_APPROVE requires you set 'admin_email' +// to the email address of an already registered person who can authorise +// and/or approve/deny the request. + +// In order to perform system administration via the admin panel, admin_email +// must precisely match the email address of the person logged in. + +$a->config['register_policy'] = REGISTER_OPEN; +$a->config['register_text'] = ''; +if (!empty(getenv('MAILNAME'))) { + $a->config['admin_email'] = getenv('MAILNAME'); +} else { + $a->config['admin_email'] = ''; +} + +// Maximum size of an imported message, 0 is unlimited + +$a->config['max_import_size'] = 200000; + +// maximum size of uploaded photos + +$a->config['system']['maximagesize'] = 800000; + +// Location of PHP command line processor + +$a->config['php_path'] = 'php'; + +// Server-to-server private message encryption (RINO) is allowed by default. +// set to 0 to disable, 1 to enable + +$a->config['system']['rino_encrypt'] = 1; + +// allowed themes (change this from admin panel after installation) + +$a->config['system']['allowed_themes'] = 'quattro,vier,duepuntozero,smoothly'; + +// default system theme + +$a->config['system']['theme'] = 'vier'; + + +// By default allow pseudonyms + +$a->config['system']['no_regfullname'] = true; + +//Deny public access to the local directory +//$a->config['system']['block_local_dir'] = false; + +// Location of the global directory +$a->config['system']['directory'] = 'https://dir.friendica.social'; + +// Allowed protocols in link URLs; HTTP protocols always are accepted +$a->config['system']['allowed_link_protocols'] = ['ftp', 'ftps', 'mailto', 'cid', 'gopher']; + +// Authentication cookie lifetime, in days +$a->config['system']['auth_cookie_lifetime'] = 7; diff --git a/2018.05-rc/fpm/cron.sh b/2018.08-dev/fpm/cron.sh similarity index 100% rename from 2018.05-rc/fpm/cron.sh rename to 2018.08-dev/fpm/cron.sh diff --git a/2018.08-dev/fpm/entrypoint.sh b/2018.08-dev/fpm/entrypoint.sh new file mode 100644 index 0000000..4a0608c --- /dev/null +++ b/2018.08-dev/fpm/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -eu + +friendica install -q +friendica sendmail -q + +exec "$@" \ No newline at end of file diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index ca24b2a..cd4ef60 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -2,9 +2,9 @@ set -Eeuo pipefail declare -A release_channel=( - [production]='2018.05-rc' - [stable]='2018.05-rc' - [latest]='2018.05-rc' + [production]='2018.05' + [stable]='2018.05' + [latest]='2018.05' ) self="$(basename "$BASH_SOURCE")" diff --git a/update.sh b/update.sh index 0910884..7035ba1 100755 --- a/update.sh +++ b/update.sh @@ -28,7 +28,7 @@ declare -A pecl_versions=( ) declare -A install_extras=( - ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica.tar.gz \\\n "https://github.com/friendica/friendica/releases/download/${FRIENDICA_VERSION}/friendica-full-${FRIENDICA_VERSION}.tar.gz"; \\\n tar -xzf friendica.tar.gz -C /usr/src/; \\\n rm friendica.tar.gz; \\\n mv -f /usr/src/friendica-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica_addons.tar.gz \\\n "https://github.com/friendica/friendica-addons/archive/${ADDONS_VERSION}.tar.gz"; \\\n mkdir /usr/src/friendica/addon; \\\n tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica_addons.tar.gz;' + ['stable']='\nRUN set -ex; \\\n curl -fsSL -o friendica.tar.gz \\\n "https://github.com/friendica/friendica/archive/${FRIENDICA_VERSION}.tar.gz"; \\\n tar -xzf friendica.tar.gz -C /usr/src/; \\\n rm friendica.tar.gz; \\\n mv -f /usr/src/friendica-${FRIENDICA_VERSION}/ /usr/src/friendica; \\\n chmod 777 /usr/src/friendica/view/smarty3; \\\n curl -fsSL -o friendica_addons.tar.gz \\\n "https://github.com/friendica/friendica-addons/archive/${FRIENDICA_ADDONS}.tar.gz"; \\\n mkdir /usr/src/friendica/addon; \\\n tar -xzf friendica_addons.tar.gz -C /usr/src/friendica/addon --strip-components=1; \\\n rm friendica_addons.tar.gz;' ['develop']='' ) @@ -44,7 +44,8 @@ variants=( ) versions=( - 2018.05-rc + 2018.05 + 2018.08-dev ) travisEnv=