Commit eebbd460b8ef9a098508ecbac4d185cc15dafa70

Authored by Kload
Exists in master

Merge branch 'master' of github.com:Kloadut/owncloud_ynh

Showing 2 changed files Inline Diff

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", 32 "name": "admin",
33 "ask": { 33 "ask": {
34 "en": "Choose the Owncloud administrator (must be an existing YunoHost user)" 34 "en": "Choose the Owncloud administrator (must be an existing YunoHost user)"
35 }, 35 },
36 "example": "homer" 36 "example": "homer"
37 },
38 {
39 "name": "password",
40 "ask": {
41 "en": "Owncloud administrator password (for this existing YunoHost user)"
42 }
43 } 37 }
44 ] 38 ]
45 } 39 }
46 } 40 }
47 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 user=$3 6 user=$3
7 password=$4
8 7
9 # Check user parameter 8 # Check user parameter
10 ls /home | grep $user 9 ls /home | grep $user
11 if [[ ! $? -eq 0 ]]; then 10 if [[ ! $? -eq 0 ]]; then
12 echo "Wrong user" 11 echo "Wrong user"
13 exit 1 12 exit 1
14 fi 13 fi
15 14
16 if [[ $password == "" ]]; then
17 echo "Wrong password"
18 exit 1
19 fi
20
21 # Check domain/path availability 15 # Check domain/path availability
22 sudo yunohost app checkurl $domain$path -a owncloud 16 sudo yunohost app checkurl $domain$path -a owncloud
23 if [[ ! $? -eq 0 ]]; then 17 if [[ ! $? -eq 0 ]]; then
24 exit 1 18 exit 1
25 fi 19 fi
26 20
27 # Install dependencies 21 # Install dependencies
28 sudo apt-get install acl 22 sudo apt-get install acl smbclient -y -qq
29 23
30 # Generate random password 24 # Generate random password
31 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')
32 26
33 # Use 'owncloud' as database name and user 27 # Use 'owncloud' as database name and user
34 db_user=owncloud 28 db_user=owncloud
35 29
36 # Initialize database and store mysql password for upgrade 30 # Initialize database and store mysql password for upgrade
37 sudo yunohost app initdb $db_user -p $db_pwd 31 sudo yunohost app initdb $db_user -p $db_pwd
38 sudo yunohost app setting owncloud mysqlpwd -v $db_pwd 32 sudo yunohost app setting owncloud mysqlpwd -v $db_pwd
39 33
40 # Create owncloud user 34 # Create owncloud user
41 sudo useradd -d /var/www/owncloud owncloud 35 sudo useradd -d /var/www/owncloud owncloud
42 36
43 # Copy files to the right place 37 # Copy files to the right place
44 final_path=/var/www/owncloud 38 final_path=/var/www/owncloud
45 data_path=/home/yunohost.app/owncloud/data 39 data_path=/home/yunohost.app/owncloud/data
46 sudo mkdir -p $final_path 40 sudo mkdir -p $final_path
47 sudo mkdir -p $data_path 41 sudo mkdir -p $data_path
48 sudo cp -a ../sources/* $final_path 42 sudo cp -a ../sources/* $final_path
49 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
50 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
51 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
52 sudo cp ../conf/mount.json $data_path 46 sudo cp ../conf/mount.json $data_path
53 47
54 # Change variables in Owncloud configuration 48 # Change variables in Owncloud configuration
55 sudo sed -i "s@PATHTOCHANGE@$path@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 49 sudo sed -i "s@PATHTOCHANGE@$path@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
56 sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 50 sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
57 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/nginx/conf.d/$domain.d/owncloud.conf 51 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/nginx/conf.d/$domain.d/owncloud.conf
58 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/php5/fpm/pool.d/owncloud.conf 52 sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/php5/fpm/pool.d/owncloud.conf
59 sudo sed -i "s@NAMETOCHANGE@owncloud@g" ../hooks/post_user_create 53 sudo sed -i "s@NAMETOCHANGE@owncloud@g" ../hooks/post_user_create
60 54
61 # Add hooks 55 # Add hooks
62 sudo yunohost hook add post_user_create ../hooks/post_user_create "50-owncloud" 56 sudo yunohost hook add post_user_create ../hooks/post_user_create "50-owncloud"
63 57
64 # Set permissions to owncloud directories and /home directories + add Home external storage 58 # Set permissions to owncloud directories and /home directories + add Home external storage
65 for i in $(ls /home) 59 for i in $(ls /home)
66 do 60 do
67 if [[ ! $i == yunohost.* ]]; 61 if [[ ! $i == yunohost.* ]];
68 then 62 then
69 sudo setfacl -m g:owncloud:rwx /home/$i 63 sudo setfacl -m g:owncloud:rwx /home/$i
70 sudo mkdir $data_path/$i 64 sudo mkdir $data_path/$i
71 fi 65 fi
72 done 66 done
73 sudo chown -hR owncloud: $final_path 67 sudo chown -hR owncloud: $final_path
74 sudo chown -hR owncloud: $data_path 68 sudo chown -hR owncloud: $data_path
75 69
76 # Reload Nginx and regenerate SSOwat conf 70 # Reload Nginx and regenerate SSOwat conf
77 sudo service php5-fpm restart 71 sudo service php5-fpm restart
78 sudo service nginx reload 72 sudo service nginx reload
79 sudo yunohost app setting owncloud skipped_uris -v "/" 73 sudo yunohost app setting owncloud skipped_uris -v "/"
80 sudo yunohost app ssowatconf 74 sudo yunohost app ssowatconf
81 75
82 # Owncloud installation via curl 76 # Owncloud installation via curl
83 echo "127.0.0.1 $domain #yunoowncloud" | sudo tee -a /etc/hosts 77 echo "127.0.0.1 $domain #yunoowncloud" | sudo tee -a /etc/hosts
84 sleep 1 78 sleep 1
85 curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=$user&adminpass=$password&directory=/home/yunohost.app/owncloud/data&dbtype=mysql&dbuser=$db_user&dbpass=$db_pwd&dbname=$db_user&dbhost=localhost" > /dev/null 2>&1 79 curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=admin&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
86 80
87 # Enable plugins 81 # Enable plugins
88 sleep 5 82 sleep 5
89 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=files_external" -u "$user:$password" > /dev/null 2>&1 83 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=files_external" -u "admin:$db_pwd" > /dev/null 2>&1
90 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "$user:$password" > /dev/null 2>&1 84 curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "admin:$db_pwd" > /dev/null 2>&1
91 85
92 # Check if the Mysql database is initialized & running 86 # Check if the Mysql database is initialized & running
93 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 87 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1
94 result=$? 88 result=$?
95 loop_number=1 89 loop_number=1
96 while [ $result != 0 ] && [ $loop_number -lt 5 ]; 90 while [ $result != 0 ] && [ $loop_number -lt 5 ];
97 do 91 do
98 sleep 5 92 sleep 5
99 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 93 mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1
100 let result=$? 94 let result=$?
101 if [ $loop_number -eq 4 ]; 95 if [ $loop_number -eq 4 ];
102 then 96 then
103 print "Web installation failed" 97 print "Web installation failed"
104 exit 1 98 exit 1
105 fi 99 fi
106 let loop_number++ 100 let loop_number++
107 done 101 done
102
103 # Configure LDAP plugin
104 mysql -u $db_user -p$db_pwd $db_user < ../conf/ldap_config.sql
108 105
109 # Configure LDAP plugin 106 # Make an LDAP user as admin
110 mysql -u $db_user -p$db_pwd $db_user < ../conf/ldap_config.sql 107 mysql -u $db_user -p$db_pwd $db_user -e "INSERT INTO oc_group_user VALUES ('admin','$user');"
111 108
112 # Unprotect URIs 109 # Unprotect URIs
113 sudo yunohost app setting owncloud skipped_uris -v "/public.php,/core,/apps/files,/index.php/apps/files" 110 sudo yunohost app setting owncloud skipped_uris -v "/public.php,/core,/apps/files,/index.php/apps/files"
114 sudo yunohost app setting owncloud unprotected_uris -v "/remote.php,/cron.php,/status.php" 111 sudo yunohost app setting owncloud unprotected_uris -v "/remote.php,/cron.php,/status.php"
115 sudo yunohost app ssowatconf 112 sudo yunohost app ssowatconf
116 113