Commit 035b88fdeb706a49fa2a7affdef397e05e50e2d6

Authored by Kload
1 parent 8173dbb68d
Exists in master

Try local external sharing (yo dawg)

Showing 3 changed files with 36 additions and 17 deletions Inline Diff

conf/ldap_config.sql
1 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_uuid_attribute', 'auto'); 1 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_uuid_attribute', 'auto');
2 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_host', 'localhost'); 2 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_host', 'localhost');
3 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_port', '389'); 3 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_port', '389');
4 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base', 'dc=yunohost,dc=org'); 4 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base', 'dc=yunohost,dc=org');
5 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base_users', 'dc=yunohost,dc=org'); 5 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base_users', 'dc=yunohost,dc=org');
6 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base_groups', 'dc=yunohost,dc=org'); 6 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_base_groups', 'dc=yunohost,dc=org');
7 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_tls', '0'); 7 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_tls', '0');
8 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_display_name', 'cn'); 8 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_display_name', 'cn');
9 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_userlist_filter', 'objectClass=mailAccount'); 9 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_userlist_filter', 'objectClass=mailAccount');
10 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_filter', 'objectClass=posixGroup'); 10 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_filter', 'objectClass=posixGroup');
11 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_display_name', 'cn'); 11 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_display_name', 'cn');
12 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember'); 12 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember');
13 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_login_filter', 'uid=%uid'); 13 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_login_filter', 'uid=%uid');
14 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_attr', 'mailQuota'); 14 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_attr', 'mailQuota');
15 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_def', '500MB'); 15 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_def', '');
16 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_email_attr', 'mail'); 16 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_email_attr', 'mail');
17 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_cache_ttl', '600'); 17 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_cache_ttl', '600');
18 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_configuration_active', '1'); 18 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_configuration_active', '1');
19 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'home_folder_naming_rule', 'attr:homeDirectory'); 19 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'home_folder_naming_rule', '');
20 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_backup_host', ''); 20 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_backup_host', '');
21 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_dn', ''); 21 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_dn', '');
22 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_agent_password', ''); 22 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_agent_password', '');
23 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_backup_port', ''); 23 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_backup_port', '');
24 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_nocase', ''); 24 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_nocase', '');
25 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_turn_off_cert_check', ''); 25 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_turn_off_cert_check', '');
26 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_override_main_server', ''); 26 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_override_main_server', '');
27 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_attributes_for_user_search', ''); 27 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_attributes_for_user_search', '');
28 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_attributes_for_group_search', ''); 28 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_attributes_for_group_search', '');
29 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_expert_username_attr', 'uid'); 29 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_expert_username_attr', 'uid');
30 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_expert_uuid_attr', ''); 30 INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_expert_uuid_attr', '');
31 31
1 { 1 {
2 "name": "Owncloud", 2 "name": "Owncloud",
3 "id": "owncloud", 3 "id": "owncloud",
4 "description": { 4 "description": {
5 "en": "Sync & share your files, pictures, music, contacts, calendars, and much more !", 5 "en": "Sync & share your files, pictures, music, contacts, calendars, and much more !",
6 "fr": "Synchronisez et partagez vos fichiers, images, musiques, contacts, calendriers, et bien plus !" 6 "fr": "Synchronisez et partagez vos fichiers, images, musiques, contacts, calendriers, et bien plus !"
7 }, 7 },
8 "developer": { 8 "developer": {
9 "name": "kload", 9 "name": "kload",
10 "email": "kload@kload.fr", 10 "email": "kload@kload.fr",
11 "url": "http://owncloud.org" 11 "url": "http://owncloud.org"
12 }, 12 },
13 "multi_instance": "true", 13 "multi_instance": "true",
14 "arguments": { 14 "arguments": {
15 "install" : [ 15 "install" : [
16 { 16 {
17 "name": "domain", 17 "name": "domain",
18 "ask": { 18 "ask": {
19 "en": "Choose a domain for Owncloud" 19 "en": "Choose a domain for Owncloud"
20 }, 20 },
21 "example": "domain.org" 21 "example": "domain.org"
22 }, 22 },
23 { 23 {
24 "name": "path", 24 "name": "path",
25 "ask": { 25 "ask": {
26 "en": "Choose a path for Owncloud" 26 "en": "Choose a path for Owncloud"
27 }, 27 },
28 "example": "/owncloud", 28 "example": "/owncloud",
29 "default": "/owncloud" 29 "default": "/owncloud"
30 }, 30 },
31 { 31 {
32 "name": "admin_passwd", 32 "name": "admin",
33 "ask": { 33 "ask": {
34 "en": "Choose a password for Owncloud administrator" 34 "en": "Choose the Owncloud administrator (must be an existing YunoHost user)",
35 } 35 },
36 "example": "homer"
36 } 37 }
37 ] 38 ]
38 } 39 }
39 } 40 }
40 41
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Retrieve arguments 3 # Retrieve arguments
4 domain=$1 4 domain=$1
5 path=$2 5 path=$2
6 admin_passwd=$3 6 user=$3
7 7
8 if [ "$admin_passwd" = "" ]; then 8 # Check user parameter
9 echo "Wrong password" 9 ls /home | grep $user
10 if [[ ! $? -eq 0 ]]; then
11 echo "Wrong user"
10 exit 1 12 exit 1
11 fi 13 fi
12 14
13 # Check domain/path availability 15 # Check domain/path availability
14 sudo yunohost app checkurl $domain$path -a owncloud 16 sudo yunohost app checkurl $domain$path -a owncloud
15 if [[ ! $? -eq 0 ]]; then 17 if [[ ! $? -eq 0 ]]; then
16 exit 1 18 exit 1
17 fi 19 fi
18 20
19 # Install dependencies 21 # Install dependencies
20 sudo apt-get install acl 22 sudo apt-get install acl
21 23
22 # Generate random password 24 # Generate random password
23 db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') 25 db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
24 26
25 # Use 'owncloud' as database name and user 27 # Use 'owncloud' as database name and user
26 db_user=owncloud 28 db_user=owncloud
27 29
28 # Initialize database and store mysql password for upgrade 30 # Initialize database and store mysql password for upgrade
29 sudo yunohost app initdb $db_user -p $db_pwd 31 sudo yunohost app initdb $db_user -p $db_pwd
30 sudo yunohost app setting owncloud mysqlpwd -v $db_pwd 32 sudo yunohost app setting owncloud mysqlpwd -v $db_pwd
31 33
32 # Create owncloud user 34 # Create owncloud user
33 sudo useradd -d /var/www/owncloud owncloud 35 sudo useradd -d /var/www/owncloud owncloud
34 36
35 # Copy files to the right place 37 # Copy files to the right place
36 final_path=/var/www/owncloud 38 final_path=/var/www/owncloud
39 data_path=/home/yunohost.app/owncloud/data
37 sudo mkdir -p $final_path 40 sudo mkdir -p $final_path
41 sudo mkdir -p $data_path
38 sudo cp -a ../sources/* $final_path 42 sudo cp -a ../sources/* $final_path
39 sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/owncloud.conf 43 sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/owncloud.conf
40 sudo cp ../conf/php-fpm.conf /etc/php5/fpm/pool.d/owncloud.conf 44 sudo cp ../conf/php-fpm.conf /etc/php5/fpm/pool.d/owncloud.conf
41 sudo cp ../conf/php-fpm.ini /etc/php5/fpm/conf.d/20-owncloud.ini 45 sudo cp ../conf/php-fpm.ini /etc/php5/fpm/conf.d/20-owncloud.ini
42 46
43 # Change variables in Owncloud configuration 47 # Change variables in Owncloud configuration
44 sudo sed -i "s@PATHTOCHANGE@$path@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 48 sudo sed -i "s@PATHTOCHANGE@$path@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
45 sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 49 sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
46 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 50 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
47 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/php5/fpm/pool.d/owncloud.conf 51 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/php5/fpm/pool.d/owncloud.conf
48 52
49 # Set permissions to owncloud directory and /home directories 53 # Set permissions to owncloud directories and /home directories + add Home external storage
50 sudo chown -hR owncloud: $final_path
51 for i in $(ls /home) 54 for i in $(ls /home)
52 do 55 do
53 if [[ ! $i == yunohost.* ]]; 56 if [[ ! $i == yunohost.* ]];
54 then 57 then
55 sudo setfacl -m g:owncloud:rwx /home/$i 58 sudo setfacl -m g:owncloud:rwx /home/$i
59 mkdir $data_path/$i
60 echo "{\"user\":{\"$i\":{\"/\$user/files/Home\":{\"class\":\"\\OC\\Files\\Storage\\Local\",\"options\":{\"datadir\":\"/home/$i\"}}}}}" > $data_path/$i/mount.json
56 fi 61 fi
57 done 62 done
63 sudo chown -hR owncloud: $final_path
64 sudo chown -hR owncloud: $data_path
58 65
59 # Reload Nginx and regenerate SSOwat conf 66 # Reload Nginx and regenerate SSOwat conf
60 sudo service php5-fpm restart 67 sudo service php5-fpm restart
61 sudo service nginx reload 68 sudo service nginx reload
62 sudo yunohost app setting owncloud skipped_uris -v "/" 69 sudo yunohost app setting owncloud skipped_uris -v "/"
63 sudo yunohost app ssowatconf 70 sudo yunohost app ssowatconf
64 71
65 # Owncloud installation via curl 72 # Owncloud installation via curl
66 echo "127.0.0.1 $domain #yunoowncloud" | sudo tee -a /etc/hosts 73 echo "127.0.0.1 $domain #yunoowncloud" | sudo tee -a /etc/hosts
67 sleep 1 74 sleep 1
68 curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=admin&adminpass=$admin_passwd&directory=/var/www/owncloud/data&dbtype=mysql&dbuser=$db_user&dbpass=$db_pwd&dbname=$db_user&dbhost=localhost" > /dev/null 2>&1 75 curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=$user&adminpass=$db_pwd&directory=/home/yunohost.app/owncloud/data&dbtype=mysql&dbuser=$db_user&dbpass=$db_pwd&dbname=$db_user&dbhost=localhost" > /dev/null 2>&1
69 76
70 # Check if the Mysql database is initialized & running 77 # Enable plugins
71 sleep 5 78 sleep 5
79 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=files_external" -u "$user:$db_pwd" > /dev/null 2>&1
80 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "$user:$db_pwd" > /dev/null 2>&1
81
82 # Check if the Mysql database is initialized & running
72 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 83 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1
73 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "admin:$admin_passwd" > /dev/null 2>&1
74 result=$? 84 result=$?
75 loop_number=1 85 loop_number=1
76 while [ $result != 0 ] && [ $loop_number -lt 5 ]; 86 while [ $result != 0 ] && [ $loop_number -lt 5 ];
77 do 87 do
78 sleep 5 88 sleep 5
79 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 89 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1
80 let result=$? 90 let result=$?
81 let loop_number++ 91 if [ $loop_number -eq 4 ];
92 then
93 print "Web installation failed"
94 exit 1
95 fi
96 let loop_number++
82 done 97 done
83 98
99 # Configure LDAP plugin
84 mysql -u $db_user -p$db_pwd $db_user < ../conf/ldap_config.sql 100 mysql -u $db_user -p$db_pwd $db_user < ../conf/ldap_config.sql
101
102 # Unprotect URIs
85 sudo yunohost app setting owncloud skipped_uris -v "/public.php,/core,/apps/files,/index.php/apps/files" 103 sudo yunohost app setting owncloud skipped_uris -v "/public.php,/core,/apps/files,/index.php/apps/files"
86 sudo yunohost app setting owncloud unprotected_uris -v "/remote.php,/cron.php,/status.php" 104 sudo yunohost app setting owncloud unprotected_uris -v "/remote.php,/cron.php,/status.php"
87 sudo yunohost app ssowatconf 105 sudo yunohost app ssowatconf
88 106
89 # Remove temporary entry in /etc/hosts 107 # Remove temporary entry in /etc/hosts