summaryrefslogtreecommitdiff
path: root/install
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-04-18 17:25:40 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2015-04-18 17:28:31 +0200
commitdfe3efa056f0d45ed49fedf154689c755d9b0465 (patch)
treed1bf16bb9ad133354a23301738993f765653f83f /install
parentf57f79d40b9a6c8cc1333165ee11a341c78be181 (diff)
downloadIshtar-dfe3efa056f0d45ed49fedf154689c755d9b0465.tar.bz2
Ishtar-dfe3efa056f0d45ed49fedf154689c755d9b0465.zip
Update installation script
Conflicts: install/install.sh
Diffstat (limited to 'install')
-rw-r--r--install/README9
-rw-r--r--install/django.wsgi.template2
-rwxr-xr-x[-rw-r--r--]install/install.sh92
-rw-r--r--install/local_settings.py.sample4
-rw-r--r--install/nginx.conf.template8
-rwxr-xr-xinstall/uninstall.sh36
-rw-r--r--install/uwsgi.ini.template2
7 files changed, 101 insertions, 52 deletions
diff --git a/install/README b/install/README
new file mode 100644
index 000000000..dc15fa147
--- /dev/null
+++ b/install/README
@@ -0,0 +1,9 @@
+cd /tmp
+apt-get install wget
+wget http://lysithea.proxience.net/ishtar-install.tar.gz
+
+tar xvzf ishtar-install.tar.gz
+rm ishtar-install.tar.gz
+cd install
+export APP_NAME=myinstance && export URL=localhost \
+ && export PROJECT_NAME="Project name" && bash install.sh
diff --git a/install/django.wsgi.template b/install/django.wsgi.template
index 54bf07351..a618f0a41 100644
--- a/install/django.wsgi.template
+++ b/install/django.wsgi.template
@@ -1,7 +1,7 @@
import os, sys
MAIN_PATH = os.path.realpath(os.path.dirname(__file__)) + "/.."
sys.path.append(MAIN_PATH)
-os.environ['DJANGO_SETTINGS_MODULE'] = '#SHORT_NAME#.settings'
+os.environ['DJANGO_SETTINGS_MODULE'] = '#APP_NAME#.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
diff --git a/install/install.sh b/install/install.sh
index dc2bb9b2a..7ca43c1ae 100644..100755
--- a/install/install.sh
+++ b/install/install.sh
@@ -5,8 +5,8 @@
######################################################################
# only lower alpha-numeric char and '_' and must start with a letter
-[ $SHORT_NAME ] || ( echo 'SHORT_NAME empty. Default to: "default".' ; );
-SHORT_NAME=${SHORT_NAME-default}
+[ $APP_NAME ] || ( echo 'APP_NAME empty. Default to: "default".' ; );
+APP_NAME=${APP_NAME-default}
[ $URL ] || ( echo 'URL empty. Default to: "localhost".' ; URL=localhost ; );
URL=${URL-localhost}
@@ -31,18 +31,14 @@ DB_PORT='5432'
PG_VERSION=9.1
# ishtar git branch
-[ $VERSION ] || ( echo 'VERSION empty. Default to: "new-stable".' ; );
-VERSION=new-stable
+[ $VERSION ] || ( echo 'VERSION empty. Default to: "stable".' ; );
+VERSION=stable
# change it for each instance on a same server
UWSGI_PORT=8891
-# webserver port - default "[::]:80"
-NGINX_PORT="[::]:80"
-if [ $URL = 'localhost' ]; then
- # don't clash with default server on localhost
- NGINX_PORT="[::]:8080"
-fi
+# webserver port - default "80"
+NGINX_PORT="80"
# don't forget the trailing slash
INSTALL_PREFIX=/srv/
@@ -50,11 +46,16 @@ INSTALL_PREFIX=/srv/
# if a virtualenv is used put the full path of the python to use
PYTHON=python
+# default for debian
+UWSGI_AVAILABLE_PATH='/etc/uwsgi/apps-available/'
+UWSGI_ENABLE_PATH='/etc/uwsgi/apps-enabled/'
+NGINX_AVAILABLE_PATH='/etc/nginx/sites-available/'
+NGINX_ENABLE_PATH='/etc/nginx/sites-enabled/'
+
# Don't edit below this line
######################################################################
echo "* installing dependencies"
-
if [ $DB_HOST = "127.0.0.1" ]; then
apt-get -q -y install postgresql postgresql-$PG_VERSION-postgis postgresql 2> /dev/null > /dev/null
fi
@@ -64,7 +65,7 @@ apt-get -q -y install git apg python-pip 2> /dev/null > /dev/null
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-psycopg2 python-gdal gettext python-bs4 python-tidylib \
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
@@ -78,7 +79,7 @@ DB_PASSWORD=`apg -a 0 -M ncl -n 6 -x 10 -m 10 |head -n 1`
fi
-DB_NAME='ishtar'$SHORT_NAME
+DB_NAME='ishtar'$APP_NAME
INSTALL_PATH=$INSTALL_PREFIX$DB_NAME
DATE=`date +%F`
CDIR=`pwd`
@@ -91,12 +92,14 @@ echo "* create database and user"
DB_PASSWORD=$DB_PASSWORD DB_NAME=$DB_NAME PROJECT_NAME=$PROJECT_NAME PG_VERSION=$PG_VERSION su postgres <<'EOF'
cd
if [ `psql -l | grep template_postgis | wc -l` -ne 1 ]; then
+ echo " * create template_postgis"
createdb template_postgis
psql -d template_postgis -f /usr/share/postgresql/$PG_VERSION/contrib/postgis-1.5/postgis.sql 2> /dev/null > /dev/null
psql -d template_postgis -f /usr/share/postgresql/$PG_VERSION/contrib/postgis-1.5/spatial_ref_sys.sql 2> /dev/null > /dev/null
fi
if [ `psql -l | grep $DB_NAME | wc -l` -ne 1 ]; then
+ echo " * create "$DB_NAME
createuser --echo --adduser --createdb --encrypted $DB_NAME 2> /dev/null > /dev/null
psql --command "ALTER USER "$DB_NAME" with password '"$DB_PASSWORD"';" 2> /dev/null > /dev/null
createdb -T template_postgis --echo --owner $DB_NAME --encoding UNICODE $DB_NAME "$PROJECT_NAME" 2> /dev/null > /dev/null
@@ -113,33 +116,34 @@ mkdir $INSTALL_PATH
mkdir $INSTALL_PATH'/conf'
cd $INSTALL_PATH
-echo ' * oook!'
-git clone git://git.proxience.net/git/oook_replace.git 2> /dev/null
echo ' * ishtar'
-git clone git://git.proxience.net/git/ishtar.git 2> /dev/null
+git clone git://git.proxience.com/git/ishtar.git 2> /dev/null
+echo ' * oook!'
+git clone git://git.proxience.com/git/oook_replace.git 2> /dev/null
+ln -s $INSTALL_PATH'/oook_replace/oook_replace' $INSTALL_PATH'/ishtar/'
+
cd ishtar
git fetch 2> /dev/null
git checkout $VERSION 2> /dev/null
-cp -ra example_project $SHORT_NAME 2> /dev/null > /dev/null
+cp -ra example_project $APP_NAME 2> /dev/null > /dev/null
-rm $SHORT_NAME/settings.py
-ln -s $INSTALL_PATH"/example_project/settings.py" $INSTALL_PATH"/"$SHORT_NAME"/"
+rm $APP_NAME/settings.py
+ln -s $INSTALL_PATH"/ishtar/example_project/settings.py" $INSTALL_PATH"/ishtar/"$APP_NAME"/"
-APP_DIR=$INSTALL_PATH'/ishtar/'$SHORT_NAME
+APP_DIR=$INSTALL_PATH'/ishtar/'$APP_NAME
echo '* load parameters'
-
-sed -s "s/#SHORT_NAME#/$SHORT_NAME/g;\
- s/#DATE#/$DATE/g;\
- s/#PROJECT_NAME#/$PROJECT_NAME/g;\
- s/#DB_HOST#/$DB_HOST/g;\
- s/#DB_NAME#/$DB_NAME/g;\
- s/#DB_PORT#/$DB_PORT/g;\
- s/#APP_DIR#/$APP_DIR/g;\
- s/#SECRET_KEY#/$SECRET_KEY/g;\
- s/#DB_PASSWORD#/$DB_PASSWORD/g;\
- s/#UWSGI_PORT#/$UWSGI_PORT/g;" $CDIR'/local_settings.py.sample' > \
+sed -s "s|#APP_NAME#|$APP_NAME|g;\
+ s|#DATE#|$DATE|g;\
+ s|#PROJECT_NAME#|$PROJECT_NAME|g;\
+ s|#DB_HOST#|$DB_HOST|g;\
+ s|#DB_NAME#|$DB_NAME|g;\
+ s|#DB_PORT#|$DB_PORT|g;\
+ s|#APP_DIR#|$APP_DIR|g;\
+ s|#SECRET_KEY#|$SECRET_KEY|g;\
+ s|#DB_PASSWORD#|$DB_PASSWORD|g;\
+ s|#UWSGI_PORT#|$UWSGI_PORT|g;" $CDIR'/local_settings.py.sample' > \
$INSTALL_PATH'/conf/local_settings.py'
ln -s $INSTALL_PATH'/conf/local_settings.py' $APP_DIR'/local_settings.py'
@@ -152,9 +156,9 @@ chmod -R g+w $APP_DIR'/media'
# logs
mkdir -p /var/log/django/
chown root:www-data '/var/log/django'
-touch '/var/log/django/ishtar-'$SHORT_NAME'.log'
-chown root:www-data '/var/log/django/ishtar-'$SHORT_NAME'.log'
-chmod g+w '/var/log/django/ishtar-'$SHORT_NAME'.log'
+touch '/var/log/django/ishtar-'$APP_NAME'.log'
+chown root:www-data '/var/log/django/ishtar-'$APP_NAME'.log'
+chmod g+w '/var/log/django/ishtar-'$APP_NAME'.log'
cd $APP_DIR
./manage.py collectstatic --noinput 2> /dev/null > /dev/null
@@ -219,26 +223,26 @@ rm /tmp/site.json
echo '* uwsgi configuration'
-sed -s "s/#SHORT_NAME#/$SHORT_NAME/g;\
+sed -s "s/#APP_NAME#/$APP_NAME/g;\
s/#DB_NAME#/$DB_NAME/g;\
s/#URL#/$URL/g;\
s/#UWSGI_PORT#/$UWSGI_PORT/g;" $CDIR'/uwsgi.ini.template' > \
$INSTALL_PATH'/conf/uwsgi.ini'
-sed -s "s/#SHORT_NAME#/$SHORT_NAME/g;" $CDIR'/django.wsgi.template' > \
- $INSTALL_PATH'/conf/'$SHORT_NAME'.wsgi'
+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' \
- '/etc/uwsgi/apps-available/'$SHORT_NAME'-uwsgi.ini'
-ln -s '/etc/uwsgi/apps-available/'$SHORT_NAME'-uwsgi.ini' \
- '/etc/uwsgi/apps-enabled/'$SHORT_NAME'-uwsgi.ini'
+ $UWSGI_AVAILABLE_PATH$APP_NAME'.ini'
+ln -s $UWSGI_AVAILABLE_PATH$APP_NAME'.ini' \
+ $UWSGI_ENABLE_PATH$APP_NAME'.ini'
service uwsgi restart
echo '* nginx configuration'
-sed -s "s/#SHORT_NAME#/$SHORT_NAME/g;\
+sed -s "s/#APP_NAME#/$APP_NAME/g;\
s/#UWSGI_PORT#/$UWSGI_PORT/g;\
s/#DB_NAME#/$DB_NAME/g;\
s/#DATE#/$DATE/g;\
@@ -246,9 +250,9 @@ sed -s "s/#SHORT_NAME#/$SHORT_NAME/g;\
s/#URL#/$URL/g;" $CDIR'/nginx.conf.template' > \
$INSTALL_PATH'/conf/nginx.conf'
ln -s $INSTALL_PATH'/conf/nginx.conf' \
- '/etc/nginx/sites-available/'$SHORT_NAME'.conf'
-ln -s '/etc/nginx/sites-available/'$SHORT_NAME'.conf' \
- '/etc/nginx/sites-enabled/'$SHORT_NAME'.conf'
+ $NGINX_AVAILABLE_PATH$APP_NAME'.conf'
+ln -s $NGINX_AVAILABLE_PATH$APP_NAME'.conf' \
+ $NGINX_ENABLE_PATH$APP_NAME'.conf'
service nginx restart
diff --git a/install/local_settings.py.sample b/install/local_settings.py.sample
index db40fe7bf..cbee9fa85 100644
--- a/install/local_settings.py.sample
+++ b/install/local_settings.py.sample
@@ -7,10 +7,10 @@ TEMPLATE_DEBUG = DEBUG
SQL_DEBUG = False
APP_NAME = u"#PROJECT_NAME#"
-ROOT_URLCONF = '#SHORT_NAME#.urls'
+ROOT_URLCONF = '#APP_NAME#.urls'
STATIC_URL = '/static-#DATE#/'
SECRET_KEY = "#SECRET_KEY#"
-LOGFILE = "/var/log/django/ishtar-#SHORT_NAME#.log"
+LOGFILE = "/var/log/django/ishtar-#APP_NAME#.log"
MEDIA_ROOT = "#APP_DIR#/media/"
diff --git a/install/nginx.conf.template b/install/nginx.conf.template
index 0a68be712..c41018786 100644
--- a/install/nginx.conf.template
+++ b/install/nginx.conf.template
@@ -2,17 +2,17 @@ server {
listen #NGINX_PORT#;
server_name #URL#;
root /srv/#DB_NAME#/ishtar/;
- access_log /var/log/django/#SHORT_NAME#-access.log;
- error_log /var/log/django/#SHORT_NAME#-error.log;
+ 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/#SHORT_NAME#/static/; # STATIC_ROOT
+ alias /srv/#DB_NAME#/ishtar/#APP_NAME#/static/; # STATIC_ROOT
expires 30d;
}
location /media/ { # MEDIA_URL
- alias /srv/#DB_NAME#/ishtar/#SHORT_NAME#/media/; # MEDIA_ROOT
+ alias /srv/#DB_NAME#/ishtar/#APP_NAME#/media/; # MEDIA_ROOT
expires 30d;
}
diff --git a/install/uninstall.sh b/install/uninstall.sh
new file mode 100755
index 000000000..71a5dae17
--- /dev/null
+++ b/install/uninstall.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# only lower alpha-numeric char and '_' and must start with a letter
+[ $APP_NAME ] || ( echo 'APP_NAME empty. Default to: "default".' ; );
+APP_NAME=${APP_NAME-default}
+# don't forget the trailing slash
+INSTALL_PREFIX=/srv/
+
+read -r -p "Are you sure to delete "$APP_NAME" app? [y/N] " response
+response=${response,,} # tolower
+if [[ $response =~ ^(yes|y)$ ]]
+then
+ echo '* deleting '$APP_NAME;
+else
+ echo "canceled";
+ exit;
+fi
+
+# default for debian
+UWSGI_AVAILABLE_PATH='/etc/uwsgi/apps-available/'
+UWSGI_ENABLE_PATH='/etc/uwsgi/apps-enabled/'
+NGINX_AVAILABLE_PATH='/etc/nginx/sites-available/'
+NGINX_ENABLE_PATH='/etc/nginx/sites-enabled/'
+
+DB_NAME='ishtar'$APP_NAME
+INSTALL_PATH=$INSTALL_PREFIX$DB_NAME
+
+rm -f $UWSGI_AVAILABLE_PATH$APP_NAME'.ini'
+rm -f $UWSGI_ENABLE_PATH$APP_NAME'.ini'
+rm -f $NGINX_AVAILABLE_PATH$APP_NAME'.conf'
+rm -f $NGINX_ENABLE_PATH$APP_NAME'.conf'
+
+rm -rf $INSTALL_PATH
+
+echo "All file cleaned."
+echo "You can delete database '"$DB_NAME"' to fully clean your installation."
diff --git a/install/uwsgi.ini.template b/install/uwsgi.ini.template
index 0e2fc6554..7a20c058c 100644
--- a/install/uwsgi.ini.template
+++ b/install/uwsgi.ini.template
@@ -1,6 +1,6 @@
[uwsgi]
# variables
-projectname = #SHORT_NAME#
+projectname = #APP_NAME#
projectdomain = #URL#
base = /srv/#DB_NAME#/ishtar/