Skip to content
Commits on Source (10)
ARG MARKETTING_VERSION
ARG PATCH_VERSION
FROM alpine as apps
FROM alpine:3.18 as apps
RUN apk add --no-cache jq curl bash patch
COPY apps /apps
WORKDIR /apps
ARG MINOR_VERSION
RUN ./install.sh
FROM nextcloud:${MARKETTING_VERSION}-fpm-alpine
ARG MINOR_VERSION
ARG PATCH_VERSION
FROM nextcloud:${MINOR_VERSION}-fpm-alpine
ENV VERSION $PATCH_VERSION
ENV VISIO_URL=https://meet.liiib.re
RUN apk add --no-cache patch jq
......@@ -16,7 +15,7 @@ COPY opcache-recommended.ini /usr/local/etc/php/conf.d/opcache.ini
COPY workers.conf /usr/local/etc/php-fpm.d/yy-workers.conf
COPY --chown=www-data:root ./runtime /runtime
COPY --chown=www-data:root config/* /usr/src/nextcloud/config/
COPY --from=apps --chown=www-data:root /apps/* /usr/src/nextcloud/apps/
COPY --from=apps --chown=www-data:root /apps/ /usr/src/nextcloud/apps/
COPY --chown=www-data:root ./apps/liiibre /usr/src/nextcloud/apps/liiibre
COPY --chown=www-data:root ./apps/multioffice /usr/src/nextcloud/apps/multioffice
COPY --chown=www-data:root ./apps/customnav /usr/src/nextcloud/apps/customnav
......@@ -26,13 +25,13 @@ COPY ./img/favicon.ico /usr/src/nextcloud/core/img/favicon.ico
COPY install.sh /install.sh
COPY refresh_config.sh /refresh_config.sh
COPY patches /usr/src/nextcloud/patches
RUN for app in $(cat /usr/src/nextcloud/apps/remove-list);do \
RUN for app in $(cat /usr/src/nextcloud/apps/nextcloud.json | jq -r .remove[]);do \
echo "removing app $app"; \
rm -R /usr/src/nextcloud/apps/$app; \
done; \
touch ./data/.ocdata; \
chown -R www-data:root /usr/src/nextcloud; \
rm /usr/src/nextcloud/apps/remove-list; \
rm /usr/src/nextcloud/apps/nextcloud.json; \
rm -rf custom_apps/; \
rm /usr/src/nextcloud/config/autoconfig.php /usr/src/nextcloud/config/config.sample.php;
RUN for patch in /usr/src/nextcloud/patches/*.diff; \
......
Subproject commit e1d41ee8b697305981f0394b987df1c9c80ea813
Subproject commit 48e1b9f06f59062e507b432f5375feaef880d86b
announcementcenter
appointments
apporder
bookmarks
bruteforcesettings
calendar
collectives
contacts
data_request
deck
drawio
drop_account
electronicsignatures
external
files_automatedtagging
files_linkeditor
files_mindmap
files_rightclick
files_versions_s3
forms
groupfolders
impersonate
keeweb
mail
music
notes
onlyoffice
ownpad
quota_warning
passwords
polls
registration
richdocuments
sharerenamer
side_menu
sociallogin
spreed
tasks
text
theming_customcss
timemanager
timetracker
user_migration
user_saml
#!/bin/bash -eux
curl -Ls https://apps.nextcloud.com/api/v1/platform/${MINOR_VERSION}/apps.json > /tmp/apps.json
function download_link() {
cat /tmp/apps.json | jq '.[] | select(.id == "'$1'") | .releases | map(select(.version|test("alpha|beta|rc|RC|build")|not)) | sort_by(.version | split(".") | map(tonumber))[-1] | .download'
}
links=`cat ./install-list | xargs -I@ bash -c "$(declare -f download_link) ; download_link @ ; " | tr -d '"'`
mkdir -p apps
cd apps
for link in $links; do
echo "downloading $link..."
curl -Ls $link | tar xz
for url in $(cat nextcloud.json | jq -r .apps[]); do
echo Install $url
curl -Ls $url | tar xz
done
curl -Ls "https://hot-objects.liiib.re/artifacts/scimserviceprovider.tar.gz" | tar xz
# Temp fix for https://github.com/owncloud/music/issues/818
cd music && chmod -R 755 dist/ && cd ..
chmod -R 755 ownpad
Subproject commit 4ab9821bfd41d3e01c239b852696dda829d2d7c6
Subproject commit e7c79cf1268b7ef19c07772bcf3619bce014473b
Subproject commit 216c4cfdb5e1cae715354dbcc4f95504931dc311
Subproject commit 57c7b9f51660d4b0751ee36330b474aaa98ff7b8
{
"apps": {
"announcementcenter": "https://github.com/nextcloud-releases/announcementcenter/releases/download/v6.7.0/announcementcenter-v6.7.0.tar.gz",
"appointments": "https://github.com/SergeyMosin/Appointments/raw/v1.15.5/build/artifacts/appstore/appointments.tar.gz",
"bookmarks": "https://github.com/nextcloud/bookmarks/releases/download/v13.1.3/bookmarks-13.1.3.tar.gz",
"calendar": "https://github.com/nextcloud-releases/calendar/releases/download/v4.6.4/calendar-v4.6.4.tar.gz",
"calendar_resource_management": "https://github.com/nextcloud-releases/calendar_resource_management/releases/download/v0.6.0-alpha1/calendar_resource_management-v0.6.0-alpha1.tar.gz",
"collectives": "https://github.com/nextcloud/collectives/releases/download/v2.9.2/collectives-2.9.2.tar.gz",
"contacts": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.1/contacts-v5.5.1.tar.gz",
"data_request": "https://github.com/nextcloud-releases/data_request/releases/download/v1.14.0/data_request-v1.14.0.tar.gz",
"deck": "https://github.com/nextcloud-releases/deck/releases/download/v1.11.3/deck-v1.11.3.tar.gz",
"drawio": "https://github.com/jgraph/drawio-nextcloud/releases/download/v2.1.4/drawio-v2.1.4.tar.gz",
"drop_account": "https://packages.framasoft.org/projects/nextcloud-apps/drop-account/drop_account-2.3.2.tar.gz",
"electronicsignatures": "https://github.com/eideasy/nextcloud-electronic-signatures-plugin/releases/download/v2.0.5/v2.0.5.tar.gz",
"external": "https://github.com/nextcloud-releases/external/releases/download/v5.2.1/external-v5.2.1.tar.gz",
"files_automatedtagging": "https://github.com/nextcloud-releases/files_automatedtagging/releases/download/v1.17.0/files_automatedtagging-v1.17.0.tar.gz",
"files_fulltextsearch": "https://github.com/nextcloud-releases/files_fulltextsearch/releases/download/27.0.1/files_fulltextsearch-27.0.1.tar.gz",
"files_linkeditor": "https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.16/files_linkeditor.tar.gz",
"files_mindmap": "https://github.com/ACTom/files_mindmap/releases/download/v0.0.30/files_mindmap-0.0.30.tar.gz",
"files_versions_s3": "https://github.com/nextcloud-releases/files_versions_s3/releases/download/v0.2.1/files_versions_s3-v0.2.1.tar.gz",
"forms": "https://github.com/nextcloud-releases/forms/releases/download/v3.4.4/forms-v3.4.4.tar.gz",
"fulltextsearch": "https://github.com/nextcloud-releases/fulltextsearch/releases/download/27.0.3/fulltextsearch-27.0.3.tar.gz",
"fulltextsearch_elasticsearch": "https://github.com/nextcloud-releases/fulltextsearch_elasticsearch/releases/download/27.0.5/fulltextsearch_elasticsearch-27.0.5.tar.gz",
"groupfolders": "https://github.com/nextcloud-releases/groupfolders/releases/download/v15.3.4/groupfolders-v15.3.4.tar.gz",
"impersonate": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.14.0/impersonate-v1.14.0.tar.gz",
"keeweb": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.13/keeweb-0.6.13.tar.gz",
"mail": "https://github.com/nextcloud-releases/mail/releases/download/v3.5.5/mail-v3.5.5.tar.gz",
"music": "https://github.com/owncloud/music/releases/download/v1.9.1/music_1.9.1_for_nextcloud.tar.gz",
"notes": "https://github.com/nextcloud-releases/notes/releases/download/v4.9.2/notes.tar.gz",
"onlyoffice": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v8.2.4/onlyoffice.tar.gz",
"ownpad": "https://github.com/otetard/ownpad/releases/download/v0.9.5/ownpad.tar.gz",
"passwords": "https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2023.9.0/passwords.tar.gz",
"polls": "https://github.com/nextcloud/polls/releases/download/v5.4.2/polls.tar.gz",
"quota_warning": "https://github.com/nextcloud-releases/quota_warning/releases/download/v1.18.0/quota_warning-v1.18.0.tar.gz",
"registration": "https://github.com/nextcloud-releases/registration/releases/download/v2.2.0/registration-v2.2.0.tar.gz",
"richdocuments": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.2.4/richdocuments-v8.2.4.tar.gz",
"side_menu": "https://gitnet.fr/attachments/6c94236a-2f34-4a6a-8573-10b7559f2901",
"sociallogin": "https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.3/release.tar.gz",
"spreed": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.5/spreed-v17.1.5.tar.gz",
"tables": "https://github.com/nextcloud-releases/tables/releases/download/v0.6.6/tables-v0.6.6.tar.gz",
"tasks": "https://github.com/nextcloud/tasks/releases/download/v0.15.0/tasks.tar.gz",
"theming_customcss": "https://github.com/juliushaertl/theming_customcss/releases/download/v1.15.0/theming_customcss.tar.gz",
"timemanager": "https://github.com/te-online/nextcloud-app-releases/raw/main/timemanager/v0.3.9/timemanager.tar.gz",
"timetracker": "https://mtier.org/timetracker/timetracker-0.0.80.tar.gz",
"user_migration": "https://github.com/nextcloud-releases/user_migration/releases/download/v4.0.1/user_migration-v4.0.1.tar.gz",
"user_saml": "https://github.com/nextcloud-releases/user_saml/releases/download/v5.2.6/user_saml-v5.2.6.tar.gz"
},
"remove": [
"encryption",
"serverinfo",
"support",
"updatenotification"
],
"version": "27.1.6"
}
\ No newline at end of file
encryption
serverinfo
support
updatenotification
\ No newline at end of file
......@@ -34,4 +34,6 @@ $CONFIG = array (
'log_type_audit' => 'errorlog',
// TODO previews seems to cause some overload, could be re-activated in v26 as there are some optimisations.
'enable_previews' => false,
'auth.bruteforce.protection.enabled' => false,
'ratelimit.protection.enabled' => false,
);
......@@ -31,7 +31,7 @@ sh -c "php /usr/src/nextcloud/occ config:app:set core backgroundjobs_mode --valu
if [ -n "${DISABLE_APPS+x}" ]; then
sh -c "php /usr/src/nextcloud/occ app:disable $(echo $DISABLE_APPS | sed "s/,/ /g")"
fi
/usr/local/bin/php occ app:disable dashboard survey_client user_status weather_status bruteforcesettings nextcloud_announcements password_policy
/usr/local/bin/php occ app:disable dashboard survey_client user_status weather_status bruteforcesettings nextcloud_announcements password_policy federation
/usr/local/bin/php /usr/src/nextcloud/occ app:enable files_versions_s3
# ENABLE_APPS=user_saml,apporder
......
# Waiting a new relaease of OO:https://github.com/ONLYOFFICE/onlyoffice-nextcloud/issues/864
diff --git a/apps/onlyoffice/appinfo/info.xml b/apps/onlyoffice/appinfo/info.xml
index ff5282f..83535e9 100644
--- ./apps/onlyoffice/appinfo/info.xml
+++ ../info.xml
--- apps/onlyoffice/appinfo/info.xml
+++ apps/onlyoffice/appinfo/info.xml
@@ -39,7 +39,4 @@
<commands>
<command>OCA\Onlyoffice\Command\DocumentServer</command>
......@@ -11,3 +9,21 @@ index ff5282f..83535e9 100644
- <job>OCA\Onlyoffice\Cron\EditorsCheck</job>
- </background-jobs>
</info>
# Waiting a new relaease of OO:https://github.com/ONLYOFFICE/onlyoffice-nextcloud/issues/864
--- apps/onlyoffice/lib/AppInfo/Application.php
+++ apps/onlyoffice/lib/AppInfo/Application.php
@@ -267,14 +267,6 @@ class Application extends App implements IBootstrap {
$detector->registerType("docxf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxf");
$detector->registerType("oform", "application/vnd.openxmlformats-officedocument.wordprocessingml.document.oform");
- $checkBackgroundJobs = new JobListController(
- $container->query("AppName"),
- $container->query("Request"),
- $this->appConfig,
- $container->query(IJobList::class)
- );
- $checkBackgroundJobs->checkAllJobs();
-
Hooks::connectHooks();
}
--- apps/notifications/lib/Push.php
+++ apps/notifications/lib/Push.php
@@ -40,6 +40,7 @@ use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IUser;
+use OCP\IUserManager;
use OCP\L10N\IFactory;
use OCP\Notification\IManager as INotificationManager;
use OCP\Notification\INotification;
@@ -72,6 +73,7 @@ class Push {
protected $log;
/** @var OutputInterface */
protected $output;
+ protected IUserManager $userManager;
/**
* @var array
* @psalm-var array<string, list<string>>
@@ -127,7 +129,9 @@ class Push {
ICacheFactory $cacheFactory,
IUserStatusManager $userStatusManager,
IFactory $l10nFactory,
- LoggerInterface $log) {
+ LoggerInterface $log,
+ IUserManager $userManager
+ ) {
$this->db = $connection;
$this->notificationManager = $notificationManager;
$this->config = $config;
@@ -138,6 +142,8 @@ class Push {
$this->userStatusManager = $userStatusManager;
$this->l10nFactory = $l10nFactory;
$this->log = $log;
+ $this->userManager = $userManager;
+ $this->cache = $cacheFactory->createDistributed('notifications');
}
public function setOutput(OutputInterface $output): void {
@@ -466,7 +472,12 @@ class Push {
return;
}
- if (!$this->notificationManager->isFairUseOfFreePushService()) {
+ $pushAllowed = $this->cache->get('push_fair_use');
+ if ($pushAllowed === null) {
+ $pushAllowed = $this->userManager->countSeenUsers() < 1000 ? 'yes' : 'no';
+ $this->cache->set('push_fair_use', $pushAllowed, 3600);
+ }
+ if ($pushAllowed !== 'yes') {
/**
* We want to keep offering our push notification service for free, but large
* users overload our infrastructure. For this reason we have to rate-limit the
--- lib/private/DB/PostgreSqlMigrator.php 2023-06-21 12:07:32.451928839 +0200
+++ ../PostgreSqlMigrator.php 2023-06-21 12:07:28.165261718 +0200
+++ lib/private/DB/PostgreSqlMigrator.php 2023-06-21 12:07:28.165261718 +0200
@@ -42,7 +42,7 @@
}
$fromDefault = $column->fromColumn->getDefault();
......
--- lib/private/Notification/Manager.php
+++ lib/private/Notification/Manager.php
@@ -298,18 +298,7 @@ class Manager implements IManager {
* {@inheritDoc}
*/
public function isFairUseOfFreePushService(): bool {
- $pushAllowed = $this->cache->get('push_fair_use');
- if ($pushAllowed === null) {
- /**
- * We want to keep offering our push notification service for free, but large
- * users overload our infrastructure. For this reason we have to rate-limit the
- * use of push notifications. If you need this feature, consider using Nextcloud Enterprise.
- */
- $isFairUse = $this->subscription->delegateHasValidSubscription() || $this->userManager->countSeenUsers() < 1000;
- $pushAllowed = $isFairUse ? 'yes' : 'no';
- $this->cache->set('push_fair_use', $pushAllowed, 3600);
- }
- return $pushAllowed === 'yes';
+ return true;
}
/**
#!/bin/sh
#!/bin/sh -e
cd /usr/src/nextcloud
......
diff '--color=auto' --text --unified --new-file -r apps/richdocuments/lib/Capabilities.php apps/richdocuments-patched/lib/Capabilities.php
--- apps/richdocuments/lib/Capabilities.php 2021-09-14 20:47:52.000000000 +0200
+++ apps/richdocuments-patched/lib/Capabilities.php 2021-12-13 20:31:39.711896724 +0100
+++ apps/richdocuments/lib/Capabilities.php 2021-12-13 20:31:39.711896724 +0100
@@ -38,30 +38,8 @@
'application/vnd.visio',
'application/vnd.ms-visio.drawing',
......
function prepare_env() {
curl https://api.github.com/repos/nextcloud/server/tags?per_page=50 > /tmp/tags
export MINOR_VERSION=`cat /tmp/tags | jq '.[] | select(.name|test(".rc.")|not) |select(.name|test("v'${MARKETTING_VERSION}'.")).name' | head -n1 | cut -d\" -f2 | cut -c2-`
export MINOR_VERSION=`cat base/apps/nextcloud.json | jq -r .version`
export PATCH_NUMBER=`curl https://raw.githubusercontent.com/nextcloud/server/v${MINOR_VERSION}/version.php | grep '$OC_Version =' | cut -d, -f4 | cut -d] -f1 | xargs`
echo "MARKETTING_VERSION=$MARKETTING_VERSION"
echo "MINOR_VERSION=$MINOR_VERSION"
......
export MARKETTING_VERSION=26
export MARKETTING_VERSION=$(cat base/apps/nextcloud.json | jq -r .version | cut -d. -f1)
import argparse,requests,json,tarfile,os
def get_manifest(path):
with open(path, "r") as file:
return json.load(file)
def save_manifest(path, manifest):
with open(path, "w") as file:
text = json.dumps(manifest, sort_keys=True, indent=2)
file.write(text)
def update_nc(manifest, major=""):
if not major:
major = manifest["version"][:2]
response = requests.get('https://api.github.com/repos/nextcloud/server/releases')
body = response.json()
for version in body:
if (not version["draft"] and not version["prerelease"] and version["name"].startswith("v"+major)):
manifest["version"] = version["name"][1:]
break
def update_apps(manifest):
response = requests.get(f"https://apps.nextcloud.com/api/v1/platform/{manifest['version']}/apps.json")
catalog=response.json()
for app in manifest["apps"]:
for catalog_app in catalog:
if catalog_app["id"] == app:
for release in catalog_app["releases"]:
if release["isNightly"]:
continue
manifest["apps"][app] = release["download"]
break
break
def download_apps(manifest):
for app,url in manifest["apps"].items():
print(f"downloading {app}")
os.system(f'curl -Ls "{url}" | tar xz')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Helper script to manage Nextcloud apps.')
parser.add_argument("--manifest", default="nextcloud.json", help="path of the manifest")
parser.add_argument("--version", help="nextcloud major version")
parser.add_argument("action", choices=["update","download"])
args = parser.parse_args()
manifest = get_manifest(args.manifest)
if args.action == "update":
update_nc(manifest, args.version)
update_apps(manifest)
save_manifest(args.manifest, manifest)
if args.action == "download":
download_apps(manifest)