1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/cops_ynh.git synced 2024-09-03 18:25:57 +02:00

Update of manifest.json to request further parameters

This commit is contained in:
polytan02 2016-12-22 02:42:11 +00:00
parent 4d2ddaedbc
commit 6ad5fbe2a5
7 changed files with 139 additions and 8 deletions

23
conf/config_local.php Normal file
View file

@ -0,0 +1,23 @@
<?php
if (!isset($config))
$config = array();
/*
* The directory containing calibre's metadata.db file, with sub-directories
* containing all the formats.
* BEWARE : it has to end with a /
*/
$config['calibre_directory'] = 'CALIBRETOCHANGE';
/*
* Catalog's title
*/
$config['cops_title_default'] = "COPS";
/*
* use URL rewriting for downloading of ebook in HTML catalog
* See README for more information
* 1 : enable
* 0 : disable
*/
$config['cops_use_url_rewriting'] = "0";

View file

@ -41,6 +41,25 @@
"example": "/eBooks", "example": "/eBooks",
"default": "/eBooks" "default": "/eBooks"
}, },
{
"name": "runninguser",
"ask": {
"en": "Under which system user should COPS run ?",
"fr": "Sous quel utilisateur systeme COPS doit-il fonctionner ?"
},
"choices": ["owncloud", "nextcloud", "www-data"],
"default": "owncloud"
},
{
"name": "calibrepath",
"type": "path",
"ask": {
"en": "Indicate the location of Calibre library. It MUST end with a / and DON'T store it in your /var/www/cops !!",
"fr": "Indiquez le chemin de votre bibliotheque Calibre. Cela DOIT se terminer par un / et ne la mettez pas dans /var/www/cops !!!"
},
"example": "/home/yunohost.app/owncloud/data/johndoe/files/eBooks/",
"default": "/home/yunohost.app/owncloud/data/johndoe/files/eBooks/"
},
{ {
"name": "is_public", "name": "is_public",
"ask": { "ask": {

View file

@ -15,7 +15,6 @@ domain=$(ynh_app_setting_get $app domain)
is_public=$(ynh_app_setting_get $app is_public) is_public=$(ynh_app_setting_get $app is_public)
finalnginxconf=$(ynh_app_setting_get $app finalnginxconf) finalnginxconf=$(ynh_app_setting_get $app finalnginxconf)
finalphpconf=$(ynh_app_setting_get $app finalphpconf) finalphpconf=$(ynh_app_setting_get $app finalphpconf)
runninguser=$(ynh_app_setting_get $app runninguser)
# Backup sources & data # Backup sources & data
# Note: the last argument is where to save this path, see the restore script. # Note: the last argument is where to save this path, see the restore script.

View file

@ -15,7 +15,8 @@ app=$YNH_APP_INSTANCE_NAME
domain=$YNH_APP_ARG_DOMAIN domain=$YNH_APP_ARG_DOMAIN
path=$YNH_APP_ARG_PATH path=$YNH_APP_ARG_PATH
is_public=$YNH_APP_ARG_IS_PUBLIC is_public=$YNH_APP_ARG_IS_PUBLIC
runninguser="owncloud" runninguser=$YNH_APP_ARG_RUNNINGUSER
calibrepath=$YNH_APP_ARG_CALIBREPATH
# We check variables are not empty # We check variables are not empty
CHECK_VAR "$app" "app name not set" CHECK_VAR "$app" "app name not set"
@ -31,10 +32,11 @@ CHECK_FINALPATH
final_path=/var/www/$app final_path=/var/www/$app
# Define variables and Save app settings # Define variables and Save app settings
ynh_app_setting_set "$app" runninguser "$runninguser"
ynh_app_setting_set "$app" domain "$domain" ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_set "$app" is_public "$is_public" ynh_app_setting_set "$app" is_public "$is_public"
ynh_app_setting_set "$app" final_path "$final_path" ynh_app_setting_set "$app" final_path "$final_path"
ynh_app_setting_set "$app" runninguser "$runninguser"
ynh_app_setting_set "$app" calibrepath "$calibrepath"
finalnginxconf="/etc/nginx/conf.d/${domain}.d/${app}.conf" finalnginxconf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
ynh_app_setting_set "$app" finalnginxconf "$finalnginxconf" ynh_app_setting_set "$app" finalnginxconf "$finalnginxconf"
@ -49,13 +51,13 @@ sudo apt-get install --quiet --assume-yes php5-gd php5-sqlite php5-json php5-int
#sudo rm -rf $final_path #sudo rm -rf $final_path
sudo mkdir -p $final_path sudo mkdir -p $final_path
# Site adjustments
sudo cp ../conf/config_local.php ../sources/
sed -i "s@CALIBRETOCHANGE@$calibrepath@g" ../sources/config_local.php
# Base site # Base site
sudo cp -a ../sources/* $final_path/ sudo cp -a ../sources/* $final_path/
# Site adjustments
#sed -i "s@DOMAINTOCHANGE@$domain@g" ../sources/index.html
#sed -i "s@SITETOCHANGE@$sitename@g" ../sources/index.html
# Set permissions # Set permissions
sudo chmod 775 -R $final_path sudo chmod 775 -R $final_path
sudo chown -hR $runninguser:$runninguser $final_path sudo chown -hR $runninguser:$runninguser $final_path

View file

@ -22,7 +22,6 @@ final_path=$(ynh_app_setting_get $app final_path)
sitename=$(ynh_app_setting_get $app sitename) sitename=$(ynh_app_setting_get $app sitename)
finalnginxconf=$(ynh_app_setting_get $app finalnginxconf) finalnginxconf=$(ynh_app_setting_get $app finalnginxconf)
finalphpconf=$(ynh_app_setting_get $app finalphpconf) finalphpconf=$(ynh_app_setting_get $app finalphpconf)
runninguser=$(ynh_app_setting_get $app runninguser)
# Suppression du dossier de la webapp # Suppression du dossier de la webapp
sudo rm -rf $final_path sudo rm -rf $final_path

View file

@ -23,6 +23,9 @@ sitename=$(ynh_app_setting_get $app sitename)
finalnginxconf=$(ynh_app_setting_get $app finalnginxconf) finalnginxconf=$(ynh_app_setting_get $app finalnginxconf)
finalphpconf=$(ynh_app_setting_get $app finalphpconf) finalphpconf=$(ynh_app_setting_get $app finalphpconf)
runninguser=$(ynh_app_setting_get $app runninguser) runninguser=$(ynh_app_setting_get $app runninguser)
calibrepath=$(ynh_app_setting_get $app calibrepath)
# We install dependencies # We install dependencies
sudo apt-get install --quiet --assume-yes php5-gd php5-sqlite php5-json php5-intl sudo apt-get install --quiet --assume-yes php5-gd php5-sqlite php5-json php5-intl
@ -46,6 +49,10 @@ sudo chmod 644 $finalphpconf
sudo rm -rf $final_path sudo rm -rf $final_path
sudo mkdir -p $final_path sudo mkdir -p $final_path
# Site adjustments
sudo cp ../conf/config_local.php ../sources/
sed -i "s@CALIBRETOCHANGE@$calibrepath@g" ../sources/config_local.php
# Base site # Base site
sudo cp -a ../sources/* $final_path/ sudo cp -a ../sources/* $final_path/

82
sources/.htaccess Normal file
View file

@ -0,0 +1,82 @@
DirectoryIndex index.php
<IfModule mod_xsendfile.c>
<Files fetch.php>
XSendFile on
</Files>
</IfModule>
###########################################
# If the notation above don't work, you can try that one
# Disclaimer : I'm no apache expert it can be bad security wise :(
###########################################
#XSendFile On
#XSendFileAllowAbove on
###########################################
# On WAMP one user had to add this line in his httpd.conf
# None of the above was working
###########################################
#XSendFilePath <YourCalibrePath>
###########################################
# If you want to use user based configuration with
# apache 2.4 + php-fpm enable this
# https://github.com/seblucas/cops/issues/213
###########################################
#SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^download/(\d*)/(\d*)/.*\.kepub\.epub$ fetch.php?data=$1&db=$2&type=epub [L]
RewriteRule ^download/(\d*)/(\d*)/.*\.(.*)$ fetch.php?data=$1&db=$2&type=$3 [L]
RewriteRule ^download/(\d*)/.*\.kepub\.epub$ fetch.php?data=$1&type=epub [L]
RewriteRule ^download/(\d*)/.*\.(.*)$ fetch.php?data=$1&type=$2 [L]
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xhtml+xml "access plus 0 seconds"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# Webfonts
ExpiresByType font/truetype "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
</IfModule>
###########################################
# Uncomment if you wish to protect access with a password
###########################################
# If your covers and books are not available as soon as you protect it
# You can try replacing the FilesMatch directive by this one
# <FilesMatch "(index|feed)\.php">
# it helps for Sony PRS-TX and Aldiko, but beware fetch.php can be accessed
# without authentication (see $config ['cops_fetch_protect'] for a workaround).
###########################################
#<FilesMatch "\.php$">
#AuthUserFile /path/to/file
#AuthGroupFile /dev/null
#AuthName "Acces securise"
#AuthType Basic
#Require valid-user
#</FilesMatch>