Newer
Older
ARG BASE_DIR="/usr/src/nextcloud"
ARG THEME_VERSION="20.1.0-rc3"
ARG THEME_HELPER_VERSION="1.0.0-rc3"
ARG NEWS_VERSION="16.0.1"
ARG NOTES_VERSION="4.1.1"
ARG CONTACTS_VERSION="4.0.2"
ARG CALENDAR_VERSION="2.3.3"
ARG USER_BACKEND_RAW_SQL_VERSION="1.1.0"
RUN mkdir -p /var/www/skeleton/Documents && mkdir -p /var/www/skeleton/Images
COPY custom_entrypoint.sh /
RUN chmod +x /custom_entrypoint.sh
# Install unzip for unzipping artifacts
RUN apt-get update && apt-get install unzip
# Custom apps
RUN curl -fsSL -o news.tar.gz \
"https://github.com/nextcloud/news/releases/download/${NEWS_VERSION}/news.tar.gz" && \
tar -xf news.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm news.tar.gz;
RUN curl -fsSL -o quota_warning.tar.gz \
"https://github.com/nextcloud/quota_warning/releases/download/v${QUOTA_WARN_VERSION}/quota_warning-${QUOTA_WARN_VERSION}.tar.gz" && \
tar -xf quota_warning.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm quota_warning.tar.gz;
RUN curl -fsSL -o notes.tar.gz \
"https://github.com/nextcloud/notes/releases/download/v${NOTES_VERSION}/notes.tar.gz" && \
tar -xf notes.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm notes.tar.gz;
RUN curl -fsSL -o contacts.tar.gz \
"https://github.com/nextcloud-releases/contacts/releases/download/v${CONTACTS_VERSION}/contacts.tar.gz" && \
tar -xf contacts.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm contacts.tar.gz;
RUN curl -fsSL -o calendar.tar.gz \
"https://github.com/nextcloud-releases/calendar/releases/download/v${CALENDAR_VERSION}/calendar.tar.gz" && \
tar -xf calendar.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm calendar.tar.gz;
RUN curl -fsSL -o user_backend_sql_raw.tar.gz \
"https://github.com/PanCakeConnaisseur/user_backend_sql_raw/releases/download/v${USER_BACKEND_RAW_SQL_VERSION}/user_backend_sql_raw.tar.gz" && \
tar -xf user_backend_sql_raw.tar.gz -C ${BASE_DIR}/custom_apps/ && \
rm user_backend_sql_raw.tar.gz;
RUN curl -fsSL -o email-recovery.zip \
"https://gitlab.e.foundation/e/infra/selfhost/nextcloud-apps/email-recovery/-/jobs/${EMAIL_RECOVERY_JOB_ID}/artifacts/download" && \
unzip email-recovery.zip && \
cd dist && tar -xf email-recovery.tar.gz -C ${BASE_DIR}/custom_apps/ && \
Florent VINCENT
committed
rm email-recovery.tar.gz;
RUN curl -fsSL -o rainloop.tar.gz \
"https://gitlab.e.foundation/e/infra/selfhost/nextcloud-apps/rainloop-nextcloud/-/archive/${RAINLOOP_VERSION}-${RAINLOOP_COMMIT_SHA}/rainloop-nextcloud-${RAINLOOP_VERSION}-${RAINLOOP_COMMIT_SHA}.tar.gz" && \
tar -xf rainloop.tar.gz -C ${BASE_DIR}/custom_apps/ && \
mv "${BASE_DIR}/custom_apps/rainloop-nextcloud-${RAINLOOP_VERSION}-${RAINLOOP_COMMIT_SHA}" "${BASE_DIR}/custom_apps/rainloop" && \
rm rainloop.tar.gz;
RUN curl -fsSL -o ecloud_drop_account.tar.gz \
"https://gitlab.e.foundation/e/infra/selfhost/nextcloud-apps/ecloud-drop-account/-/archive/${EDA_TAG}/ecloud-drop-account-${EDA_TAG}.tar.gz" && \
tar -xf ecloud_drop_account.tar.gz -C ${BASE_DIR}/custom_apps/ && \
mv "${BASE_DIR}/custom_apps/ecloud-drop-account-${EDA_TAG}" "${BASE_DIR}/custom_apps/ecloud_drop_account" && \
rm ecloud_drop_account.tar.gz;
RUN curl -fsSL -o ecloud-theme-helper.tar.gz \
"https://gitlab.e.foundation/e/infra/selfhost/nextcloud-apps/ecloud-theme-helper/-/archive/${THEME_HELPER_VERSION}/ecloud-theme-helper-${THEME_HELPER_VERSION}.tar.gz" && \
tar -xf ecloud-theme-helper.tar.gz -C ${BASE_DIR}/custom_apps/ && \
mv "${BASE_DIR}/custom_apps/ecloud-theme-helper-${THEME_HELPER_VERSION}" "${BASE_DIR}/custom_apps/ecloud-theme-helper" && \
rm ecloud-theme-helper.tar.gz;
RUN curl -fsSL -o ecloud-launcher.zip \
"https://gitlab.e.foundation/e/infra/selfhost/nextcloud-apps/launcher/-/jobs/${ECLOUD_LAUNCHER_JOB_ID}/artifacts/download" && \
unzip ecloud-launcher.zip && \
mv dist/ecloud-launcher ${BASE_DIR}/custom_apps/ && \
rm ecloud-launcher.zip;
# Remove unzip when unzipping is done
RUN apt-get -y remove unzip
# force eCloud theme not to be disabled even when there is an upgrade process launched
RUN sed -i "s/\$systemConfig->setValue('theme', '');/\$systemConfig->setValue('theme', 'eCloud');/g" ${BASE_DIR}/lib/base.php
# Patches
RUN patch -u ${BASE_DIR}/core/Controller/LoginController.php -i ${TMP_PATCH_DIR}/002-login-without-domain.patch
RUN patch -u ${BASE_DIR}/core/templates/layout.user.php -i ${TMP_PATCH_DIR}/003-contact-search-removal.patch
RUN patch -u ${BASE_DIR}/core/Controller/ContactsMenuController.php -i ${TMP_PATCH_DIR}/004-contact-search-controller-removal.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/005-autocomplete-user-leak-core.patch
RUN cd ${BASE_DIR}/custom_apps && patch -p0 < ${TMP_PATCH_DIR}/005-autocomplete-user-leak-custom-app.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/006-recovery-email-changes.patch
RUN patch -u ${BASE_DIR}/apps/settings/lib/Settings/Personal/ServerDevNotice.php -i ${TMP_PATCH_DIR}/007-remove-dev-notice.patch
RUN patch -u ${BASE_DIR}/lib/private/Template/IconsCacher.php -i ${TMP_PATCH_DIR}/008-icons-cacher-theme-svgs.patch
RUN patch -u ${BASE_DIR}/core/Controller/SvgController.php -i ${TMP_PATCH_DIR}/008-svg-controller-theme-svgs.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/009-help-links.patch
RUN patch -u ${BASE_DIR}/lib/private/Updater.php -i ${TMP_PATCH_DIR}/010-disable-app-store-upgrade.patch
RUN cd ${BASE_DIR} && patch -p0 < ${TMP_PATCH_DIR}/011-privacy-settings.patch
# autocomplete leak tweak apps frontend with sed, disable group suggestion
RUN cd ${BASE_DIR}/custom_apps/contacts && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/contacts-main.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/"GROUP","INDIVIDUAL"/"INDIVIDUAL"/g' js/calendar.js
RUN cd ${BASE_DIR}/custom_apps/calendar && sed -i 's/anyof/allof/g' js/calendar.js
# Set default widgets to calendar, tasks and notes
RUN sed -i 's/recommendations,spreed,mail,calendar/calendar,tasks,notes/' ${BASE_DIR}/apps/dashboard/lib/Controller/DashboardController.php
# Remove colored background from email template logo
RUN sed -i 's/$this->header, \[$this->themingDefaults->getColorPrimary()/$this->header, \["none"/' ${BASE_DIR}/lib/private/Mail/EMailTemplate.php
"https://gitlab.e.foundation/e/infra/nextcloud-theme/-/archive/${THEME_VERSION}/nextcloud-theme-${THEME_VERSION}.tar.gz" && \
tar -xf eCloud-theme.tar.gz -C /tmp/ && \
mv /tmp/nextcloud-theme-${THEME_VERSION}/ ${BASE_DIR}/themes/eCloud && \
chown -R www-data:www-data ${BASE_DIR}/themes/eCloud/ && \
rm -rf eCloud-theme.tar.gz ${BASE_DIR}/themes/example/
ENTRYPOINT ["/custom_entrypoint.sh"]