summaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
Diffstat (limited to 'install')
-rwxr-xr-xinstall/install.sh39
-rw-r--r--install/nginx.conf.template6
-rw-r--r--install/uwsgi.ini.template2
3 files changed, 29 insertions, 18 deletions
diff --git a/install/install.sh b/install/install.sh
index 3ed72a25c..4ef5d8441 100755
--- a/install/install.sh
+++ b/install/install.sh
@@ -1,5 +1,8 @@
#!/bin/bash
+set -e
+set -x
+
######################################################################
# Minimum configuration #
######################################################################
@@ -41,7 +44,10 @@ UWSGI_PORT=${UWSGI_PORT-8891}
NGINX_PORT=${NGINX_PORT-80}
# don't forget the trailing slash
-INSTALL_PREFIX=/srv/
+INSTALL_PREFIX=${INSTALL_PREFIX-/srv/}
+if ! echo "$INSTALL_PREFIX" | grep -qs '/$'; then
+ INSTALL_PREFIX="$INSTALL_PREFIX/"
+fi
# if a virtualenv is used put the full path of the python to use
PYTHON=python
@@ -62,22 +68,25 @@ NGINX_ENABLE_PATH='/etc/nginx/sites-enabled/'
echo "* installing dependencies"
+APT_GET=${APT_GET-apt-get}
+PIP=${PIP-pip}
+
if [ $DB_HOST = "127.0.0.1" ]; then
- apt-get -q -y install postgresql postgresql-$PG_VERSION-postgis postgresql 2> /dev/null > /dev/null
+ $APT_GET -q -y install postgresql postgresql-$PG_VERSION-postgis postgresql 2> /dev/null > /dev/null
fi
-apt-get -q -y install git apg python-pip 2> /dev/null > /dev/null
+$APT_GET -q -y install git apg python-pip 2> /dev/null > /dev/null
-apt-get -q -y install python python-django \
+$APT_GET -q -y install python python-django \
libjs-jquery libjs-jquery-ui python-pisa python-django-registration \
python-utidylib python-lxml python-imaging python-django-south \
python-psycopg2 python-gdal gettext python-bs4 python-tidylib \
python-unicodecsv \
python-django-extra-views python-memcache python-dbf 2> /dev/null > /dev/null
-apt-get -q -y install uwsgi uwsgi-plugin-python nginx memcached 2> /dev/null > /dev/null
+$APT_GET -q -y install uwsgi uwsgi-plugin-python nginx memcached 2> /dev/null > /dev/null
-pip install$PIP_OPTIONS BeautifulSoup4==4.3.2
+$PIP install$PIP_OPTIONS BeautifulSoup4==4.3.2
if [ -z "$DB_PASSWORD" ]
then
@@ -89,7 +98,7 @@ fi
DB_NAME='ishtar'$APP_NAME
INSTALL_PATH=$INSTALL_PREFIX$DB_NAME
DATE=`date +%F`
-CDIR=`pwd`
+CDIR=`readlink -f $(dirname $0)`
SECRET_KEY=`apg -a 0 -M ncl -n 6 -x 10 -m 40 |head -n 1`
if [ $DB_HOST = '127.0.0.1' ]
@@ -119,7 +128,7 @@ fi
echo '* get sources'
-mkdir $INSTALL_PATH
+mkdir -p $INSTALL_PATH
mkdir $INSTALL_PATH'/conf'
cd $INSTALL_PATH
@@ -161,7 +170,7 @@ sed -s "s|#APP_NAME#|$APP_NAME|g;\
ln -s $INSTALL_PATH'/conf/local_settings.py' $APP_DIR'/local_settings.py'
# rights
-mkdir $APP_DIR'/media'
+mkdir -p $APP_DIR'/media'
chown -R root:www-data $APP_DIR'/media'
chmod -R g+w $APP_DIR'/media'
@@ -194,10 +203,6 @@ echo "* sync database"
cd $APP_DIR
python ./manage.py syncdb --noinput 2> /dev/null > /dev/null
-python ./manage.py migrate ishtar_common 2> /dev/null > /dev/null
-python ./manage.py migrate archaeological_files 0013 2> /dev/null > /dev/null
-python ./manage.py migrate archaeological_operations 2> /dev/null > /dev/null
-python ./manage.py migrate archaeological_files 2> /dev/null > /dev/null
python ./manage.py migrate 2> /dev/null > /dev/null
echo "* load default data"
@@ -235,13 +240,16 @@ $PYTHON ./manage.py migrate --fake 2> /dev/null > /dev/null
echo '* uwsgi configuration'
+# NOTE: Replacing #INSTALL_PREFIX#/ is done on purpose, since we
+# ensured that variable has a trailing slash.
sed -s "s|#APP_NAME#|$APP_NAME|g;\
s|#DB_NAME#|$DB_NAME|g;\
+ s|#INSTALL_PREFIX#/|$INSTALL_PREFIX|g;\
s|#URL#|$URL|g;\
s|#UWSGI_PORT#|$UWSGI_PORT|g;" $CDIR'/uwsgi.ini.template' > \
$INSTALL_PATH'/conf/uwsgi.ini'
-sed -s "s#APP_NAME#/$APP_NAME/g;" $CDIR'/django.wsgi.template' > \
+sed -s "s/#APP_NAME#/$APP_NAME/g;" $CDIR'/django.wsgi.template' > \
$INSTALL_PATH'/conf/'$APP_NAME'.wsgi'
ln -s $INSTALL_PATH'/conf/uwsgi.ini' \
@@ -254,11 +262,14 @@ service uwsgi restart
echo '* nginx configuration'
+# NOTE: Replacing #INSTALL_PREFIX#/ is done on purpose, since we
+# ensured that variable has a trailing slash.
sed -s "s|#APP_NAME#|$APP_NAME|g;\
s|#UWSGI_PORT#|$UWSGI_PORT|g;\
s|#DB_NAME#|$DB_NAME|g;\
s|#DATE#|$DATE|g;\
s|#NGINX_PORT#|$NGINX_PORT|g;\
+ s|#INSTALL_PREFIX#/|$INSTALL_PREFIX|g;\
s|#URL#|$URL|g;" $CDIR'/nginx.conf.template' > \
$INSTALL_PATH'/conf/nginx.conf'
ln -s $INSTALL_PATH'/conf/nginx.conf' \
diff --git a/install/nginx.conf.template b/install/nginx.conf.template
index c41018786..8df09e859 100644
--- a/install/nginx.conf.template
+++ b/install/nginx.conf.template
@@ -1,18 +1,18 @@
server {
listen #NGINX_PORT#;
server_name #URL#;
- root /srv/#DB_NAME#/ishtar/;
+ root #INSTALL_PREFIX#/#DB_NAME#/ishtar/;
access_log /var/log/django/#APP_NAME#-access.log;
error_log /var/log/django/#APP_NAME#-error.log;
client_max_body_size 20M;
location /static-#DATE#/ { # STATIC_URL
- alias /srv/#DB_NAME#/ishtar/#APP_NAME#/static/; # STATIC_ROOT
+ alias #INSTALL_PREFIX#/#DB_NAME#/ishtar/#APP_NAME#/static/; # STATIC_ROOT
expires 30d;
}
location /media/ { # MEDIA_URL
- alias /srv/#DB_NAME#/ishtar/#APP_NAME#/media/; # MEDIA_ROOT
+ alias #INSTALL_PREFIX#/#DB_NAME#/ishtar/#APP_NAME#/media/; # MEDIA_ROOT
expires 30d;
}
diff --git a/install/uwsgi.ini.template b/install/uwsgi.ini.template
index 7a20c058c..dd8f00480 100644
--- a/install/uwsgi.ini.template
+++ b/install/uwsgi.ini.template
@@ -2,7 +2,7 @@
# variables
projectname = #APP_NAME#
projectdomain = #URL#
-base = /srv/#DB_NAME#/ishtar/
+base = #INSTALL_PREFIX#/#DB_NAME#/ishtar/
# config
plugins = python