1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/etherpad_ynh.git synced 2024-09-03 18:36:10 +02:00

Merge pull request #19 from YunoHost-Apps/testing

Testing
This commit is contained in:
Éric Gaspar 2022-03-01 15:35:02 +01:00 committed by GitHub
commit 96b251d694
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 115 additions and 90 deletions

View file

@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.
**Shipped version:** 1.8.16~ynh1
**Shipped version:** 1.8.17~ynh1
**Demo:** https://video.etherpad.com/
@ -28,6 +28,13 @@ Etherpad is a real-time collaborative editor scalable to thousands of simultaneo
## Disclaimers / important information
## Etherpad Lite
This version of Etherpad is installed without plugins and uses Redis as database.
Be aware, Redis database backup and restore is not fully implemented.
If you want to install Etherpad with pugins and mysql database: https://github.com/YunoHost-Apps/etherpad_mypads_ynh",
## Configuration
You can access Etherpad's admin panel at `domain.tld/admin`. The configuration file for Etherpad is at the path `/var/www/etherpad/settings.json`.
@ -37,7 +44,7 @@ You can access Etherpad's admin panel at `domain.tld/admin`. The configuration f
## Documentation and resources
* Official app website: https://etherpad.org/
* Official admin documentation: http://etherpad.org/doc/v1.8.16
* Official admin documentation: http://etherpad.org/doc/v1.8.17
* Upstream app code repository: https://github.com/ether/etherpad-lite
* YunoHost documentation for this app: https://yunohost.org/app_etherpad
* Report a bug: https://github.com/YunoHost-Apps/etherpad_ynh/issues

View file

@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
Etherpad est un éditeur collaboratif en temps réel évolutif pour des milliers d'utilisateurs simultanés en temps réel. Il fournit des capacités complètes d'exportation de données et s'exécute sur votre serveur, sous votre contrôle.
**Version incluse :** 1.8.16~ynh1
**Version incluse :** 1.8.17~ynh1
**Démo :** https://video.etherpad.com/
@ -32,7 +32,7 @@ Vous pouvez accéder au panneau d'administration d'Etherpad à l'adresse `domain
## Documentations et ressources
* Site officiel de l'app : https://etherpad.org/
* Documentation officielle de l'admin : http://etherpad.org/doc/v1.8.16
* Documentation officielle de l'admin : http://etherpad.org/doc/v1.8.17
* Dépôt de code officiel de l'app : https://github.com/ether/etherpad-lite
* Documentation YunoHost pour cette app : https://yunohost.org/app_etherpad
* Signaler un bug : https://github.com/YunoHost-Apps/etherpad_ynh/issues

View file

@ -15,7 +15,7 @@
setup_private=1
setup_public=1
upgrade=1
upgrade=1 from_commit=96653aee9379d579a655777ac274355f4afca61c
#upgrade=1 from_commit=96653aee9379d579a655777ac274355f4afca61c
backup_restore=1
multi_instance=1
change_url=1
@ -24,5 +24,5 @@ Email=
Notification=none
;;; Upgrade options
; commit=96653aee9379d579a655777ac274355f4afca61c
name=Merge pull request #6 from YunoHost-Apps/testing
name=Merge pull request #6
manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=9001&

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://github.com/ether/etherpad-lite/archive/1.8.16.tar.gz
SOURCE_SUM=dfdb60910aa9df85bde8cad8729ef6a33e36014739a3e8ce105f5e96a6b99d8c
SOURCE_URL=https://github.com/ether/etherpad-lite/archive/1.8.17.tar.gz
SOURCE_SUM=3b51eb0259764669dedfb4d13cdbe8d4a2dea37735fe32941aac39b5def9f99b
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true

View file

@ -20,14 +20,11 @@
* https://www.npmjs.com/package/ueberdb2
*/
/* An Example of MySQL Configuration */
"dbType" : "postgres",
"dbType" : "redis",
"dbSettings" : {
"user" : "__DB_NAME__",
"host" : "localhost",
"port" : 5432,
"password": "__DB_PWD__",
"database": "__DB_NAME__"
"host" : "127.0.0.1",
"port" : 6379,
"database": "__REDIS_DB__"
},
/*

View file

@ -17,9 +17,6 @@ location __PATH__/ {
# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# Include SSOWAT user panel.
include conf.d/yunohost_panel.conf.inc;
}
location ~* __PATH__/p/[^/]*(_|%|\*)[^/]*/export/etherpad {

View file

@ -191,7 +191,7 @@
/*
* The default text of a pad
*/
"defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at https:\/\/etherpad.org\n",
"defaultPadText" : "Welcome to Etherpad-lite!\n\nThis version of Etherpad is installed without plugins and uses Redis as database.\nBe aware, Redis database backup and restore is not fully implemented.\n\nIf you are facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/etherpad_ynh",
/*
* Default Pad behavior.

View file

@ -1,3 +1,10 @@
## Etherpad Lite
This version of Etherpad is installed without plugins and uses Redis as database.
Be aware, Redis database backup and restore is not fully implemented.
If you want to install Etherpad with pugins and mysql database: https://github.com/YunoHost-Apps/etherpad_mypads_ynh",
## Configuration
You can access Etherpad's admin panel at `domain.tld/admin`. The configuration file for Etherpad is at the path `/var/www/etherpad/settings.json`.

View file

@ -6,13 +6,13 @@
"en": "Online editor providing collaborative editing in real-time",
"fr": "Éditeur en ligne fournissant l'édition collaborative en temps réel"
},
"version": "1.8.16~ynh1",
"version": "1.8.17~ynh1",
"url": "https://etherpad.org/",
"upstream": {
"license": "Apache-2.0",
"website": "https://etherpad.org/",
"demo": "https://video.etherpad.com/",
"admindoc": "http://etherpad.org/doc/v1.8.16",
"admindoc": "http://etherpad.org/doc/v1.8.17",
"code": "https://github.com/ether/etherpad-lite"
},
"license": "Apache-2.0",
@ -64,7 +64,18 @@
"en": "Choose the application language",
"fr": "Choisissez la langue de l'application"
},
"choices": ["de", "en", "es", "fr", "it"],
"choices": [
"ca",
"de",
"en",
"es",
"fr",
"gl",
"hu",
"it",
"nl",
"pt"
],
"default": "en"
},
{

View file

@ -4,9 +4,6 @@
# COMMON VARIABLES
#=================================================
# dependencies used by the app
pkg_dependencies="postgresql postgresql-contrib"
nodejs_version=16
# Dependencies for AbiWord
@ -26,3 +23,42 @@ libreoffice_app_dependencies="unoconv libreoffice-writer"
#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================
# get the first available redis database
#
# usage: ynh_redis_get_free_db
# | returns: the database number to use
ynh_redis_get_free_db() {
local result max db
result="$(redis-cli INFO keyspace)"
# get the num
max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
db=0
# default Debian setting is 15 databases
for i in $(seq 0 "$max")
do
if ! echo "$result" | grep -q "db$i"
then
db=$i
break 1
fi
db=-1
done
test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
echo "$db"
}
# Create a master password and set up global settings
# Please always call this script in install and restore scripts
#
# usage: ynh_redis_remove_db database
# | arg: database - the database to erase
ynh_redis_remove_db() {
local db=$1
redis-cli -n "$db" flushall
}

View file

@ -24,7 +24,6 @@ app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
domain=$(ynh_app_setting_get --app=$app --key=domain)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
@ -57,13 +56,6 @@ ynh_backup --src_path="/etc/logrotate.d/$app"
ynh_backup --src_path="/etc/systemd/system/$app.service"
#=================================================
# BACKUP THE POSTQRESQL DATABASE
#=================================================
ynh_print_info --message="Backing up the PostgreSQL database..."
ynh_psql_dump_db --database="$db_name" > db.sql
#=================================================
# END OF SCRIPT
#=================================================

View file

@ -28,7 +28,7 @@ path_url=$YNH_APP_ARG_PATH
admin=$YNH_APP_ARG_ADMIN
is_public=$YNH_APP_ARG_IS_PUBLIC
language=$YNH_APP_ARG_LANGUAGE
password=$YNH_APP_ARG_PASSWORD
password="$YNH_APP_ARG_PASSWORD"
export=$YNH_APP_ARG_EXPORT
app=$YNH_APP_INSTANCE_NAME
@ -53,7 +53,7 @@ ynh_app_setting_set --app=$app --key=domain --value=$domain
ynh_app_setting_set --app=$app --key=path --value=$path_url
ynh_app_setting_set --app=$app --key=admin --value=$admin
ynh_app_setting_set --app=$app --key=language --value=$language
ynh_app_setting_set --app=$app --key=password --value=$password
ynh_app_setting_set --app=$app --key=password --value="$password"
ynh_app_setting_set --app=$app --key=export --value=$export
#=================================================
@ -72,14 +72,12 @@ ynh_app_setting_set --app=$app --key=port --value=$port
#=================================================
ynh_script_progression --message="Installing dependencies..." --weight=6
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
ynh_install_nodejs --nodejs_version=$nodejs_version
if [ "$export" = "abiword" ]; then
ynh_install_app_dependencies $abiword_app_depencencies
ynh_exec_warn_less ynh_install_app_dependencies $abiword_app_depencencies
elif [ "$export" = "libreoffice" ]; then
ynh_install_app_dependencies $libreoffice_app_dependencies
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
fi
#=================================================
@ -93,13 +91,11 @@ ynh_system_user_create --username=$app --home_dir=$final_path
#=================================================
# CREATE A POSTQRESQL DATABASE
#=================================================
ynh_script_progression --message="Creating a PostgreSQL database..." --weight=5
ynh_script_progression --message="Creating a Redis database..." --weight=5
db_name=$(ynh_sanitize_dbid --db_name=$app)
db_user=$db_name
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
ynh_psql_test_if_first_run
ynh_psql_setup_db --db_user=$db_name --db_name=$db_name
# Configure redis
redis_db=$(ynh_redis_get_free_db)
ynh_app_setting_set --app="$app" --key=redis_db --value="$redis_db"
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
@ -128,8 +124,6 @@ ynh_add_nginx_config
#=================================================
ynh_script_progression --message="Installing Etherpad..." --weight=60
chown -R $app $final_path
pushd $final_path
ynh_use_nodejs
ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH src/bin/installDeps.sh
@ -207,7 +201,7 @@ then
ynh_permission_update --permission="main" --add="visitors"
fi
ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin --auth_header=false
ynh_permission_create --permission="admin" --url="/admin" --allowed="$admin" --auth_header="false"
#=================================================
# RELOAD NGINX

View file

@ -19,9 +19,9 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
port=$(ynh_app_setting_get --app=$app --key=port)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_user=$db_name
redis_db=$(ynh_app_setting_get --app=$app --key=redis_db)
export=$(ynh_app_setting_get --app=$app --key=export)
redis_db=$(ynh_app_setting_get --app=$app --key=redis_db)
#=================================================
# STANDARD REMOVE
@ -71,12 +71,11 @@ ynh_script_progression --message="Removing NodeJS version for Etherpad..." --wei
ynh_remove_nodejs
#=================================================
# REMOVE THE POSTQRESQL DATABASE
# REMOVE THE REDIS DATABASE
#=================================================
ynh_script_progression --message="Removing the PostgreSQL database..." --weight=2
ynh_script_progression --message="Removing the redis database..."
# Remove a database if it exists, along with the associated user
ynh_psql_remove_db --db_user=$db_user --db_name=$db_name
ynh_redis_remove_db "$redis_db"
#=================================================
# REMOVE ETHERPAD MAIN DIR

View file

@ -29,9 +29,7 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_user=$db_name
db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd)
export=$(ynh_app_setting_get --app=$app --key=export)
#=================================================
# CHECK IF ETHERPAD CAN BE RESTORED
@ -74,21 +72,9 @@ chmod 400 $final_path/credentials.json
#=================================================
ynh_script_progression --message="Reinstalling dependencies..." --weight=7
# Define and install dependencies
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
# Install Nodejs
ynh_exec_warn_less ynh_install_nodejs --nodejs_version=$nodejs_version
#=================================================
# RESTORE THE POSTQRESQL DATABASE
#=================================================
ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=2
ynh_psql_test_if_first_run
ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name
#=================================================
# RESTORE SYSTEMD
#=================================================
@ -104,6 +90,17 @@ ynh_script_progression --message="Restoring the logrotate configuration..." --we
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Reinstalling dependencies..." --weight=10
if [ "$export" = "abiword" ]; then
ynh_exec_warn_less ynh_install_app_dependencies $abiword_app_depencencies
elif [ "$export" = "libreoffice" ]; then
ynh_exec_warn_less ynh_install_app_dependencies $libreoffice_app_dependencies
fi
#=================================================
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
@ -117,7 +114,7 @@ yunohost service add $app --description="Collaborative editor" --log="/var/log/$
ynh_script_progression --message="Starting a systemd service..." --weight=8
ynh_systemd_action --service_name=$app --action=restart --log_path=systemd --line_match="Your Etherpad version is"
sleep 120
sleep 60
#=================================================
# GENERIC FINALIZATION

View file

@ -23,9 +23,8 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
language=$(ynh_app_setting_get --app=$app --key=language)
port=$(ynh_app_setting_get --app=$app --key=port)
password=$(ynh_app_setting_get --app=$app --key=password)
redis_db=$(ynh_app_setting_get --app=$app --key=redis_db)
export=$(ynh_app_setting_get --app=$app --key=export)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd)
#=================================================
# CHECK VERSION
@ -52,18 +51,18 @@ ynh_abort_if_errors
#=================================================
ynh_script_progression --message="Ensuring downward compatibility..." --weight=2
# If db_name doesn't exist, create it
if [ -z "$db_name" ]; then
db_name=$(ynh_sanitize_dbid --db_name=$app)
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
fi
# If final_path doesn't exist, create it
if [ -z "$final_path" ]; then
final_path=/var/www/$app
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
fi
# If redis_db doesn't exist, create it
if [ -z "$redis_db" ]; then
redis_db=$(ynh_redis_get_free_db)
ynh_app_setting_get --app=$app --key=redis_db --value=$redis_db
fi
# Cleaning legacy permissions
if ynh_legacy_permissions_exists; then
ynh_legacy_permissions_delete_all
@ -73,7 +72,7 @@ fi
if ! ynh_permission_exists --permission="admin"; then
# Create the required permissions
ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin --auth_header=false
ynh_permission_create --permission="admin" --url="/admin" --allowed="$admin" --auth_header="false"
fi
#=================================================
@ -134,19 +133,8 @@ ynh_add_nginx_config
#=================================================
ynh_script_progression --message="Installing dependencies..." --weight=12
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
ynh_install_nodejs --nodejs_version=$nodejs_version
#=================================================
# MODIFY A CONFIG FILE
#=================================================
# ynh_script_progression --message="Reconfiguring Etherpad..." --weight=6
# ynh_add_config --template="../conf/settings.json" --destination="$final_path/settings.json"
# ynh_add_config --template="../conf/credentials.json" --destination="$final_path/credentials.json"
# chmod 400 "$final_path/credentials.json"
#=================================================
# INSTALL ETHERPAD
#=================================================