1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/hubzilla_ynh.git synced 2024-09-03 19:26:21 +02:00

Merge pull request #19 from anmol26s/master

Made fixes and resolved some pending issues
This commit is contained in:
Andrew Manning 2017-09-03 07:40:04 -04:00 committed by GitHub
commit afb7b6c5f8
14 changed files with 105 additions and 151 deletions

View file

@ -1,4 +1,7 @@
# YunoHost App for Hubzilla Hub
# Hubzilla Hub for YunoHost
[![Install Hubzilla with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=hubzilla)
## Hubzilla
[Hubzilla](http://hubzilla.org) is a powerful platform for creating interconnected websites featuring a decentralized identity, commuhubzilla_test1nications, and permissions framework built using common webserver technology.
@ -6,8 +9,18 @@
Current snapshot in *sources*:
* https://github.com/redmatrix/hubzilla: 2.4.2 (commit 8896ebf7cbf20c242399c3821be5881e6068175a)
* https://github.com/redmatrix/hubzilla-addons: 2.4.2 (commit 30f3104ebe2121a433d174bb3bcb703bb9787bd3)
* https://github.com/redmatrix/hubzilla: 2.6.2 (commit 0ee2378cec6902c037b7cb28f290374f595f4d3b)
* https://github.com/redmatrix/hubzilla-addons: 2.6.2 (commit 8252952611ac03dd4c74430af69a8b10d7cdbbd0)
## To-Do's
- [X] Installation and remove script.
- [X] Ldap integration.
- [X] Upgrade script.
- [X] Backup and restore script(Need to be tested,but hopefully will work).
- [X] Remove the admin email,path and is_public form installation form.
- [X] Stop modification of php.ini : exec().
- [X] Make changes to nginx configuration accouding to Hubzilla official guide.
- [ ] Force redirection to https by default.
## Important Notes
@ -27,7 +40,7 @@ Before installing, read the [Hubzilla installation instructions](https://github.
## Installation
### Register a new domain and add it to YunoHost
Hubzilla requires a dedicated domain, so obtain one and add it using the [YunoHost admin](https://reticu.li/yunohost/admin) panel. **Domains -> Add domain**. As Hubzilla uses the full domain and is installed on the root, you can create a subdomain such as hubzilla.domain.tld. Don't forget to update your DNS if you manage them manually.
Hubzilla requires a dedicated domain, so obtain one and add it using the YunoHost admin panel. **Domains -> Add domain**. As Hubzilla uses the full domain and is installed on the root, you can create a subdomain such as hubzilla.domain.tld. Don't forget to update your DNS if you manage them manually.
Hubzilla requires browser-approved SSL certificates. If you have certificates not issued by [Let's Encrypt](https://letsencrypt.org/), install them manually as usual.
@ -57,12 +70,12 @@ For older versions of YunoHost, once you have added the new domain, SSH into you
service nginx start
### Install the Hubzilla application
Use the [YunoHost admin](https://reticu.li/yunohost/admin) panel to install Hubzilla by entering the GitHub repo address in the custom app URL
Use the YunoHost admin panel to install Hubzilla by entering the GitHub repo address in the custom app URL
https://github.com/YunoHost-Apps/hubzilla_ynh
Make sure to select your domain from the previous section as the application domain. Also set the application to Public.
When installation is complete, you will need to visit your new hub and register a new account using the email address you specified in the app installation form. You should then be able to log in and create your first channel.
<strong>If above method do not work for you then you have give an account administrator access through phpMYAdmin by
adding 4096 to the account_roles for that account in the database.</strong>
When installation is complete, you will need to visit your new hub and login with the admin account you specified in the app installation form. You should then be able create your first channel and have the admin rights to the hub.
<strong>For normal YunoHost users:</strong>You can login through Ldap authentication and create the channel accourding to the hub settings.
<strong>For admin:</strong>If you don't see the admin rights in your nav bar drop down menu or want to grant admin rights for any other user on the hub then you have to manually add 4096 to the account_roles for that account in the database through phpMYAdmin.

View file

@ -3,23 +3,33 @@
; Manifest
domain="domain.tld" (DOMAIN)
admin="john" (USER)
path="/" (PATH)
email="johndoe@example.com"
upload="256M"
; Checks
pkg_linter=1
setup_sub_dir=0
setup_root=1
setup_nourl=0
setup_private=0
setup_public=1
upgrade=1
backup_restore=1
multi_instance=0
wrong_user=0
wrong_path=0
incorrect_path=0
corrupt_source=0
fail_download_source=0
port_already_use=0
final_path_already_use=0
; Checks
pkg_linter=1
setup_sub_dir=0
setup_root=1
setup_nourl=0
setup_private=0
setup_public=1
upgrade=1
backup_restore=1
multi_instance=0
incorrect_path=1
port_already_use=0
change_url=0
;;; Levels
Level 1=auto
Level 2=auto
Level 3=auto
# Level 4:
Level 4=0
# Level 5:
Level 5=auto
Level 6=auto
Level 7=auto
Level 8=0
Level 9=0
Level 10=0
;;; Options
Email=anmol@datamol.in
Notification=none

View file

@ -5,7 +5,7 @@ location YNH_WWW_PATH {
# Force https
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
rewrite ^ https://$server_name$request_uri? permanent;
}
# Example PHP configuration
@ -19,25 +19,46 @@ location YNH_WWW_PATH {
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
# Set max upload size
client_max_body_size UPLOADTOCHANGE;
fastcgi_buffers 64 4K;
# Set max upload size
client_max_body_size UPLOADTOCHANGE;
fastcgi_buffers 64 4K;
}
# .htaccess file from Hubzilla converted using http://winginx.com/en/htaccess
location ~ "(^|/)\.git" { return 403; }
location ~ "(^|/)store" { return 403; }
autoindex off;
location / {
# Removing the .well-known rewrite below rule seems to work...
#rewrite ^/\.well\-known/.* /index.php?q=$1;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?q=$1;
}
location ~ "(^|/)\.git" { return 403; }
location ~ "(^|/)store" { return 403; }
autoindex off;
location /
{
# Removing the .well-known rewrite below rule seems to work...
# rewrite ^/\.well\-known/.* /index.php?q=$1;
if (!-e $request_filename)
{
rewrite ^(.*)$ /index.php?q=$1;
}
}
# statically serve these file types when possible
# otherwise fall back to front controller
# allow browser to cache them
# added .htm for advanced source code editor library
location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$
{
expires 30d;
try_files $uri /index.php?q=$uri&$args;
}
# block these file types
location ~* \.(tpl|md|tgz|log|out)$
{
deny all;
}
# deny access to all dot files
location ~ /\.
{
deny all;
}
# Include SSOWAT user panel.
# include conf.d/yunohost_panel.conf.inc;
}

View file

@ -32,16 +32,6 @@
"fr": "Indiquez un domain pour Hubzilla. Hubzilla doit être installé à la racine du domaine. Cela implique qu'aucune autre app ne pourra être installée ou accessible sur ce domain. Nous conseillons un sous-domaine dédié par exemple hubzilla.domain.tld."
}
},
{
"name": "path",
"type": "path",
"ask": {
"en": "No choice, Hubzilla must be installed on the ROOT domain, so be careful",
"fr": "Pas de choix, Hubzilla doit etre installe a la racine, soyez prudent"
},
"choices": ["/"],
"default": "/"
},
{
"name": "admin",
"type": "user",
@ -50,15 +40,6 @@
"fr": "Choisissez l'administrateur de Hubzilla (doit être un utilisateur YunoHost existant)"
}
},
{
"name": "email",
"ask": {
"en": "Email address for the Hubzilla hub admin",
"fr": "Adresse email pour l'admin du hub Hubzilla"
},
"example": "peter@example.com",
"optional": false
},
{
"name": "upload",
"ask": {
@ -68,24 +49,6 @@
"choices": ["64M", "128M", "256M", "512M", "1024M"],
"default": "256M",
"optional": false
},
{
"name": "is_public",
"ask": {
"en": "Is it a public website ?",
"fr": "Est-ce un site publique ?"
},
"choices": ["Yes", "No"],
"default": "Yes"
},
{
"name": "run_exec",
"ask": {
"en": "Do you agree to modify php.ini to allow exec() function to be used by hubzilla ?",
"fr": "Acceptez-vous de modifier php.ini pour autoriser exec() à être utilisée par hubzilla ?"
},
"choices": ["Yes", "No"],
"default": "No"
}
]
}

View file

@ -8,12 +8,10 @@ TRAP_ON # Active trap pour arrêter le script si une erreur est détectée.
app=$YNH_APP_INSTANCE_NAME
domain=$YNH_APP_ARG_DOMAIN
path=$YNH_APP_ARG_PATH
path="/"
admin=$YNH_APP_ARG_ADMIN
email=$YNH_APP_ARG_EMAIL
email=$(sudo yunohost user info $admin | grep "mail:" | cut -d' ' -f2)
upload=$YNH_APP_ARG_UPLOAD
is_public=$YNH_APP_ARG_IS_PUBLIC
run_exec=$YNH_APP_ARG_RUN_EXEC
# Source app helpers
source /usr/share/yunohost/helpers
@ -37,7 +35,6 @@ ynh_app_setting_set $app path $path
ynh_app_setting_set $app admin $admin
ynh_app_setting_set $app email $email
ynh_app_setting_set $app upload $upload
ynh_app_setting_set $app is_public $is_public
# Install dependencies
sudo apt-get update
@ -101,13 +98,6 @@ sudo cp ../conf/nginx.conf $nginxconf
sudo chown root: $nginxconf
sudo chmod 600 $nginxconf
# Modify php.ini to allow exec() function and increase the upload size limits
if [ "$run_exec" = "Yes" ];
then
sudo sed -i 's/pcntl_exec//g' /etc/php5/fpm/php.ini
else
echo "no modification of php.ini"
fi
# Dedicated php-fpm
sed -i "s@UPLOADTOCHANGE@$upload@g" ../conf/php-fpm.conf
sed -i "s@NAMETOCHANGE@$app@g" ../conf/php-fpm.conf
@ -120,13 +110,9 @@ sudo chmod 644 $phpfpmconf
sed -i "s@YNH_WWW_PATH@$final_path@g" ../conf/poller-cron
sudo cp ../conf/poller-cron /etc/cron.d/$app
# Make app public if necessary
if [ "$is_public" = "Yes" ];
then
ynh_app_setting_set $app skipped_uris "/"
else
ynh_app_setting_set $app protected_uris "/"
fi
# Make app public
ynh_app_setting_set $app skipped_uris "/"
# Reload services

View file

@ -10,7 +10,6 @@ source /usr/share/yunohost/helpers
domain=$(ynh_app_setting_get $app domain)
db_user=$(ynh_app_setting_get $app db_user)
run_exec=$(ynh_app_setting_get $app run_exec)
REMOVE_BDD $db_user # Suppression de la base de donnée et de l'utilisateur associé.
@ -23,13 +22,6 @@ REMOVE_FPM_CONF # Suppression de la configuration du pool php-fpm
# Remove poller cron job
sudo rm -f /etc/cron.d/$app
# Restore php.ini as it was before installing hubzilla
if [ "$run_exec" = "Yes" ];
then
sudo sed -i 's/,,/,pcntl_exec,/g' /etc/php5/fpm/php.ini
else
echo "no modification of php.ini"
fi
# Reload services after cleaning
sudo service php5-fpm reload

View file

@ -8,12 +8,10 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain)
path=$(ynh_app_setting_get $app path)
is_public=$(ynh_app_setting_get $app is_public)
admin=$(ynh_app_setting_get $app admin)
final_path=$(ynh_app_setting_get $app final_path)
db_user=$(ynh_app_setting_get $app db_user)
db_pwd=$(ynh_app_setting_get $app db_pwd)
run_exec=$(ynh_app_setting_get $app run_exec)
if [ -d $final_path ]; then
echo "There is already a directory: $final_path " >&2
@ -38,30 +36,19 @@ sudo cp -a ./sources/. $final_path/
ynh_mysql_create_db $db_user $db_user $db_pwd
mysql --debug-check -u $db_user -p$db_pwd $db_user < ./backupdb.sql
# Modify php.ini to allow exec() function and increase the upload size limits
if [ "$run_exec" = "Yes" ];
then
sudo sed -i 's/pcntl_exec//g' /etc/php5/fpm/php.ini
else
echo "no modification of php.ini"
fi
# Copy dedicated php-fpm process from backup folder to the right location
sudo cp -a ./php-fpm.conf /etc/php5/fpm/pool.d/$app.conf
# Backup cron job
# Restore cron job
sudo cp -a ./cron.job /etc/cron.d/$app
# Make app public if necessary
if [ "$is_public" = "Yes" ];
then
ynh_app_setting_set $app skipped_uris "/"
else
ynh_app_setting_set $app protected_uris "/"
fi
# Make app public
ynh_app_setting_set $app skipped_uris "/"
# And Reload services
sudo service php5-fpm reload
sudo service nginx reload
sudo yunohost app ssowatconf

View file

@ -10,14 +10,8 @@ source /usr/share/yunohost/helpers
domain=$(ynh_app_setting_get $app domain)
path=$(ynh_app_setting_get $app path)
is_public=$(ynh_app_setting_get $app is_public)
admin=$(ynh_app_setting_get $app admin)
final_path=$(ynh_app_setting_get $app final_path)
db_pwd=$(ynh_app_setting_get $app db_pwd)
db_user=$(ynh_app_setting_get $app db_user)
email=$(ynh_app_setting_get $app email)
upload=$(ynh_app_setting_get $app upload)
run_exec=$(ynh_app_setting_get $app run_exec)
CHECK_PATH # Vérifie et corrige la syntaxe du path.
@ -62,13 +56,6 @@ sudo cp ../conf/nginx.conf $nginxconf
sudo chown root: $nginxconf
sudo chmod 600 $nginxconf
# Modify php.ini to allow exec() function and increase the upload size limits
if [ "$run_exec" = "Yes" ];
then
sudo sed -i 's/pcntl_exec//g' /etc/php5/fpm/php.ini
else
echo "no modification of php.ini"
fi
# Dedicated php-fpm
sed -i "s@UPLOADTOCHANGE@$upload@g" ../conf/php-fpm.conf
sed -i "s@NAMETOCHANGE@$app@g" ../conf/php-fpm.conf
@ -80,13 +67,8 @@ sudo chown root: $phpfpmconf
sed -i "s@YNH_WWW_PATH@$final_path@g" ../conf/poller-cron
sudo cp ../conf/poller-cron /etc/cron.d/$app
# Make app public if necessary
if [ "$is_public" = "Yes" ];
then
ynh_app_setting_set $app skipped_uris "/"
else
ynh_app_setting_set $app protected_uris "/"
fi
# Make app public
ynh_app_setting_set $app skipped_uris "/"
# Reload services
sudo service php5-fpm reload || true

View file

@ -1 +1 @@
hubzilla-addons-2.4.2
hubzilla-addons-2.6.2

View file

@ -1 +1 @@
24cde04ec71c61864e0ce904a27ad432 hubzilla-addons-2.4.2.zip
2aceb976651b02e4b096c16aea431aec hubzilla-addons-2.6.2.zip

View file

@ -1 +1 @@
https://github.com/redmatrix/hubzilla-addons/archive/2.4.2.zip
https://github.com/redmatrix/hubzilla-addons/archive/2.6.2.zip

View file

@ -1 +1 @@
hubzilla-2.4.2
hubzilla-2.6.2

View file

@ -1 +1 @@
779d29162c3e7635bc1c93707c3da67f hubzilla-2.4.2.zip
b821f19d489b839191e2bb280cc527fc hubzilla-2.6.2.zip

View file

@ -1 +1 @@
https://github.com/redmatrix/hubzilla/archive/2.4.2.zip
https://github.com/redmatrix/hubzilla/archive/2.6.2.zip