mirror of
https://github.com/YunoHost-Apps/discourse_ynh.git
synced 2024-09-03 18:26:18 +02:00
Merge pull request #193 from YunoHost-Apps/v3
This commit is contained in:
commit
5a43775e14
24 changed files with 374 additions and 239 deletions
|
@ -25,7 +25,7 @@ It shall NOT be edited by hand.
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Shipped version:** 2.8.14~ynh5
|
**Shipped version:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Demo:** <https://try.discourse.org>
|
**Demo:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ No se debe editar a mano.
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Versión actual:** 2.8.14~ynh5
|
**Versión actual:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Demo:** <https://try.discourse.org>
|
**Demo:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ EZ editatu eskuz.
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Paketatutako bertsioa:** 2.8.14~ynh5
|
**Paketatutako bertsioa:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Demoa:** <https://try.discourse.org>
|
**Demoa:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Il NE doit PAS être modifié à la main.
|
||||||
Pour en savoir plus sur la philosophie et les objectifs du projet, [visitez **discourse.org**](http://www.discourse.org).
|
Pour en savoir plus sur la philosophie et les objectifs du projet, [visitez **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Version incluse :** 2.8.14~ynh5
|
**Version incluse :** 3.3.1~ynh1
|
||||||
|
|
||||||
**Démo :** <https://try.discourse.org>
|
**Démo :** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ NON debe editarse manualmente.
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Versión proporcionada:** 2.8.14~ynh5
|
**Versión proporcionada:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Demo:** <https://try.discourse.org>
|
**Demo:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Ini TIDAK boleh diedit dengan tangan.
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Versi terkirim:** 2.8.14~ynh5
|
**Versi terkirim:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Demo:** <https://try.discourse.org>
|
**Demo:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**Поставляемая версия:** 2.8.14~ynh5
|
**Поставляемая версия:** 3.3.1~ynh1
|
||||||
|
|
||||||
**Демо-версия:** <https://try.discourse.org>
|
**Демо-версия:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org).
|
||||||
|
|
||||||
|
|
||||||
**分发版本:** 2.8.14~ynh5
|
**分发版本:** 3.3.1~ynh1
|
||||||
|
|
||||||
**演示:** <https://try.discourse.org>
|
**演示:** <https://try.discourse.org>
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
send_timeout 600;
|
send_timeout 600;
|
||||||
|
|
||||||
# path to discourse's public directory
|
# path to discourse's public directory
|
||||||
set $public __INSTALL_DIR__/public/;
|
set $public __INSTALL_DIR__/discourse/public/;
|
||||||
|
|
||||||
# without weak etags we get zero benefit from etags on dynamically compressed content
|
# without weak etags we get zero benefit from etags on dynamically compressed content
|
||||||
# further more etags are based on the file in nginx not sha of data
|
# further more etags are based on the file in nginx not sha of data
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
|
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
|
||||||
location __PATH__/ {
|
location __PATH__/ {
|
||||||
alias __INSTALL_DIR__/public/ ;
|
alias __INSTALL_DIR__/discourse/public/ ;
|
||||||
proxy_hide_header ETag;
|
proxy_hide_header ETag;
|
||||||
|
|
||||||
# auth_basic on;
|
# auth_basic on;
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
proxy_set_header X-Request-Start "t=${msec}";
|
proxy_set_header X-Request-Start "t=${msec}";
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
|
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
|
||||||
proxy_set_header X-Accel-Mapping __INSTALL_DIR__/public/=/downloads/;
|
proxy_set_header X-Accel-Mapping __INSTALL_DIR__/discourse/public/=/downloads/;
|
||||||
expires 1y;
|
expires 1y;
|
||||||
more_set_headers "Cache-Control : public,immutable";
|
more_set_headers "Cache-Control : public,immutable";
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
try_files $uri =404;
|
try_files $uri =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,8 +131,8 @@
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
|
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
|
||||||
proxy_set_header X-Accel-Mapping __INSTALL_DIR__/public/=/downloads/;
|
proxy_set_header X-Accel-Mapping __INSTALL_DIR__/discourse/public/=/downloads/;
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
# proxy_cache one;
|
# proxy_cache one;
|
||||||
proxy_cache_valid 200 301 302 7d;
|
proxy_cache_valid 200 301 302 7d;
|
||||||
proxy_cache_valid any 1m;
|
proxy_cache_valid any 1m;
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@
|
||||||
|
|
||||||
location __PATH__/downloads/ {
|
location __PATH__/downloads/ {
|
||||||
internal;
|
internal;
|
||||||
alias __INSTALL_DIR__/public/ ;
|
alias __INSTALL_DIR__/discourse/public/ ;
|
||||||
}
|
}
|
||||||
|
|
||||||
location @__NAME__ {
|
location @__NAME__ {
|
||||||
|
@ -209,5 +209,5 @@
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
proxy_pass http://unix:__INSTALL_DIR__/tmp/sockets/unicorn.sock;
|
proxy_pass http://unix:__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@ After=postgresql.service
|
||||||
[Service]
|
[Service]
|
||||||
User=__APP__
|
User=__APP__
|
||||||
Group=__APP__
|
Group=__APP__
|
||||||
WorkingDirectory=__INSTALL_DIR__
|
WorkingDirectory=__INSTALL_DIR__/discourse
|
||||||
Environment=__ADDITIONAL_ENV__
|
Environment=__ADDITIONAL_ENV__
|
||||||
Environment=RAILS_ENV=production
|
Environment=RAILS_ENV=production
|
||||||
Environment=UNICORN_SIDEKIQS=1
|
Environment=UNICORN_SIDEKIQS=1
|
||||||
Environment=LD_PRELOAD=__LIBJEMALLOC__
|
Environment=LD_PRELOAD=__LIBJEMALLOC__
|
||||||
Environment=UNICORN_LISTENER=__INSTALL_DIR__/tmp/sockets/unicorn.sock
|
Environment=UNICORN_LISTENER=__INSTALL_DIR__/discourse/tmp/sockets/unicorn.sock
|
||||||
Environment="__YNH_RUBY_LOAD_PATH__"
|
Environment="__YNH_RUBY_LOAD_PATH__:__TOOLS_PREFIX__/bin"
|
||||||
ExecStart=__INSTALL_DIR__/bin/bundle exec unicorn --config config/unicorn.conf.rb -E production
|
ExecStart=__INSTALL_DIR__/discourse/bin/bundle exec unicorn --config config/unicorn.conf.rb -E production
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ When disabling Local Login and other authentication services, clicking the `Logi
|
||||||
### Installing plugins
|
### Installing plugins
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/discourse
|
cd /var/www/discourse/discourse
|
||||||
sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example)
|
sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example)
|
||||||
sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile
|
sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile
|
||||||
systemctl restart discourse
|
systemctl restart discourse
|
||||||
|
|
|
@ -65,7 +65,7 @@ Lors de la désactivation de la connexion locale et d'autres services d'authenti
|
||||||
### Installer des plugins
|
### Installer des plugins
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /var/www/discourse
|
cd /var/www/discourse/discourse
|
||||||
sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example)
|
sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example)
|
||||||
sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile
|
sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile
|
||||||
systemctl restart discourse
|
systemctl restart discourse
|
||||||
|
|
|
@ -7,7 +7,7 @@ name = "Discourse"
|
||||||
description.en = "Discussion platform"
|
description.en = "Discussion platform"
|
||||||
description.fr = "Plateforme de discussion"
|
description.fr = "Plateforme de discussion"
|
||||||
|
|
||||||
version = "2.8.14~ynh5"
|
version = "3.3.1~ynh1"
|
||||||
|
|
||||||
maintainers = ["JimboJoe"]
|
maintainers = ["JimboJoe"]
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ code = "https://github.com/discourse/discourse"
|
||||||
cpe = "cpe:2.3:a:discourse:discourse"
|
cpe = "cpe:2.3:a:discourse:discourse"
|
||||||
|
|
||||||
[integration]
|
[integration]
|
||||||
yunohost = ">=11.2.20"
|
yunohost = ">=12.0.1"
|
||||||
architectures = "all"
|
architectures = "all"
|
||||||
multi_instance = true
|
multi_instance = true
|
||||||
ldap = true
|
ldap = true
|
||||||
|
@ -47,8 +47,8 @@ ram.runtime = "1G"
|
||||||
[resources]
|
[resources]
|
||||||
[resources.sources]
|
[resources.sources]
|
||||||
[resources.sources.main]
|
[resources.sources.main]
|
||||||
url = "https://github.com/discourse/discourse/archive/v2.8.14.tar.gz"
|
url = "https://github.com/discourse/discourse/archive/refs/tags/v3.3.1.tar.gz"
|
||||||
sha256 = "b4b9a2857515ab79b2bc71cc0bdd09f9bf749d506c095b76d86846c9adf62623"
|
sha256 = "910efab3a8e0508507f1cd32e512390272e029f9a8c689a23d52444fc6f1f666"
|
||||||
|
|
||||||
autoupdate.strategy = "latest_github_tag"
|
autoupdate.strategy = "latest_github_tag"
|
||||||
|
|
||||||
|
@ -59,6 +59,25 @@ ram.runtime = "1G"
|
||||||
autoupdate.strategy = "latest_github_tag"
|
autoupdate.strategy = "latest_github_tag"
|
||||||
autoupdate.upstream = "https://github.com/jonmbake/discourse-ldap-auth"
|
autoupdate.upstream = "https://github.com/jonmbake/discourse-ldap-auth"
|
||||||
|
|
||||||
|
[resources.sources.imagemagickv7]
|
||||||
|
url = "https://github.com/ImageMagick/ImageMagick/archive/7.1.0-62.tar.gz"
|
||||||
|
sha256 = "d282117bc6d0e91ad1ad685d096623b96ed8e229f911c891d83277b350ef884a"
|
||||||
|
|
||||||
|
autoupdate.strategy = "latest_github_tag"
|
||||||
|
autoupdate.upstream = "https://github.com/ImageMagick/ImageMagick"
|
||||||
|
|
||||||
|
[resources.sources.oxipng]
|
||||||
|
amd64.url = "https://github.com/shssoichiro/oxipng/releases/download/v9.1.2/oxipng-9.1.2-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
|
amd64.sha256 = "6d47453f623d7d12499e206fe089fe96d76bc6f01a00962b91e4ee3e6845e1a6"
|
||||||
|
|
||||||
|
arm64.url = "https://github.com/shssoichiro/oxipng/releases/download/v9.1.2/oxipng-9.1.2-aarch64-unknown-linux-gnu.tar.gz"
|
||||||
|
arm64.sha256 = "9716b3aba89e7ed9fa9fa07aef4867a7b65a9dd26516e6b16f8ae5a56006cafa"
|
||||||
|
|
||||||
|
autoupdate.strategy = "latest_github_release"
|
||||||
|
autoupdate.upstream = "https://github.com/shssoichiro/oxipng"
|
||||||
|
autoupdate.asset.amd64 = "^oxipng-.*-x86_64-unknown-linux-gnu\\.tar\\.gz$"
|
||||||
|
autoupdate.asset.arm64 = "^oxipng-.*-aarch64-unknown-linux-gnu\\.tar\\.gz$"
|
||||||
|
|
||||||
[resources.system_user]
|
[resources.system_user]
|
||||||
|
|
||||||
[resources.install_dir]
|
[resources.install_dir]
|
||||||
|
@ -73,7 +92,7 @@ ram.runtime = "1G"
|
||||||
"cmake",
|
"cmake",
|
||||||
"g++",
|
"g++",
|
||||||
"gifsicle",
|
"gifsicle",
|
||||||
"imagemagick",
|
# "imagemagick",
|
||||||
"jhead",
|
"jhead",
|
||||||
"jpegoptim",
|
"jpegoptim",
|
||||||
"libapr1-dev",
|
"libapr1-dev",
|
||||||
|
@ -96,6 +115,17 @@ ram.runtime = "1G"
|
||||||
"redis-server",
|
"redis-server",
|
||||||
"zlib1g-dev",
|
"zlib1g-dev",
|
||||||
|
|
||||||
|
# Dependencies of imagemagick
|
||||||
|
"make",
|
||||||
|
"libltdl-dev",
|
||||||
|
"libbz2-dev", "zlib1g-dev", "libfreetype6-dev", "libjpeg-dev", "liblzma-dev",
|
||||||
|
"libwebp-dev", "libtiff-dev", "librsvg2-dev",
|
||||||
|
"libpng16-16", "libpng-dev",
|
||||||
|
"libjpeg62-turbo", "libjpeg62-turbo-dev",
|
||||||
|
"libheif1", "libheif-dev",
|
||||||
|
"libde265-0", "libde265-dev",
|
||||||
|
# ${LIBWEBP}
|
||||||
|
|
||||||
"postgresql",
|
"postgresql",
|
||||||
"postgresql-client",
|
"postgresql-client",
|
||||||
"postgresql-contrib",
|
"postgresql-contrib",
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
# COMMON VARIABLES
|
# COMMON VARIABLES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
ruby_version="3.0.0"
|
ruby_version="3.2"
|
||||||
|
|
||||||
nodejs_version="18"
|
nodejs_version="20"
|
||||||
|
|
||||||
libjemalloc="$(ldconfig -p | grep libjemalloc | awk 'END {print $NF}')"
|
libjemalloc="$(ldconfig -p | grep libjemalloc | awk 'END {print $NF}')"
|
||||||
|
|
||||||
|
@ -14,6 +14,10 @@ libjemalloc="$(ldconfig -p | grep libjemalloc | awk 'END {print $NF}')"
|
||||||
# PERSONAL HELPERS
|
# PERSONAL HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
|
_exec_as_app_with_ruby_node() {
|
||||||
|
ynh_exec_as "$app" -E env PATH="$nodejs_path:$ruby_path:$PATH" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
# Returns true if a swap partition is enabled, false otherwise
|
# Returns true if a swap partition is enabled, false otherwise
|
||||||
# usage: is_swap_present
|
# usage: is_swap_present
|
||||||
is_swap_present() {
|
is_swap_present() {
|
||||||
|
@ -55,6 +59,51 @@ check_memory_requirements_upgrade() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tools_prefix="$install_dir/dependencies"
|
||||||
|
|
||||||
|
install_imagemagick() {
|
||||||
|
# See https://github.com/discourse/discourse_docker/blob/main/image/base/install-imagemagick
|
||||||
|
ynh_setup_source --source_id="imagemagickv7" --dest_dir="$install_dir/imagemagick_source"
|
||||||
|
mkdir -p "$tools_prefix"
|
||||||
|
chown -R "$app:$app" "$install_dir/imagemagick_source" "$tools_prefix"
|
||||||
|
|
||||||
|
pushd "$install_dir/imagemagick_source"
|
||||||
|
ynh_exec_as "$app" CFLAGS="-O2 -I$tools_prefix/include -Wno-deprecated-declarations" \
|
||||||
|
./configure \
|
||||||
|
--prefix="$tools_prefix" \
|
||||||
|
--enable-static \
|
||||||
|
--enable-bounds-checking \
|
||||||
|
--enable-hdri \
|
||||||
|
--enable-hugepages \
|
||||||
|
--with-threads \
|
||||||
|
--with-modules \
|
||||||
|
--with-quantum-depth=16 \
|
||||||
|
--without-magick-plus-plus \
|
||||||
|
--with-bzlib \
|
||||||
|
--with-zlib \
|
||||||
|
--without-autotrace \
|
||||||
|
--with-freetype \
|
||||||
|
--with-jpeg \
|
||||||
|
--without-lcms \
|
||||||
|
--with-lzma \
|
||||||
|
--with-png \
|
||||||
|
--with-tiff \
|
||||||
|
--with-heic \
|
||||||
|
--with-rsvg \
|
||||||
|
--with-webp
|
||||||
|
ynh_exec_as "$app" make all -j"$(nproc)"
|
||||||
|
ynh_exec_as "$app" LIBTOOLFLAGS=-Wnone make install
|
||||||
|
popd
|
||||||
|
ynh_secure_remove --file="$install_dir/imagemagick_source"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_oxipng() {
|
||||||
|
ynh_setup_source --source_id="oxipng" --dest_dir="$install_dir/oxipng_source"
|
||||||
|
mkdir -p "$tools_prefix/bin"
|
||||||
|
mv "$install_dir/oxipng_source/oxipng" "$tools_prefix/bin/oxipng"
|
||||||
|
ynh_secure_remove --file="$install_dir/oxipng_source"
|
||||||
|
}
|
||||||
|
|
||||||
ynh_maintenance_mode_ON () {
|
ynh_maintenance_mode_ON () {
|
||||||
# Create an html to serve as maintenance notice
|
# Create an html to serve as maintenance notice
|
||||||
echo "<!DOCTYPE html>
|
echo "<!DOCTYPE html>
|
||||||
|
|
|
@ -26,7 +26,7 @@ ynh_change_url_nginx_config
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Updating a config file..."
|
ynh_script_progression --message="Updating a config file..."
|
||||||
|
|
||||||
discourse_config_file="$install_dir/config/discourse.conf"
|
discourse_config_file="$install_dir/discourse/config/discourse.conf"
|
||||||
|
|
||||||
old_relative_url_root="${old_path%/}"
|
old_relative_url_root="${old_path%/}"
|
||||||
new_relative_url_root="${new_path%/}"
|
new_relative_url_root="${new_path%/}"
|
||||||
|
@ -46,14 +46,16 @@ UPDATE site_settings SET value = '${new_path}' WHERE name='long_polling_base_url
|
||||||
|
|
||||||
ynh_use_ruby
|
ynh_use_ruby
|
||||||
# Remap URLs in forum posts
|
# Remap URLs in forum posts
|
||||||
ynh_exec_as "$app" --login RAILS_ENV=production bin/bundle exec script/discourse remap "$old_relative_url_root/uploads" "$new_relative_url_root/uploads" <<< "YES
|
_exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec script/discourse remap "$old_relative_url_root/uploads" "$new_relative_url_root/uploads" <<< "YES
|
||||||
# "
|
# "
|
||||||
|
|
||||||
|
pushd "$install_dir/discourse"
|
||||||
# Regenerate assets
|
# Regenerate assets
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/rake assets:precompile
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production bin/rake assets:precompile
|
||||||
|
|
||||||
# Regenerate all forum posts
|
# Regenerate all forum posts
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/rake posts:rebake
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production bin/rake posts:rebake
|
||||||
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# START SYSTEMD SERVICE
|
# START SYSTEMD SERVICE
|
||||||
|
@ -61,7 +63,7 @@ ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/rake post
|
||||||
ynh_script_progression --message="Starting $app's systemd service..."
|
ynh_script_progression --message="Starting $app's systemd service..."
|
||||||
|
|
||||||
# Start a systemd service
|
# Start a systemd service
|
||||||
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/log/unicorn.stderr.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/discourse/log/unicorn.stdout.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# END OF SCRIPT
|
||||||
|
|
|
@ -41,14 +41,18 @@ ynh_app_setting_set --app="$app" --key=unicorn_workers --value=$unicorn_workers
|
||||||
# INSTALL DEPENDENCIES
|
# INSTALL DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Installing Ruby..."
|
ynh_script_progression --message="Installing Ruby..."
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_install_ruby --ruby_version="$ruby_version"
|
ynh_exec_warn_less ynh_install_ruby --ruby_version="$ruby_version"
|
||||||
ynh_use_ruby
|
ynh_use_ruby
|
||||||
|
|
||||||
ynh_script_progression --message="Installing NodeJS..."
|
ynh_script_progression --message="Installing NodeJS..."
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version
|
ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||||
|
|
||||||
|
ynh_script_progression --message="Building and installing ImageMagick v7..."
|
||||||
|
install_imagemagick
|
||||||
|
|
||||||
|
ynh_script_progression --message="Installing Oxipng..."
|
||||||
|
install_oxipng
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE A POSTGRESQL DATABASE
|
# CONFIGURE A POSTGRESQL DATABASE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -73,20 +77,21 @@ if dpkg --print-architecture | grep -q "arm"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir="$install_dir"
|
ynh_setup_source --dest_dir="$install_dir/discourse"
|
||||||
|
|
||||||
# Install LDAP plugin
|
# Install LDAP plugin
|
||||||
ynh_setup_source --source_id=ldap-auth --dest_dir="$install_dir/plugins/discourse-ldap-auth"
|
# See https://github.com/jonmbake/discourse-ldap-auth/issues/77
|
||||||
|
ynh_setup_source --source_id=ldap-auth --dest_dir="$install_dir/discourse/plugins/ldap"
|
||||||
|
|
||||||
# Add a pids and socket directory for the systemd script.
|
# Add a pids and socket directory for the systemd script.
|
||||||
mkdir -p "$install_dir/tmp/pids"
|
mkdir -p "$install_dir/discourse/tmp/pids"
|
||||||
mkdir -p "$install_dir/tmp/sockets"
|
mkdir -p "$install_dir/discourse/tmp/sockets"
|
||||||
mkdir -p "$install_dir/public/forum"
|
mkdir -p "$install_dir/discourse/public/forum"
|
||||||
|
|
||||||
# Create specific folders and links for subfolder compatibility
|
# Create specific folders and links for subfolder compatibility
|
||||||
# (see: https://meta.discourse.org/t/subfolder-support-with-docker/30507)
|
# (see: https://meta.discourse.org/t/subfolder-support-with-docker/30507)
|
||||||
ln -s "$install_dir/public/uploads" "$install_dir/public/forum/uploads"
|
ln -s "$install_dir/discourse/public/uploads" "$install_dir/discourse/public/forum/uploads"
|
||||||
ln -s "$install_dir/public/backups" "$install_dir/public/forum/backups"
|
ln -s "$install_dir/discourse/public/backups" "$install_dir/discourse/public/forum/backups"
|
||||||
|
|
||||||
chmod -R o-rwx "$install_dir"
|
chmod -R o-rwx "$install_dir"
|
||||||
chown -R "$app:www-data" "$install_dir"
|
chown -R "$app:www-data" "$install_dir"
|
||||||
|
@ -96,53 +101,53 @@ chown -R "$app:www-data" "$install_dir"
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Adding $app's configuration file..."
|
ynh_script_progression --message="Adding $app's configuration file..."
|
||||||
|
|
||||||
ynh_add_config --template="discourse_defaults.conf" --destination="$install_dir/config/discourse.conf"
|
ynh_add_config --template="discourse_defaults.conf" --destination="$install_dir/discourse/config/discourse.conf"
|
||||||
ynh_add_config --template="secrets.yml" --destination="$install_dir/config/secrets.yml"
|
ynh_add_config --template="secrets.yml" --destination="$install_dir/discourse/config/secrets.yml"
|
||||||
ynh_add_config --template="settings.yml" --destination="$install_dir/plugins/discourse-ldap-auth/config/settings.yml"
|
ynh_add_config --template="settings.yml" --destination="$install_dir/discourse/plugins/ldap/config/settings.yml"
|
||||||
|
|
||||||
# Disable svgo worker
|
# Disable svgo worker
|
||||||
echo "svgo: false" | ynh_exec_as "$app" tee "$install_dir/.image_optim.yml" >/dev/null
|
echo "svgo: false" | ynh_exec_as "$app" tee "$install_dir/discourse/.image_optim.yml" >/dev/null
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP UNICORN, A RUBY SERVER
|
# SETUP UNICORN, A RUBY SERVER
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Setting up Unicorn..."
|
ynh_script_progression --message="Setting up Unicorn..."
|
||||||
|
|
||||||
pushd "$install_dir"
|
|
||||||
# Install bundler, a gems installer
|
|
||||||
ynh_gem install bundler
|
|
||||||
# Install without documentation
|
|
||||||
echo "gem: --no-ri --no-rdoc" | ynh_exec_as "$app" tee "$install_dir/.gemrc" >/dev/null
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Specific actions on ARM architecture
|
|
||||||
if dpkg --print-architecture | grep -q "arm"; then
|
|
||||||
# Define the platform specifically to retrieve binaries
|
|
||||||
# for libv8 because it currently doesn't compile on ARM devices
|
|
||||||
ynh_exec_as "$app" --login bin/bundle config specific_platform arm-linux
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
ynh_exec_as "$app" --login bin/bundle config set path 'vendor/bundle'
|
|
||||||
ynh_exec_as "$app" --login bin/bundle config set with 'development'
|
|
||||||
ynh_exec_as "$app" --login MAKEFLAGS=-j2 bin/bundle install --jobs 2
|
|
||||||
|
|
||||||
# On ARM architecture, replace bundled libpsl by system native libpsl
|
# On ARM architecture, replace bundled libpsl by system native libpsl
|
||||||
# because the provided binary isn't compatible
|
# because the provided binary isn't compatible
|
||||||
if dpkg --print-architecture | grep -q "arm"; then
|
if dpkg --print-architecture | grep -q "arm"; then
|
||||||
(
|
(
|
||||||
cd "$install_dir/vendor/bundle/ruby"/*/"gems/mini_suffix-*/vendor"
|
cd "$install_dir/discourse/vendor/bundle/ruby"/*/"gems/mini_suffix-*/vendor"
|
||||||
rm libpsl.so
|
rm libpsl.so
|
||||||
ln -s "$(ldconfig -p | grep libpsl | awk 'END {print $NF}')" libpsl.so
|
ln -s "$(ldconfig -p | grep libpsl | awk 'END {print $NF}')" libpsl.so
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pushd "$install_dir"
|
pushd "$install_dir/discourse"
|
||||||
|
# Install bundler, a gems installer
|
||||||
|
ynh_gem install bundler
|
||||||
|
# Install without documentation
|
||||||
|
echo "gem: --no-ri --no-rdoc" | ynh_exec_as "$app" tee "$install_dir/.gemrc" >/dev/null
|
||||||
|
|
||||||
|
# Specific actions on ARM architecture
|
||||||
|
if dpkg --print-architecture | grep -q "arm"; then
|
||||||
|
# Define the platform specifically to retrieve binaries
|
||||||
|
# for libv8 because it currently doesn't compile on ARM devices
|
||||||
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
|
||||||
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set without test development
|
||||||
|
_exec_as_app_with_ruby_node MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd "$install_dir/discourse"
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
ynh_npm install --location=global terser
|
ynh_npm install --location=global terser
|
||||||
ynh_npm install --location=global uglify-js
|
ynh_npm install --location=global uglify-js
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn install --production --frozen-lockfile
|
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn install --frozen-lockfile
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn cache clean
|
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn cache clean
|
||||||
popd
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -150,8 +155,10 @@ popd
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Preparing the database..."
|
ynh_script_progression --message="Preparing the database..."
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/bundle exec rake db:migrate
|
pushd "$install_dir/discourse"
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/bundle exec rake themes:update assets:precompile
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
|
||||||
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
|
||||||
|
popd
|
||||||
|
|
||||||
# Set default data (especially to have correct image URLs for subfolder install)
|
# Set default data (especially to have correct image URLs for subfolder install)
|
||||||
ynh_add_config --template="provisioning.sql" --destination="$install_dir/provisioning.sql"
|
ynh_add_config --template="provisioning.sql" --destination="$install_dir/provisioning.sql"
|
||||||
|
@ -163,11 +170,13 @@ ynh_secure_remove --file="$install_dir/provisioning.sql"
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Creating Discourse admin user..."
|
ynh_script_progression --message="Creating Discourse admin user..."
|
||||||
|
|
||||||
ynh_exec_as "$app" --login RAILS_ENV=production bin/rake admin:create <<< "$admin_mail
|
pushd "$install_dir/discourse"
|
||||||
|
_exec_as_app_with_ruby_node RAILS_ENV=production bin/rake admin:create <<< "$admin_mail
|
||||||
$admin_pwd
|
$admin_pwd
|
||||||
$admin_pwd
|
$admin_pwd
|
||||||
y
|
y
|
||||||
"
|
"
|
||||||
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE PLUGINS
|
# CONFIGURE PLUGINS
|
||||||
|
@ -177,7 +186,7 @@ ynh_script_progression --message="Configuring plugins..."
|
||||||
# Patch ldap-auth plugin dependency (omniauth-ldap) to fix it when using domain subfolder
|
# Patch ldap-auth plugin dependency (omniauth-ldap) to fix it when using domain subfolder
|
||||||
# (Can only do that now because we are patching dependencies which have just been downloaded)
|
# (Can only do that now because we are patching dependencies which have just been downloaded)
|
||||||
# Patch applied: https://github.com/omniauth/omniauth-ldap/pull/16
|
# Patch applied: https://github.com/omniauth/omniauth-ldap/pull/16
|
||||||
patch -p1 -d "$install_dir/plugins/discourse-ldap-auth/gems/$ruby_version/gems/omniauth-ldap"*/ \
|
patch -p1 -d "$install_dir/discourse/plugins/ldap/gems/$ruby_version/gems/omniauth-ldap"*/ \
|
||||||
< "../conf/ldap-auth-fix-subfolder.patch"
|
< "../conf/ldap-auth-fix-subfolder.patch"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -197,13 +206,13 @@ ynh_store_file_checksum --file="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
additional_env="UNICORN_WORKERS=$unicorn_workers"
|
additional_env="UNICORN_WORKERS=$unicorn_workers"
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
yunohost service add "$app" --log "$install_dir/log/unicorn.stderr.log" "$install_dir/log/unicorn.stdout.log" "$install_dir/log/production.log"
|
yunohost service add "$app" --log "$install_dir/discourse/log/unicorn.stderr.log" "$install_dir/discourse/log/unicorn.stdout.log" "$install_dir/discourse/log/production.log"
|
||||||
|
|
||||||
|
|
||||||
# Use logrotate to manage application logfile(s)
|
# Use logrotate to manage application logfile(s)
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/unicorn.stderr.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/unicorn.stderr.log"
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/unicorn.stdout.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/unicorn.stdout.log"
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/production.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/production.log"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# START SYSTEMD SERVICE
|
# START SYSTEMD SERVICE
|
||||||
|
@ -211,7 +220,7 @@ ynh_use_logrotate --logfile="$install_dir/log/production.log"
|
||||||
ynh_script_progression --message="Starting $app's systemd service..."
|
ynh_script_progression --message="Starting $app's systemd service..."
|
||||||
|
|
||||||
# Start a systemd service
|
# Start a systemd service
|
||||||
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/log/unicorn.stderr.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/discourse/log/unicorn.stdout.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# END OF SCRIPT
|
# END OF SCRIPT
|
||||||
|
|
|
@ -48,7 +48,7 @@ ynh_psql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name"
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reinstall Bundle Gem..."
|
ynh_script_progression --message="Reinstall Bundle Gem..."
|
||||||
|
|
||||||
pushd "$install_dir"
|
pushd "$install_dir/discourse"
|
||||||
ynh_gem install bundler
|
ynh_gem install bundler
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
|
||||||
systemctl enable "$app.service" --quiet
|
systemctl enable "$app.service" --quiet
|
||||||
yunohost service add "$app" --log "$install_dir/log/unicorn.stderr.log" "$install_dir/log/unicorn.stdout.log" "$install_dir/log/production.log"
|
yunohost service add "$app" --log "$install_dir/discourse/log/unicorn.stderr.log" "$install_dir/discourse/log/unicorn.stdout.log" "$install_dir/discourse/log/production.log"
|
||||||
|
|
||||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1
|
ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1
|
||||||
|
|
||||||
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/log/unicorn.stderr.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/discourse/log/unicorn.stdout.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
||||||
|
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ ynh_maintenance_mode_ON
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Stopping a systemd service..."
|
ynh_script_progression --message="Stopping a systemd service..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name="$app" --action="stop" --log_path="$install_dir/log/unicorn.stderr.log"
|
ynh_systemd_action --service_name="$app" --action="stop" --log_path="$install_dir/discourse/log/unicorn.stdout.log"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# ENSURE DOWNWARD COMPATIBILITY
|
# ENSURE DOWNWARD COMPATIBILITY
|
||||||
|
@ -51,6 +51,18 @@ if [ -z "$unicorn_workers" ]; then
|
||||||
ynh_app_setting_set --app="$app" --key="unicorn_workers" --value="$unicorn_workers"
|
ynh_app_setting_set --app="$app" --key="unicorn_workers" --value="$unicorn_workers"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -f "$install_dir/tmp/sockets/unicorn.sock" ]; then
|
||||||
|
# Move sources into the discourse subdir.
|
||||||
|
mkdir -p "$install_dir/__new__"
|
||||||
|
find "$install_dir" -mindepth 1 -maxdepth 1 -not -name "__new__" -print0 | xargs -0 mv -t "$install_dir/__new__"
|
||||||
|
mv "$install_dir/__new__" "$install_dir/discourse"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# See https://github.com/jonmbake/discourse-ldap-auth/issues/77
|
||||||
|
if [ -d "$install_dir/discourse/plugins/discourse-ldap-auth" ]; then
|
||||||
|
mv "$install_dir/discourse/plugins/discourse-ldap-auth" "$install_dir/discourse/plugins/ldap"
|
||||||
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# UPGRADING DEPENDENCIES
|
# UPGRADING DEPENDENCIES
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -60,6 +72,11 @@ ynh_exec_warn_less ynh_install_ruby --ruby_version="$ruby_version"
|
||||||
ynh_script_progression --message="Upgrading NodeJS..."
|
ynh_script_progression --message="Upgrading NodeJS..."
|
||||||
ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version
|
ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version
|
||||||
|
|
||||||
|
ynh_script_progression --message="Building and upgrading ImageMagick v7..."
|
||||||
|
install_imagemagick
|
||||||
|
|
||||||
|
ynh_script_progression --message="Upgrading Oxipng..."
|
||||||
|
install_oxipng
|
||||||
#=================================================
|
#=================================================
|
||||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -75,35 +92,35 @@ if dpkg --print-architecture | grep -q "arm"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Small trick to backup non-core plugins
|
# Small trick to backup non-core plugins
|
||||||
mv "$install_dir/plugins" "$install_dir/plugins_old"
|
mv "$install_dir/discourse/plugins" "$install_dir/discourse/plugins_old"
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 \
|
ynh_setup_source --dest_dir="$install_dir/discourse" --full_replace=1 \
|
||||||
--keep="config/discourse.conf plugins_old public/uploads public/backups log"
|
--keep="config/discourse.conf plugins_old public/uploads public/backups log"
|
||||||
|
|
||||||
# Restore all non-core plugins
|
# Restore all non-core plugins
|
||||||
for plugin_dir in "$install_dir/plugins_old"/*; do
|
for plugin_dir in "$install_dir/discourse/plugins_old"/*; do
|
||||||
plugin_name=$(basename "$plugin_dir")
|
plugin_name=$(basename "$plugin_dir")
|
||||||
if [ ! -d "$install_dir/plugins/$plugin_name" ]; then
|
if [ ! -d "$install_dir/discourse/plugins/$plugin_name" ]; then
|
||||||
mv "$plugin_dir" "$install_dir/plugins/$plugin_name"
|
mv "$plugin_dir" "$install_dir/discourse/plugins/$plugin_name"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
ynh_secure_remove --file="$install_dir/plugins_old"
|
ynh_secure_remove --file="$install_dir/discourse/plugins_old"
|
||||||
|
|
||||||
# Install LDAP plugin
|
# Install LDAP plugin
|
||||||
ynh_setup_source --source_id=ldap-auth --dest_dir="$install_dir/plugins/discourse-ldap-auth" --full_replace=1 \
|
ynh_setup_source --source_id=ldap-auth --dest_dir="$install_dir/discourse/plugins/ldap" --full_replace=1 \
|
||||||
--keep="config/settings.yml"
|
--keep="config/settings.yml"
|
||||||
|
|
||||||
# Add a pids and socket directory for the systemd script.
|
# Add a pids and socket directory for the systemd script.
|
||||||
mkdir -p "$install_dir/tmp/pids"
|
mkdir -p "$install_dir/discourse/tmp/pids"
|
||||||
mkdir -p "$install_dir/tmp/sockets"
|
mkdir -p "$install_dir/discourse/tmp/sockets"
|
||||||
mkdir -p "$install_dir/public/forum"
|
mkdir -p "$install_dir/discourse/public/forum"
|
||||||
|
|
||||||
# Create specific folders and links for subfolder compatibility
|
# Create specific folders and links for subfolder compatibility
|
||||||
# (see: https://meta.discourse.org/t/subfolder-support-with-docker/30507)
|
# (see: https://meta.discourse.org/t/subfolder-support-with-docker/30507)
|
||||||
ln -s "$install_dir/public/uploads" "$install_dir/public/forum/uploads"
|
ln -s "$install_dir/discourse/public/uploads" "$install_dir/discourse/public/forum/uploads"
|
||||||
ln -s "$install_dir/public/backups" "$install_dir/public/forum/backups"
|
ln -s "$install_dir/discourse/public/backups" "$install_dir/discourse/public/forum/backups"
|
||||||
|
|
||||||
# Set permissions to app files
|
# Set permissions to app files
|
||||||
chmod -R o-rwx "$install_dir"
|
chmod -R o-rwx "$install_dir"
|
||||||
|
@ -114,12 +131,12 @@ chown -R "$app:www-data" "$install_dir"
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Updating $app's config file..."
|
ynh_script_progression --message="Updating $app's config file..."
|
||||||
|
|
||||||
ynh_add_config --template="discourse_defaults.conf" --destination="$install_dir/config/discourse.conf"
|
ynh_add_config --template="discourse_defaults.conf" --destination="$install_dir/discourse/config/discourse.conf"
|
||||||
ynh_add_config --template="secrets.yml" --destination="$install_dir/config/secrets.yml"
|
ynh_add_config --template="secrets.yml" --destination="$install_dir/discourse/config/secrets.yml"
|
||||||
ynh_add_config --template="settings.yml" --destination="$install_dir/plugins/discourse-ldap-auth/config/settings.yml"
|
ynh_add_config --template="settings.yml" --destination="$install_dir/discourse/plugins/ldap/config/settings.yml"
|
||||||
|
|
||||||
# Disable svgo worker
|
# Disable svgo worker
|
||||||
echo "svgo: false" | ynh_exec_as "$app" tee "$install_dir/.image_optim.yml" >/dev/null
|
echo "svgo: false" | ynh_exec_as "$app" tee "$install_dir/discourse/.image_optim.yml" >/dev/null
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP UNICORN, A RUBY SERVER
|
# SETUP UNICORN, A RUBY SERVER
|
||||||
|
@ -130,11 +147,11 @@ ynh_script_progression --message="Setting up Unicorn..."
|
||||||
ynh_use_ruby
|
ynh_use_ruby
|
||||||
|
|
||||||
# Make a backup of the original config file if modified
|
# Make a backup of the original config file if modified
|
||||||
unicorn_config_file="$install_dir/config/unicorn.conf.rb"
|
unicorn_config_file="$install_dir/discourse/config/unicorn.conf.rb"
|
||||||
ynh_backup_if_checksum_is_different "$unicorn_config_file"
|
ynh_backup_if_checksum_is_different "$unicorn_config_file"
|
||||||
ynh_store_file_checksum --file="$unicorn_config_file"
|
ynh_store_file_checksum --file="$unicorn_config_file"
|
||||||
|
|
||||||
pushd "$install_dir"
|
pushd "$install_dir/discourse"
|
||||||
# Install bundler, a gems installer
|
# Install bundler, a gems installer
|
||||||
ynh_gem install bundler
|
ynh_gem install bundler
|
||||||
# Install without documentation
|
# Install without documentation
|
||||||
|
@ -145,30 +162,30 @@ popd
|
||||||
if dpkg --print-architecture | grep -q "arm"; then
|
if dpkg --print-architecture | grep -q "arm"; then
|
||||||
# Define the platform specifically to retrieve binaries
|
# Define the platform specifically to retrieve binaries
|
||||||
# for libv8 because it currently doesn't compile on ARM devices
|
# for libv8 because it currently doesn't compile on ARM devices
|
||||||
ynh_exec_as "$app" --login bin/bundle config specific_platform arm-linux
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
ynh_exec_as "$app" --login bin/bundle config set path 'vendor/bundle'
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
|
||||||
ynh_exec_as "$app" --login bin/bundle config set with 'development'
|
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set with 'development'
|
||||||
ynh_exec_as "$app" --login MAKEFLAGS=-j2 bin/bundle install --jobs 2
|
_exec_as_app_with_ruby_node MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
|
||||||
|
|
||||||
# On ARM architecture, replace bundled libpsl by system native libpsl
|
# On ARM architecture, replace bundled libpsl by system native libpsl
|
||||||
# because the provided binary isn't compatible
|
# because the provided binary isn't compatible
|
||||||
if dpkg --print-architecture | grep -q "arm"; then
|
if dpkg --print-architecture | grep -q "arm"; then
|
||||||
(
|
(
|
||||||
cd "$install_dir/vendor/bundle/ruby"/*/"gems/mini_suffix-*/vendor"
|
cd "$install_dir/discourse/vendor/bundle/ruby"/*/"gems/mini_suffix-*/vendor"
|
||||||
rm libpsl.so
|
rm libpsl.so
|
||||||
ln -s "$(ldconfig -p | grep libpsl | awk 'END {print $NF}')" libpsl.so
|
ln -s "$(ldconfig -p | grep libpsl | awk 'END {print $NF}')" libpsl.so
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pushd "$install_dir"
|
pushd "$install_dir/discourse"
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
ynh_npm install --location=global terser
|
ynh_npm install --location=global terser
|
||||||
ynh_npm install --location=global uglify-js
|
ynh_npm install --location=global uglify-js
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn install --production --frozen-lockfile
|
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn install --production --frozen-lockfile
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn cache clean
|
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn cache clean
|
||||||
popd
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -177,8 +194,10 @@ popd
|
||||||
|
|
||||||
ynh_script_progression --message="Preparing the database..."
|
ynh_script_progression --message="Preparing the database..."
|
||||||
|
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/bundle exec rake db:migrate
|
pushd "$install_dir/discourse"
|
||||||
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/bundle exec rake themes:update assets:precompile
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
|
||||||
|
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
|
||||||
|
popd
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# CONFIGURE PLUGINS
|
# CONFIGURE PLUGINS
|
||||||
|
@ -188,7 +207,7 @@ ynh_script_progression --message="Configuring plugins..."
|
||||||
# Patch ldap-auth plugin dependency (omniauth-ldap) to fix it when using domain subfolder
|
# Patch ldap-auth plugin dependency (omniauth-ldap) to fix it when using domain subfolder
|
||||||
# (Can only do that now because we are patching dependencies which have just been downloaded)
|
# (Can only do that now because we are patching dependencies which have just been downloaded)
|
||||||
# Patch applied: https://github.com/omniauth/omniauth-ldap/pull/16
|
# Patch applied: https://github.com/omniauth/omniauth-ldap/pull/16
|
||||||
patch -p1 -d "$install_dir/plugins/discourse-ldap-auth/gems/$ruby_version/gems/omniauth-ldap"*/ \
|
patch -p1 -d "$install_dir/discourse/plugins/ldap/gems/$ruby_version/gems/omniauth-ldap"*/ \
|
||||||
< "../conf/ldap-auth-fix-subfolder.patch"
|
< "../conf/ldap-auth-fix-subfolder.patch"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -208,19 +227,19 @@ ynh_store_file_checksum --file="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
|
||||||
additional_env="UNICORN_WORKERS=$unicorn_workers"
|
additional_env="UNICORN_WORKERS=$unicorn_workers"
|
||||||
ynh_add_systemd_config
|
ynh_add_systemd_config
|
||||||
yunohost service add "$app" --log "$install_dir/log/unicorn.stderr.log" "$install_dir/log/unicorn.stdout.log" "$install_dir/log/production.log"
|
yunohost service add "$app" --log "$install_dir/discourse/log/unicorn.stderr.log" "$install_dir/discourse/log/unicorn.stdout.log" "$install_dir/discourse/log/production.log"
|
||||||
|
|
||||||
# Use logrotate to manage app-specific logfile(s)
|
# Use logrotate to manage app-specific logfile(s)
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/unicorn.stderr.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/unicorn.stderr.log"
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/unicorn.stdout.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/unicorn.stdout.log"
|
||||||
ynh_use_logrotate --logfile="$install_dir/log/production.log"
|
ynh_use_logrotate --logfile="$install_dir/discourse/log/production.log"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# START SYSTEMD SERVICE
|
# START SYSTEMD SERVICE
|
||||||
#=================================================
|
#=================================================
|
||||||
ynh_script_progression --message="Starting $app's systemd service..."
|
ynh_script_progression --message="Starting $app's systemd service..."
|
||||||
|
|
||||||
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/log/unicorn.stderr.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
ynh_systemd_action --service_name="$app" --action="start" --log_path="$install_dir/discourse/log/unicorn.stdout.log" --line_match="INFO -- : worker=$((unicorn_workers-1)) ready"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DISABLE MAINTENANCE MODE
|
# DISABLE MAINTENANCE MODE
|
||||||
|
|
|
@ -1,14 +1,26 @@
|
||||||
|
From 0d5cfdaf5d1b65cff5b2c1bde026dbb9b3351d4f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix@piedallu.me>
|
||||||
|
Date: Fri, 26 Jul 2024 14:15:56 +0200
|
||||||
|
Subject: [PATCH 1/3] Use latest uglify-js
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/tasks/assets.rake | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
|
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
|
||||||
index 4a02d5f1b1..7b47f21658 100644
|
index 96082977..ce59ce85 100644
|
||||||
--- a/lib/tasks/assets.rake
|
--- a/lib/tasks/assets.rake
|
||||||
+++ b/lib/tasks/assets.rake
|
+++ b/lib/tasks/assets.rake
|
||||||
@@ -126,6 +126,9 @@
|
@@ -181,6 +181,9 @@ def compress_ruby(from, to)
|
||||||
data = File.read("#{assets_path}/#{from}")
|
uglified, map =
|
||||||
|
Uglifier.new(
|
||||||
uglified, map = Uglifier.new(comments: :none,
|
comments: :none,
|
||||||
+ harmony: true,
|
+ harmony: true,
|
||||||
+ mangle: false,
|
+ mangle: false,
|
||||||
+ compress: false,
|
+ compress: false,
|
||||||
source_map: {
|
source_map: {
|
||||||
filename: File.basename(from),
|
filename: File.basename(from),
|
||||||
output_filename: File.basename(to)
|
output_filename: File.basename(to),
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
|
|
||||||
index 7b47f21658..ea6d0da2c4 100644
|
|
||||||
--- a/lib/tasks/assets.rake
|
|
||||||
+++ b/lib/tasks/assets.rake
|
|
||||||
@@ -116,9 +116,21 @@ def gzip(path)
|
|
||||||
end
|
|
||||||
|
|
||||||
# different brotli versions use different parameters
|
|
||||||
-def brotli_command(path, max_compress)
|
|
||||||
- compression_quality = max_compress ? "11" : "6"
|
|
||||||
- "brotli -f --quality=#{compression_quality} #{path} --output=#{path}.br"
|
|
||||||
+ver_out, _ver_err, ver_status = Open3.capture3('brotli --version')
|
|
||||||
+if !ver_status.success?
|
|
||||||
+ # old versions of brotli don't respond to --version
|
|
||||||
+ def brotli_command(path, max_compress)
|
|
||||||
+ compression_quality = max_compress ? "11" : "6"
|
|
||||||
+ "brotli --quality 11 --input #{path} --output #{path}.br"
|
|
||||||
+ end
|
|
||||||
+elsif ver_out >= "brotli 1.0.0"
|
|
||||||
+ def brotli_command(path, max_compress)
|
|
||||||
+ compression_quality = max_compress ? "11" : "6"
|
|
||||||
+ "brotli -f --quality=11 #{path} --output=#{path}.br"
|
|
||||||
+ end
|
|
||||||
+else
|
|
||||||
+ # not sure what to do here, not expecting this
|
|
||||||
+ raise "cannot determine brotli version"
|
|
||||||
end
|
|
||||||
|
|
||||||
def brotli(path, max_compress)
|
|
|
@ -1,22 +1,31 @@
|
||||||
diff --git a/lib/discourse.rb b/lib/discourse.rb
|
From 17a2d3241889c117ac5bb15d0609837592b16cb3 Mon Sep 17 00:00:00 2001
|
||||||
index 2b53a91eb3..eec55647d5 100644
|
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix@piedallu.me>
|
||||||
--- a/lib/discourse.rb
|
Date: Fri, 30 Aug 2024 11:50:04 +0200
|
||||||
+++ b/lib/discourse.rb
|
Subject: [PATCH] Fix missing git commands in repository
|
||||||
@@ -439,7 +439,7 @@ module Discourse
|
|
||||||
def self.full_version
|
---
|
||||||
@full_version ||= begin
|
lib/git_utils.rb | 5 +++--
|
||||||
git_cmd = 'git describe --dirty --match "v[0-9]*" 2> /dev/null'
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
- self.try_git(git_cmd, 'unknown')
|
|
||||||
+ self.try_git(git_cmd, Discourse::VERSION::STRING)
|
diff --git a/lib/git_utils.rb b/lib/git_utils.rb
|
||||||
end
|
index fb664fe2..aa81fd2d 100644
|
||||||
|
--- a/lib/git_utils.rb
|
||||||
|
+++ b/lib/git_utils.rb
|
||||||
|
@@ -11,12 +11,13 @@ class GitUtils
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.full_version
|
||||||
|
- self.try_git('git describe --dirty --match "v[0-9]*" 2> /dev/null', "unknown")
|
||||||
|
+ self.try_git('git describe --dirty --match "v[0-9]*" 2> /dev/null', Discourse::VERSION::STRING)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -448,7 +448,7 @@ module Discourse
|
|
||||||
def self.last_commit_date
|
def self.last_commit_date
|
||||||
@last_commit_date ||= begin
|
|
||||||
git_cmd = 'git log -1 --format="%ct"'
|
git_cmd = 'git log -1 --format="%ct"'
|
||||||
- seconds = self.try_git(git_cmd, nil)
|
- seconds = self.try_git(git_cmd, nil)
|
||||||
+ seconds = '1563199245' # Note(decentral1se): Output from actual command in the v2.3.2 branch
|
+ # Note(decentral1se): Output from actual command in the v3.2.4 branch
|
||||||
seconds.nil? ? nil : DateTime.strptime(seconds, '%s')
|
+ seconds = self.try_git(git_cmd, '1721046633')
|
||||||
end
|
seconds.nil? ? nil : DateTime.strptime(seconds, "%s")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -1,8 +1,17 @@
|
||||||
|
From 714ba4449257b3770dfe991b1a19bda0b147d56e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix.piedallu@semtech.com>
|
||||||
|
Date: Fri, 30 Aug 2024 11:52:09 +0200
|
||||||
|
Subject: [PATCH] Fix admin-watched-words-action.js
|
||||||
|
|
||||||
|
---
|
||||||
|
.../admin/addon/controllers/admin-watched-words-action.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
diff --git a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
||||||
index 2b53a91eb3..eec55647d5 100644
|
index d5ad0c49..faeb04ab 100644
|
||||||
--- a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
--- a/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
||||||
+++ b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
+++ b/app/assets/javascripts/admin/addon/controllers/admin-watched-words-action.js
|
||||||
@@ -32,9 +32,9 @@
|
@@ -37,7 +37,7 @@ export default class AdminWatchedWordsActionController extends Controller {
|
||||||
for (const { regexp, word } of words) {
|
for (const { regexp, word } of words) {
|
||||||
try {
|
try {
|
||||||
RegExp(regexp);
|
RegExp(regexp);
|
||||||
|
@ -11,5 +20,6 @@ index 2b53a91eb3..eec55647d5 100644
|
||||||
return I18n.t("admin.watched_words.invalid_regex", { word });
|
return I18n.t("admin.watched_words.invalid_regex", { word });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,25 @@
|
||||||
|
From c4f4fb51b0b12c520bf78870842c4c0034296323 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix.piedallu@semtech.com>
|
||||||
|
Date: Fri, 30 Aug 2024 11:53:46 +0200
|
||||||
|
Subject: [PATCH] Fix download-calendar.js
|
||||||
|
|
||||||
|
---
|
||||||
|
app/assets/javascripts/discourse/app/lib/download-calendar.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/app/assets/javascripts/discourse/app/lib/download-calendar.js b/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
diff --git a/app/assets/javascripts/discourse/app/lib/download-calendar.js b/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
||||||
index 2b53a91eb3..eec55647d5 100644
|
index 3fd2951a..b71e4e09 100644
|
||||||
--- a/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
--- a/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
||||||
+++ b/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
+++ b/app/assets/javascripts/discourse/app/lib/download-calendar.js
|
||||||
@@ -22,7 +22,7 @@
|
@@ -23,7 +23,7 @@ export function downloadCalendar(title, dates, options = {}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function downloadIcs(title, dates) {
|
export function downloadIcs(title, dates, options = {}) {
|
||||||
- const REMOVE_FILE_AFTER = 20_000;
|
- const REMOVE_FILE_AFTER = 20_000;
|
||||||
+ const REMOVE_FILE_AFTER = 20000;
|
+ const REMOVE_FILE_AFTER = 20000;
|
||||||
const file = new File([generateIcsData(title, dates)], {
|
const file = new File([generateIcsData(title, dates, options)], {
|
||||||
type: "text/plain",
|
type: "text/plain",
|
||||||
});
|
});
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,25 @@
|
||||||
|
From c1dc85c042033cd689346d0bf6e747a97f4c4e7e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= <felix.piedallu@semtech.com>
|
||||||
|
Date: Fri, 30 Aug 2024 11:55:03 +0200
|
||||||
|
Subject: [PATCH] Fix uppy-upload.js
|
||||||
|
|
||||||
|
---
|
||||||
|
app/assets/javascripts/discourse/app/mixins/uppy-upload.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/app/assets/javascripts/discourse/app/mixins/uppy-upload.js b/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
diff --git a/app/assets/javascripts/discourse/app/mixins/uppy-upload.js b/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
||||||
index 2b53a91eb3..eec55647d5 100644
|
index ff2a0e95..50be945e 100644
|
||||||
--- a/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
--- a/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
||||||
+++ b/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
+++ b/app/assets/javascripts/discourse/app/mixins/uppy-upload.js
|
||||||
@@ -21,7 +21,7 @@
|
@@ -23,7 +23,7 @@ import { deepMerge } from "discourse-common/lib/object";
|
||||||
import { warn } from "@ember/debug";
|
import { bind, on } from "discourse-common/utils/decorators";
|
||||||
import bootbox from "bootbox";
|
import I18n from "discourse-i18n";
|
||||||
|
|
||||||
-export const HUGE_FILE_THRESHOLD_BYTES = 104_857_600; // 100MB
|
-export const HUGE_FILE_THRESHOLD_BYTES = 104_857_600; // 100MB
|
||||||
+export const HUGE_FILE_THRESHOLD_BYTES = "104_857_600"; // 100MB
|
+export const HUGE_FILE_THRESHOLD_BYTES = "104_857_600"; // 100MB
|
||||||
|
|
||||||
export default Mixin.create(UppyS3Multipart, {
|
export default Mixin.create(UppyS3Multipart, ExtendableUploader, {
|
||||||
uploading: false,
|
dialog: service(),
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue