From 861804fb996b7422a018609d23a52806572e9127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:55:16 +0100 Subject: [PATCH 01/23] Update systemd.service --- conf/systemd.service | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/conf/systemd.service b/conf/systemd.service index 91f3747..c272c23 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -9,8 +9,12 @@ Group=__APP__ WorkingDirectory=__INSTALL_DIR__ Environment=PATH=__ENV_PATH__ Environment=NODE_ENV=production -ExecStart=__YNH_NPM__ start +ExecStart=__YNH_NPM__ __INSTALL_DIR__/server.js Restart=always +RestartSec=2 +StandardOutput=journal +StandardError=journal+console +LimitNOFILE=1000000 # Sandboxing options to harden security # Depending on specificities of your service/app, you may need to tweak these From 97768cb02183087d6b13b164756521bc57f43cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:56:21 +0100 Subject: [PATCH 02/23] Update manifest.toml --- manifest.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.toml b/manifest.toml index 68eff11..4b0d389 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ name = "CryptPad" description.en = "Zero Knowledge realtime collaborative office suite" description.fr = "Suite bureautique chiffrée pour la collaboration en temps réel" -version = "5.3.0~ynh1" +version = "5.6.0~ynh1" maintainers = ["ddataa"] @@ -45,8 +45,8 @@ ram.runtime = "50M" [resources] [resources.sources.main] - url = "https://github.com/xwiki-labs/cryptpad/archive/refs/tags/5.3.0.tar.gz" - sha256 = "470e75203e7080d19482bacf6216c50ec13070fc7d0ff2e4fc855f57668fb919" + url = "https://github.com/xwiki-labs/cryptpad/archive/refs/tags/5.6.0.tar.gz" + sha256 = "85a1b1781df750e250402fb095125e58b329feab4e542abb57fd886a616a0cfb" autoupdate.strategy = "latest_github_tag" [resources.ports] From 763f657c6c96c0c045f8600f360749c57f83d461 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Thu, 21 Dec 2023 09:56:26 +0000 Subject: [PATCH 03/23] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b2d6a07..135881e 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in CryptPad is a collaboration suite that is end-to-end-encrypted and open-source. It is built to enable collaboration, synchronizing changes to documents in real time. Because all data is encrypted, the service and its administrators have no way of seeing the content being edited and stored. -**Shipped version:** 5.3.0~ynh1 +**Shipped version:** 5.6.0~ynh1 **Demo:** https://cryptpad.fr/ diff --git a/README_fr.md b/README_fr.md index 44d02be..fc697f2 100644 --- a/README_fr.md +++ b/README_fr.md @@ -18,7 +18,7 @@ Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) po CryptPad est une suite de collaboration chiffrée de bout en bout et open source. Il est conçu pour permettre la collaboration, en synchronisant les modifications apportées aux documents en temps réel. Étant donné que toutes les données sont chiffrées, le service et ses administrateurs n'ont aucun moyen de voir le contenu modifié et stocké. -**Version incluse :** 5.3.0~ynh1 +**Version incluse :** 5.6.0~ynh1 **Démo :** https://cryptpad.fr/ From 56a414bdd05f85fc2580112097571cd4ce8c2e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:06:07 +0100 Subject: [PATCH 04/23] Update nginx.conf --- conf/nginx.conf | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index f3e1778..0ce86a4 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -4,54 +4,82 @@ set $allowed_origins "https://${sandbox_domain}"; set $api_domain "__DOMAIN__"; set $files_domain "__DOMAIN__"; ssl_ecdh_curve secp384r1; + more_set_headers "Access-Control-Allow-Origin: '${allowed_origins}'"; more_set_headers "Cross-Origin-Resource-Policy: cross-origin"; more_set_headers "Cross-Origin-Embedder-Policy: require-corp"; + root __INSTALL_DIR__/; index index.html; error_page 404 /customize.dist/404.html; -if ($uri ~ ^(\/|.*\/|.*\.html)$) { - set $cacheControl no-cache; -} + if ($args ~ ver=) { set $cacheControl max-age=31536000; } + +if ($uri ~ ^(\/|.*\/|.*\.html)$) { + set $cacheControl no-cache; +} + more_set_headers "Cache-Control: $cacheControl"; + set $styleSrc "'unsafe-inline' 'self' https://${main_domain}"; + set $connectSrc "'self' https://${main_domain} blob: wss://${api_domain} https://${sandbox_domain}"; + set $fontSrc "'self' data: https://${main_domain}"; + set $imgSrc "'self' data: blob: https://${main_domain}"; + set $frameSrc "'self' https://${sandbox_domain} blob:"; + set $mediaSrc "blob:"; + set $childSrc "https://${main_domain}"; + set $workerSrc "'self'"; + set $scriptSrc "'self' resource: https://${main_domain}"; + set $frameAncestors "'self' https://${main_domain}"; + set $unsafe 0; + if ($uri ~ ^\/(sheet|doc|presentation)\/inner.html.*$) { set $unsafe 1; } if ($uri ~ ^\/common\/onlyoffice\/.*\/.*\.html.*$) { set $unsafe 1; } + if ($host != $sandbox_domain) { set $unsafe 0; } + if ($uri ~ ^\/unsafeiframe\/inner\.html.*$) { set $unsafe 1; } + +# privileged contexts allow a few more rights than unprivileged contexts, though limits are still applied if ($unsafe) { set $scriptSrc "'self' 'unsafe-eval' 'unsafe-inline' resource: https://${main_domain}"; } + more_set_headers "Content-Security-Policy: default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors"; + location ^~ /cryptpad_websocket { proxy_pass http://127.0.0.1:__PORT__; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # WebSocket support (nginx 1.4) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } + location ^~ /customize.dist/ { # This is needed in order to prevent infinite recursion between /customize/ and the root } + location ^~ /customize/ { rewrite ^/customize/(.*)$ $1 break; try_files /customize/$uri /customize.dist/$uri; } + location ~ ^/api/.*$ { proxy_pass http://127.0.0.1:__PORT__; proxy_set_header X-Real-IP $remote_addr; @@ -62,9 +90,11 @@ location ~ ^/api/.*$ { proxy_hide_header Cross-Origin-Embedder-Policy; more_set_headers "Cross-Origin-Embedder-Policy: require-corp"; } -location ^~ /blob/ { + +location ~ ^/(blob|block)/.*$ { if ($request_method = 'OPTIONS') { more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; + more_set_headers "Access-Control-Allow-Credentials: true"; more_set_headers "Access-Control-Allow-Methods: 'GET, POST, OPTIONS'"; more_set_headers "Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range"; more_set_headers "Access-Control-Max-Age: 1728000"; @@ -80,12 +110,9 @@ location ^~ /blob/ { more_set_headers "Access-Control-Expose-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; try_files $uri =404; } -location ^~ /block/ { - more_set_headers "X-Content-Type-Options: nosniff"; - more_set_headers "Cache-Control: max-age=0"; - try_files $uri =404; -} -location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc|form|report|convert|checkup)$ { + +location ~ ^/(register|login|recovery|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc|form|report|convert|checkup|diagram)$ { rewrite ^(.*)$ $1/ redirect; } + try_files /customize/www/$uri /customize/www/$uri/index.html /www/$uri /www/$uri/index.html /customize/$uri; From 6b3afbad379c60193ec734346f652751452d2de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:08:45 +0100 Subject: [PATCH 05/23] Update install --- scripts/install | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/install b/scripts/install index 5be5342..d770bbd 100644 --- a/scripts/install +++ b/scripts/install @@ -79,7 +79,7 @@ yunohost service add $app --description="Zero Knowledge realtime collaborative e #================================================= ynh_script_progression --message="Adding a configuration file..." -ynh_add_config --template="../conf/config.js" --destination="$install_dir/config/config.js" +ynh_add_config --template="config.js" --destination="$install_dir/config/config.js" chmod 600 "$install_dir/config/config.js" chown $app "$install_dir/config/config.js" @@ -91,11 +91,11 @@ ynh_script_progression --message="Building $app... (this will take some time and pushd "$install_dir" ynh_use_nodejs - ynh_exec_warn_less npm install --allow-root - ynh_exec_warn_less npm install -g bower - ynh_exec_warn_less bower install --allow-root - ynh_exec_warn_less bower update --allow-root - ynh_exec_warn_less npm run build + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install --allow-root + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install -g bower + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower install --allow-root + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower update --allow-root + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build popd #================================================= From 9920e9e4435b8f999dc938f1188ab5943a13cc28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:14:32 +0100 Subject: [PATCH 06/23] Update _common.sh --- scripts/_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 447f5df..ec0f54e 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -4,7 +4,7 @@ # COMMON VARIABLES #================================================= -nodejs_version="16.14.2" +nodejs_version="20" #================================================= # PERSONAL HELPERS From 7721147a11f1c4e76599013d7bb5ec2f7b6358d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:16:04 +0100 Subject: [PATCH 07/23] Update install --- scripts/install | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/install b/scripts/install index d770bbd..2a05bac 100644 --- a/scripts/install +++ b/scripts/install @@ -91,11 +91,14 @@ ynh_script_progression --message="Building $app... (this will take some time and pushd "$install_dir" ynh_use_nodejs - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install --allow-root - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install -g bower - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower install --allow-root - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower update --allow-root - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run install:components + + #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install --allow-root + #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install -g bower + #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower install --allow-root + #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower update --allow-root + #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build popd #================================================= From 6e2d488d97cf7fd7f989534048da342112557fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:25:01 +0100 Subject: [PATCH 08/23] Update config.js --- conf/config.js | 71 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/conf/config.js b/conf/config.js index 768b0bf..e893bd2 100644 --- a/conf/config.js +++ b/conf/config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors +// +// SPDX-License-Identifier: AGPL-3.0-or-later + /* globals module */ /* DISCLAIMER: @@ -11,7 +15,7 @@ Support requests for such setups should be directed to their authors. If you're having difficulty difficulty configuring your instance - we suggest that you join the project's IRC/Matrix channel. + we suggest that you join the project's Matrix channel. If you don't have any difficulty configuring your instance and you'd like to support us for the work that went into making it pain-free we are quite happy @@ -45,21 +49,13 @@ module.exports = { * In such a case this should be also handled by NGINX, as documented in * cryptpad/docs/example.nginx.conf (see the $main_domain variable) * - * Note: you may provide multiple origins for the purpose of accessing - * a development instance via different URLs, like so: - * httpUnsafeOrigin: 'http://127.0.0.1:3000/ http://localhost:3000/', - * - * Such configuration is not recommended for production instances, - * as the development team does not actively test such configuration - * and it may have unintended consequences in practice. - * */ httpUnsafeOrigin: 'https://__DOMAIN__', /* httpSafeOrigin is the URL that is used for the 'sandbox' described above. * If you're testing or developing with CryptPad on your local machine then * it is appropriate to leave this blank. The default behaviour is to serve - * the main domain over port 3000 and to serve the content over port 3001. + * the main domain over port 3000 and to serve the sandbox content over port 3001. * * This is not appropriate in a production environment where invasive networks * may filter traffic going over abnormal ports. @@ -70,14 +66,17 @@ module.exports = { * This value corresponds to the $sandbox_domain variable * in the example nginx file. * + * Note that in order for the sandboxing system to be effective + * httpSafeOrigin must be different from httpUnsafeOrigin. + * * CUSTOMIZE AND UNCOMMENT THIS FOR PRODUCTION INSTALLATIONS. */ httpSafeOrigin: "https://__SANDBOXDOMAIN__", /* httpAddress specifies the address on which the nodejs server - * should be accessible. By default it will listen on 127.0.0.1 - * (IPv4 localhost on most systems). If you want it to listen on - * all addresses, including IPv6, set this to '::'. + * should be accessible. By default it will listen on localhost + * (IPv4 & IPv6 if enabled). If you want it to listen on + * a specific address, specify it here. e.g '192.168.0.1' * */ httpAddress: '::', @@ -97,6 +96,19 @@ module.exports = { */ httpSafePort: __PORT_PORTI__, +/* Websockets need to be exposed on a separate port from the rest of + * the platform's HTTP traffic. Port 3003 is used by default. + * You can change this to a different port if it is in use by a + * different service, but under most circumstances you can leave this + * commented and it will work. + * + * In production environments, your reverse proxy (usually NGINX) + * will need to forward websocket traffic (/cryptpad_websocket) + * to this port. + * + */ + // websocketPort: 3003, + /* CryptPad will launch a child process for every core available * in order to perform CPU-intensive tasks in parallel. * Some host environments may have a very large number of cores available @@ -105,6 +117,28 @@ module.exports = { */ // maxWorkers: 4, + /* ===================== + * Sessions + * ===================== */ + + /* Accounts can be protected with an OTP (One Time Password) system + * to add a second authentication layer. Such accounts use a session + * with a given lifetime after which they are logged out and need + * to be re-authenticated. You can configure the lifetime of these + * sessions here. + * + * defaults to 7 days + */ + //otpSessionExpiration: 7*24, // hours + + /* Registered users can be forced to protect their account + * with a Multi-factor Authentication (MFA) tool like a TOTP + * authenticator application. + * + * defaults to false + */ + //enforceMFA: false, + /* ===================== * Admin * ===================== */ @@ -115,12 +149,17 @@ module.exports = { * To give access to the admin panel to a user account, just add their public signing * key, which can be found on the settings page for registered users. * Entries should be strings separated by a comma. + * adminKeys: [ + * "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", + * "[cryptpad-user2@my.awesome.website/jA-9c5iNuG7SyxzGCjwJXVnk5NPfAOO8fQuQ0dC83RE=]", + * ] + * */ -/* + adminKeys: [ - "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", + ], -*/ + /* CryptPad's administration panel includes a "support" tab * wherein administrators with a secret key can view messages From 996914dbf2336470c753accbdff8160699bc1fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:30:26 +0100 Subject: [PATCH 09/23] cleaning --- doc/ADMIN.md | 4 ++-- doc/ADMIN_fr.md | 2 +- doc/POST_INSTALL.md | 2 +- doc/POST_UPGRADE.md | 2 +- scripts/change_url | 4 ++-- scripts/install | 8 +------- scripts/remove | 10 +--------- scripts/restore | 1 - scripts/upgrade | 41 +++++++++++++++++------------------------ 9 files changed, 26 insertions(+), 48 deletions(-) diff --git a/doc/ADMIN.md b/doc/ADMIN.md index 697dfd8..15203f5 100644 --- a/doc/ADMIN.md +++ b/doc/ADMIN.md @@ -1,9 +1,9 @@ -We have added the mandatory sandbox domain for you but you still need to configure your DNS and generate Let's Encrypt Certificates for it !! +We have added the mandatory sandbox domain for you but you still need to configure your DNS and generate Let's Encrypt Certificates for it! Once CryptPad is installed, create an account via the Register button on the home page. To make this account an instance administrator: 1. Copy the public key found in User Menu (avatar at the top right) > Settings > Account > Public Signing Key -2. Paste this key in `/var/www/cryptpad/config/config.js` in the following array (uncomment and replace the placeholder): +2. Paste this key in `__INSTALL_DIR__/config/config.js` in the following array (uncomment and replace the placeholder): ``` adminKeys: [ "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", diff --git a/doc/ADMIN_fr.md b/doc/ADMIN_fr.md index b349804..0181737 100644 --- a/doc/ADMIN_fr.md +++ b/doc/ADMIN_fr.md @@ -5,7 +5,7 @@ Nous avons ajouté le domaine obligatoire sandbox pour vous mais vous devez enco Une fois CryptPad installé, créez un compte via le bouton S'inscrire sur la page d'accueil. Pour faire de ce compte un administrateur d'instance : 1. Copiez la clé publique trouvée dans le menu utilisateur (avatar en haut à droite) > Paramètres > Compte > Clé de signature publique -2. Collez cette clé dans `/var/www/cryptpad/config/config.js` dans le tableau suivant (décommentez et remplacez l'espace réservé) : +2. Collez cette clé dans `__INSTALL_DIR__/config/config.js` dans le tableau suivant (décommentez et remplacez l'espace réservé) : ``` adminKeys: [ "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", diff --git a/doc/POST_INSTALL.md b/doc/POST_INSTALL.md index 9c530ab..72e066f 100644 --- a/doc/POST_INSTALL.md +++ b/doc/POST_INSTALL.md @@ -7,7 +7,7 @@ Once CryptPad is installed, create an account via the Sign Up button on the home To make this account an instance administrator: 1. Copy the public key found in User Menu (avatar at the top right) > Settings > Account > Public Signing Key -2. Paste this key in `/var/www/cryptpad/config/config.js` in the following array (uncomment and replace the placeholder): +2. Paste this key in `__INSTALL_DIR__/config/config.js` in the following array (uncomment and replace the placeholder): ``` adminKeys: [ diff --git a/doc/POST_UPGRADE.md b/doc/POST_UPGRADE.md index 6023335..4192e11 100644 --- a/doc/POST_UPGRADE.md +++ b/doc/POST_UPGRADE.md @@ -3,7 +3,7 @@ If not already done, then you can please open CryptPad domain: https://__DOMAIN_ Create an account via the Register button on the home page. To make this account an instance administrator: 1. Copy the public key found in User Menu (avatar at the top right) > Settings > Account > Public Signing Key -2. Paste this key in /var/www/cryptpad/config/config.js in the following array (uncomment and replace the placeholder): +2. Paste this key in `__INSTALL_DIR__/config/config.js` in the following array (uncomment and replace the placeholder): adminKeys: [ "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", ], diff --git a/scripts/change_url b/scripts/change_url index 5d35e69..2e774f4 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -16,7 +16,7 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Stopping a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +ynh_systemd_action --service_name=$app --action="stop" --log_path="systemd" #================================================= # MODIFY URL IN NGINX CONF @@ -32,7 +32,7 @@ ynh_change_url_nginx_config #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index 2a05bac..ea74202 100644 --- a/scripts/install +++ b/scripts/install @@ -87,18 +87,12 @@ chown $app "$install_dir/config/config.js" #================================================= # INSTALL CRYPTPAD #================================================= -ynh_script_progression --message="Building $app... (this will take some time and resources!)" --weight=60 +ynh_script_progression --message="Building $app... (this will take some time and resources!)" --weight=30 pushd "$install_dir" ynh_use_nodejs ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run install:components - - #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install --allow-root - #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm install -g bower - #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower install --allow-root - #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH bower update --allow-root - #ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build popd #================================================= diff --git a/scripts/remove b/scripts/remove index dbc0282..b8c65e8 100644 --- a/scripts/remove +++ b/scripts/remove @@ -16,24 +16,16 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 -# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status $app >/dev/null then ynh_script_progression --message="Removing $app service integration..." --weight=3 yunohost service remove $app fi -# Remove the dedicated systemd config ynh_remove_systemd_config -# Remove the dedicated NGINX config ynh_remove_nginx_config -#================================================= -# REMOVE DEPENDENCIES -#================================================= -ynh_script_progression --message="Removing dependencies..." --weight=3 - ynh_remove_nodejs #================================================= @@ -56,7 +48,7 @@ if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then sandboxdomain=sandbox-$domain fi - ynh_script_progression --message="Removing sandbox domain : $sandboxdomain" --weight=1 + ynh_script_progression --message="Removing sandbox domain: $sandboxdomain" --weight=1 if yunohost domain list | grep -q $sandboxdomain then #if domain exist we remove it diff --git a/scripts/restore b/scripts/restore index b8a266e..717ab6e 100644 --- a/scripts/restore +++ b/scripts/restore @@ -6,7 +6,6 @@ # IMPORT GENERIC HELPERS #================================================= -# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers diff --git a/scripts/upgrade b/scripts/upgrade index e55c805..5a328bd 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -39,7 +39,6 @@ if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=1 - # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" #--keep="config/config.js" chmod -R o-rwx "$install_dir" @@ -69,7 +68,7 @@ if [[ $domain == *".local" ]]; then sandboxdomain=sandbox-$domain fi -ynh_script_progression --message="Setting up sandobx domain: $sandboxdomain" --weight=1 +ynh_script_progression --message="Setting up sandbox domain: $sandboxdomain" --weight=1 # We don't test that in CI if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then @@ -89,6 +88,10 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." - ynh_add_nginx_config env_path="$PATH" +ynh_add_systemd_config + +yunohost service add $app --description="Zero Knowledge realtime collaborative editor" --log="/var/log/$app/$app.log" + #================================================= # UPGRADE DEPENDENCIES #================================================= @@ -96,37 +99,27 @@ ynh_script_progression --message="Upgrading dependencies..." --weight=6 ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version -#================================================= -# INSTALL CRYPTPAD -#================================================= -ynh_script_progression --message="Building $app... (this will take some time and resources!)" --weight=60 - -pushd "$install_dir" - ynh_exec_warn_less npm install --allow-root - ynh_exec_warn_less npm install -g bower - ynh_exec_warn_less bower update --allow-root - ynh_exec_warn_less npm i - ynh_exec_warn_less npm run build -popd - -#================================================= -# CREATE SYSTEMD SERVICE -#================================================= -# Create a dedicated systemd config -ynh_add_systemd_config - -yunohost service add $app --description="Zero Knowledge realtime collaborative editor" --log="/var/log/$app/$app.log" - #================================================= # ADD UPGRADED CONFIG WITH SANDBOX #================================================= ynh_script_progression --message="Updating a configuration file..." --weight=1 -ynh_add_config --template="../conf/config.js" --destination="$install_dir/config/config.js" +ynh_add_config --template="config.js" --destination="$install_dir/config/config.js" chmod 600 "$install_dir/config/config.js" chown $app "$install_dir/config/config.js" +#================================================= +# INSTALL CRYPTPAD +#================================================= +ynh_script_progression --message="Building $app... (this will take some time and resources!)" --weight=30 + +pushd "$install_dir" + ynh_use_nodejs + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run install:components +popd + #================================================= # START SYSTEMD SERVICE #================================================= From 70478203f794cc8a6d3e4c8b96a3a00fc51c50e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:30:36 +0100 Subject: [PATCH 10/23] Update POST_UPGRADE.md --- doc/POST_UPGRADE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/POST_UPGRADE.md b/doc/POST_UPGRADE.md index 4192e11..0b758a9 100644 --- a/doc/POST_UPGRADE.md +++ b/doc/POST_UPGRADE.md @@ -3,7 +3,7 @@ If not already done, then you can please open CryptPad domain: https://__DOMAIN_ Create an account via the Register button on the home page. To make this account an instance administrator: 1. Copy the public key found in User Menu (avatar at the top right) > Settings > Account > Public Signing Key -2. Paste this key in `__INSTALL_DIR__/config/config.js` in the following array (uncomment and replace the placeholder): +2. Paste this key in `__INSTALL_DIR__/config/config.js in the following array (uncomment and replace the placeholder): adminKeys: [ "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", ], From 0ac20ca5172d5562f98bb943f9d919ce956eb157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:17:39 +0100 Subject: [PATCH 11/23] Update upgrade --- scripts/upgrade | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 5a328bd..ef05676 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -79,6 +79,13 @@ if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then fi fi +#================================================= +# UPGRADE DEPENDENCIES +#================================================= +ynh_script_progression --message="Upgrading dependencies..." --weight=6 + +ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version + #================================================= # NGINX CONFIGURATION #================================================= @@ -92,13 +99,6 @@ ynh_add_systemd_config yunohost service add $app --description="Zero Knowledge realtime collaborative editor" --log="/var/log/$app/$app.log" -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_script_progression --message="Upgrading dependencies..." --weight=6 - -ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version - #================================================= # ADD UPGRADED CONFIG WITH SANDBOX #================================================= From 8d7858997b26a69a3f3fbd78c0f895c3816916ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:18:20 +0100 Subject: [PATCH 12/23] Update systemd.service --- conf/systemd.service | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/systemd.service b/conf/systemd.service index c272c23..c12d06e 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -9,7 +9,8 @@ Group=__APP__ WorkingDirectory=__INSTALL_DIR__ Environment=PATH=__ENV_PATH__ Environment=NODE_ENV=production -ExecStart=__YNH_NPM__ __INSTALL_DIR__/server.js +ExecStart=__YNH_NPM__ start +#ExecStart=__YNH_NPM__ __INSTALL_DIR__/server.js Restart=always RestartSec=2 StandardOutput=journal From cd2273b0edb0b975d43536c2906d559ba557588e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:30:04 +0100 Subject: [PATCH 13/23] Update screenshot.png --- doc/screenshots/screenshot.png | Bin 118292 -> 127697 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/screenshots/screenshot.png b/doc/screenshots/screenshot.png index da044656d8ef35bda5240aa4e8155ca07b1c14c3..5cfd3436d75305fc9d6c74db7fb45eb17095243c 100644 GIT binary patch literal 127697 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 L{@&c(Cqn)g8D7^E literal 118292 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 z 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 Date: Thu, 21 Dec 2023 12:38:55 +0100 Subject: [PATCH 14/23] fix --- scripts/install | 1 + scripts/upgrade | 1 + 2 files changed, 2 insertions(+) diff --git a/scripts/install b/scripts/install index ea74202..511851e 100644 --- a/scripts/install +++ b/scripts/install @@ -93,6 +93,7 @@ pushd "$install_dir" ynh_use_nodejs ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run install:components + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build popd #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index ef05676..de80e47 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -118,6 +118,7 @@ pushd "$install_dir" ynh_use_nodejs ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm ci ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run install:components + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH $ynh_npm run build popd #================================================= From 0a8265a7bf31efc2b01debba9a526b6680a1e1aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:54:23 +0100 Subject: [PATCH 15/23] Update nginx.conf --- conf/nginx.conf | 88 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 12 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 0ce86a4..fd10ccf 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -5,51 +5,87 @@ set $api_domain "__DOMAIN__"; set $files_domain "__DOMAIN__"; ssl_ecdh_curve secp384r1; -more_set_headers "Access-Control-Allow-Origin: '${allowed_origins}'"; +add_header "X-XSS-Protection: '1; mode=block'"; +add_header "X-Content-Type-Options: nosniff"; +add_header "Access-Control-Allow-Origin: '${allowed_origins}'"; +add_header "Access-Control-Allow-Credentials: true; +# add_header "X-Frame-Options: 'SAMEORIGIN'"; + +# Enable SharedArrayBuffer in Firefox (for .xlsx export) more_set_headers "Cross-Origin-Resource-Policy: cross-origin"; more_set_headers "Cross-Origin-Embedder-Policy: require-corp"; +# Insert the path to your CryptPad repository root here root __INSTALL_DIR__/; index index.html; error_page 404 /customize.dist/404.html; +# any static assets loaded with "ver=" in their URL will be cached for a year if ($args ~ ver=) { set $cacheControl max-age=31536000; } - +# This rule overrides the above caching directive and makes things somewhat less efficient. +# We had inverted them as an optimization, but Safari 16 introduced a bug that interpreted +# some important headers incorrectly when loading these files from cache. +# This is why we can't have nice things :( if ($uri ~ ^(\/|.*\/|.*\.html)$) { set $cacheControl no-cache; } +# Will not set any header if it is emptystring more_set_headers "Cache-Control: $cacheControl"; +# CSS can be dynamically set inline, loaded from the same domain, or from $main_domain set $styleSrc "'unsafe-inline' 'self' https://${main_domain}"; +# connect-src restricts URLs which can be loaded using script interfaces +# if you have configured your instance to use a dedicated $files_domain or $api_domain +# you will need to add them below as: https://${files_domain} and https://${api_domain} set $connectSrc "'self' https://${main_domain} blob: wss://${api_domain} https://${sandbox_domain}"; +# fonts can be loaded from data-URLs or the main domain set $fontSrc "'self' data: https://${main_domain}"; +# images can be loaded from anywhere, though we'd like to deprecate this as it allows the use of images for tracking set $imgSrc "'self' data: blob: https://${main_domain}"; +# frame-src specifies valid sources for nested browsing contexts. +# this prevents loading any iframes from anywhere other than the sandbox domain set $frameSrc "'self' https://${sandbox_domain} blob:"; +# specifies valid sources for loading media using video or audio set $mediaSrc "blob:"; +# defines valid sources for webworkers and nested browser contexts +# deprecated in favour of worker-src and frame-src set $childSrc "https://${main_domain}"; +# specifies valid sources for Worker, SharedWorker, or ServiceWorker scripts. +# supercedes child-src but is unfortunately not yet universally supported. set $workerSrc "'self'"; +# script-src specifies valid sources for javascript, including inline handlers set $scriptSrc "'self' resource: https://${main_domain}"; +# frame-ancestors specifies which origins can embed your CryptPad instance +# this must include 'self' and your main domain (over HTTPS) in order for CryptPad to work +# if you have enabled remote embedding via the admin panel then this must be more permissive. +# note: cryptpad.fr permits web pages served via https: and vector: (element desktop app) set $frameAncestors "'self' https://${main_domain}"; + # set $frameAncestors "'self' https: vector:"; set $unsafe 0; - +# the following assets are loaded via the sandbox domain +# they unfortunately still require exceptions to the sandboxing to work correctly. if ($uri ~ ^\/(sheet|doc|presentation)\/inner.html.*$) { set $unsafe 1; } if ($uri ~ ^\/common\/onlyoffice\/.*\/.*\.html.*$) { set $unsafe 1; } +# everything except the sandbox domain is a privileged scope, as they might be used to handle keys if ($host != $sandbox_domain) { set $unsafe 0; } - + # this iframe is an exception. Office file formats are converted outside of the sandboxed scope +# because of bugs in Chromium-based browsers that incorrectly ignore headers that are supposed to enable +# the use of some modern APIs that we require when javascript is run in a cross-origin context. +# We've applied other sandboxing techniques to mitigate the risk of running WebAssembly in this privileged scope if ($uri ~ ^\/unsafeiframe\/inner\.html.*$) { set $unsafe 1; } # privileged contexts allow a few more rights than unprivileged contexts, though limits are still applied @@ -57,6 +93,7 @@ if ($unsafe) { set $scriptSrc "'self' 'unsafe-eval' 'unsafe-inline' resource: https://${main_domain}"; } +# Finally, set all the rules you composed above. more_set_headers "Content-Security-Policy: default-src 'none'; child-src $childSrc; worker-src $workerSrc; media-src $mediaSrc; style-src $styleSrc; script-src $scriptSrc; connect-src $connectSrc; font-src $fontSrc; img-src $imgSrc; frame-src $frameSrc; frame-ancestors $frameAncestors"; location ^~ /cryptpad_websocket { @@ -74,23 +111,36 @@ location ^~ /cryptpad_websocket { location ^~ /customize.dist/ { # This is needed in order to prevent infinite recursion between /customize/ and the root } - +# try to load customizeable content via /customize/ and fall back to the default content +# located at /customize.dist/ +# This is what allows you to override behaviour. location ^~ /customize/ { rewrite ^/customize/(.*)$ $1 break; try_files /customize/$uri /customize.dist/$uri; } +# /api/config is loaded once per page load and is used to retrieve +# the caching variable which is applied to every other resource +# which is loaded during that session. location ~ ^/api/.*$ { proxy_pass http://127.0.0.1:__PORT__; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # These settings prevent both NGINX and the API server + # from setting the same headers and creating duplicates proxy_hide_header Cross-Origin-Resource-Policy; more_set_headers "Cross-Origin-Resource-Policy: cross-origin"; proxy_hide_header Cross-Origin-Embedder-Policy; more_set_headers "Cross-Origin-Embedder-Policy: require-corp"; } +# Requests for blobs and blocks are now proxied to the API server +# This simplifies NGINX path configuration in the event they are being hosted in a non-standard location +# or with odd unexpected permissions. Serving blobs in this manner also means that it will be possible to +# enforce access control for them, though this is not yet implemented. +# Access control (via TOTP 2FA) has been added to blocks, so they can be handled with the same directives. location ~ ^/(blob|block)/.*$ { if ($request_method = 'OPTIONS') { more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; @@ -102,17 +152,31 @@ location ~ ^/(blob|block)/.*$ { more_set_headers "Content-Length: 0"; return 204; } - more_set_headers "X-Content-Type-Options: nosniff"; - more_set_headers "Cache-Control: max-age=31536000'"; - more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; - more_set_headers "Access-Control-Allow-Methods: 'GET, POST, OPTIONS'"; - more_set_headers "Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; - more_set_headers "Access-Control-Expose-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; - try_files $uri =404; + # Since we are proxying to the API server these headers can get duplicated + # so we hide them + proxy_hide_header 'X-Content-Type-Options'; + proxy_hide_header 'Access-Control-Allow-Origin'; + proxy_hide_header 'Permissions-Policy'; + proxy_hide_header 'X-XSS-Protection'; + proxy_hide_header 'Cross-Origin-Resource-Policy'; + proxy_hide_header 'Cross-Origin-Embedder-Policy'; + proxy_pass http://127.0.0.1:__PORT__; + + #more_set_headers "X-Content-Type-Options: nosniff"; + #more_set_headers "Cache-Control: max-age=31536000'"; + #more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; + #more_set_headers "Access-Control-Allow-Methods: 'GET, POST, OPTIONS'"; + #more_set_headers "Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; + #more_set_headers "Access-Control-Expose-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; + #try_files $uri =404; } +# The nodejs server has some built-in forwarding rules to prevent +# URLs like /pad from resulting in a 404. This simply adds a trailing slash +# to a variety of applications. location ~ ^/(register|login|recovery|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc|form|report|convert|checkup|diagram)$ { rewrite ^(.*)$ $1/ redirect; } +# Finally, serve anything the above exceptions don't govern. try_files /customize/www/$uri /customize/www/$uri/index.html /www/$uri /www/$uri/index.html /customize/$uri; From be4bffb8db9468aeebb1e2509f8c68ebed8ac11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 12:58:48 +0100 Subject: [PATCH 16/23] cleaning --- conf/systemd.service | 1 - manifest.toml | 3 +++ scripts/install | 6 +++--- scripts/upgrade | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/conf/systemd.service b/conf/systemd.service index c12d06e..b3707d3 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -10,7 +10,6 @@ WorkingDirectory=__INSTALL_DIR__ Environment=PATH=__ENV_PATH__ Environment=NODE_ENV=production ExecStart=__YNH_NPM__ start -#ExecStart=__YNH_NPM__ __INSTALL_DIR__/server.js Restart=always RestartSec=2 StandardOutput=journal diff --git a/manifest.toml b/manifest.toml index 4b0d389..5e6129f 100644 --- a/manifest.toml +++ b/manifest.toml @@ -22,8 +22,11 @@ fund = "https://opencollective.com/cryptpad/contribute?language=fr" yunohost = ">= 11.2" architectures = "all" multi_instance = false + ldap = false + sso = false + disk = "50M" ram.build = "350M" ram.runtime = "50M" diff --git a/scripts/install b/scripts/install index 511851e..8b01d42 100644 --- a/scripts/install +++ b/scripts/install @@ -34,7 +34,7 @@ fi ynh_app_setting_set --app=$app --key=sandboxdomain --value=$sandboxdomain -ynh_script_progression --message="Setting up sandobx domain : $sandboxdomain" --weight=1 +ynh_script_progression --message="Setting up sandbox domain: $sandboxdomain" --weight=1 # We don't test that in CI if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then @@ -77,7 +77,7 @@ yunohost service add $app --description="Zero Knowledge realtime collaborative e #================================================= # ADD A CONFIGURATION #================================================= -ynh_script_progression --message="Adding a configuration file..." +ynh_script_progression --message="Adding a configuration file..." --weight=1 ynh_add_config --template="config.js" --destination="$install_dir/config/config.js" @@ -102,7 +102,7 @@ popd ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" #================================================= # SETUP SSOWAT diff --git a/scripts/upgrade b/scripts/upgrade index de80e47..c9a23e9 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -29,7 +29,7 @@ upgrade_type=$(ynh_check_app_version_changed) #================================================= ynh_script_progression --message="Stopping a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +ynh_systemd_action --service_name=$app --action="stop" --log_path="systemd" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -126,7 +126,7 @@ popd #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" #================================================= # COPY NGINX CONF IN SANDBOX DOMAIN From 821f80b79e1d75a9c685df796ecc2d83e1b974cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:01:37 +0100 Subject: [PATCH 17/23] Update nginx.conf --- conf/nginx.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index fd10ccf..9495bc6 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -5,11 +5,11 @@ set $api_domain "__DOMAIN__"; set $files_domain "__DOMAIN__"; ssl_ecdh_curve secp384r1; -add_header "X-XSS-Protection: '1; mode=block'"; -add_header "X-Content-Type-Options: nosniff"; -add_header "Access-Control-Allow-Origin: '${allowed_origins}'"; -add_header "Access-Control-Allow-Credentials: true; -# add_header "X-Frame-Options: 'SAMEORIGIN'"; +more_set_headers "X-XSS-Protection: 1; mode=block"; +more_set_headers "X-Content-Type-Options: nosniff"; +more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; +more_set_headers "Access-Control-Allow-Credentials: true"; +# more_set_headers "X-Frame-Options: SAMEORIGIN"; # Enable SharedArrayBuffer in Firefox (for .xlsx export) more_set_headers "Cross-Origin-Resource-Policy: cross-origin"; From a03f1ea947d6fb888d5658f3b476b5282c1dd181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:07:41 +0100 Subject: [PATCH 18/23] cleaning --- scripts/change_url | 2 +- scripts/install | 2 +- scripts/restore | 2 +- scripts/upgrade | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/change_url b/scripts/change_url index 2e774f4..3a9b28d 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -32,7 +32,7 @@ ynh_change_url_nginx_config #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index 8b01d42..273c164 100644 --- a/scripts/install +++ b/scripts/install @@ -102,7 +102,7 @@ popd ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" #================================================= # SETUP SSOWAT diff --git a/scripts/restore b/scripts/restore index 717ab6e..c88954b 100644 --- a/scripts/restore +++ b/scripts/restore @@ -55,7 +55,7 @@ yunohost service add $app --description="Zero Knowledge realtime collaborative e #================================================= ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" ynh_systemd_action --service_name=nginx --action=reload diff --git a/scripts/upgrade b/scripts/upgrade index c9a23e9..c7750d4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -126,7 +126,7 @@ popd #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="server available" +ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" #================================================= # COPY NGINX CONF IN SANDBOX DOMAIN From 568f40e489fdc0b76f2d4dd790cd613e04fb55c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:51:02 +0100 Subject: [PATCH 19/23] Update nginx.conf --- conf/nginx.conf | 8 -------- 1 file changed, 8 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 9495bc6..6675b12 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -161,14 +161,6 @@ location ~ ^/(blob|block)/.*$ { proxy_hide_header 'Cross-Origin-Resource-Policy'; proxy_hide_header 'Cross-Origin-Embedder-Policy'; proxy_pass http://127.0.0.1:__PORT__; - - #more_set_headers "X-Content-Type-Options: nosniff"; - #more_set_headers "Cache-Control: max-age=31536000'"; - #more_set_headers "Access-Control-Allow-Origin: ${allowed_origins}"; - #more_set_headers "Access-Control-Allow-Methods: 'GET, POST, OPTIONS'"; - #more_set_headers "Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; - #more_set_headers "Access-Control-Expose-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Content-Length"; - #try_files $uri =404; } # The nodejs server has some built-in forwarding rules to prevent From ba1dc5982b44b2e8e6f107b83c20d5db8a900e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:53:03 +0100 Subject: [PATCH 20/23] Update nginx.conf --- conf/nginx.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 6675b12..c272291 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -130,9 +130,9 @@ location ~ ^/api/.*$ { # These settings prevent both NGINX and the API server # from setting the same headers and creating duplicates - proxy_hide_header Cross-Origin-Resource-Policy; + proxy_hide_header "Cross-Origin-Resource-Policy"; more_set_headers "Cross-Origin-Resource-Policy: cross-origin"; - proxy_hide_header Cross-Origin-Embedder-Policy; + proxy_hide_header "Cross-Origin-Embedder-Policy"; more_set_headers "Cross-Origin-Embedder-Policy: require-corp"; } From 6e0beec7e5e84196bc51eb39e9d03abf96255b95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:55:28 +0100 Subject: [PATCH 21/23] Update tests.toml --- tests.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.toml b/tests.toml index c9ccc0e..0fad002 100644 --- a/tests.toml +++ b/tests.toml @@ -6,6 +6,6 @@ test_format = 1.0 # Commits to test upgrade from # ------------------------------- - test_upgrade_from.2a54cd03.name = "Upgrade from 4.10.0" - test_upgrade_from.1e360398.name = "Upgrade from 4.12.0" + + test_upgrade_from.7a024ca1.name = "Upgrade from 5.3.0" From 950aa01064f75838f3ba167b04a24a4ef3bf1f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:02:48 +0100 Subject: [PATCH 22/23] Update remove --- scripts/remove | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/remove b/scripts/remove index b8c65e8..c2e202f 100644 --- a/scripts/remove +++ b/scripts/remove @@ -51,9 +51,9 @@ if ! [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then ynh_script_progression --message="Removing sandbox domain: $sandboxdomain" --weight=1 if yunohost domain list | grep -q $sandboxdomain - then #if domain exist we remove it + then # if domain exist we remove it yunohost domain remove $sandboxdomain - # we clean the nginx configuration we added + # we clean the NGINX configuration we added ynh_secure_remove --file="/etc/nginx/conf.d/$sandboxdomain.d/" fi fi From 936001e53b95d457faf24dee055dca6e1fa49c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:10:09 +0100 Subject: [PATCH 23/23] Update systemd.service --- conf/systemd.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/systemd.service b/conf/systemd.service index b3707d3..a8498bc 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -1,5 +1,5 @@ [Unit] -Description=CryptPad: Zero Knowledge realtime collaborative editor. +Description=CryptPad: Zero Knowledge realtime collaborative editor After=syslog.target network.target [Service]