diff options
Diffstat (limited to 'install')
| -rw-r--r-- | install/README | 9 | ||||
| -rw-r--r-- | install/django.wsgi.template | 2 | ||||
| -rwxr-xr-x[-rw-r--r--] | install/install.sh | 92 | ||||
| -rw-r--r-- | install/local_settings.py.sample | 4 | ||||
| -rw-r--r-- | install/nginx.conf.template | 8 | ||||
| -rwxr-xr-x | install/uninstall.sh | 36 | ||||
| -rw-r--r-- | install/uwsgi.ini.template | 2 | 
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/ | 
