diff options
Diffstat (limited to 'install/install.sh')
-rwxr-xr-x[-rw-r--r--] | install/install.sh | 92 |
1 files changed, 48 insertions, 44 deletions
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 |