diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8f4b750 --- /dev/null +++ b/Makefile @@ -0,0 +1,79 @@ +PROJECT_NAME = wikilibras +VLIBRAS_NAME = vlibras-wiki +PYBOSSA_CONF = /etc/apache2/sites-available/pybossa.conf +PROJECT_DIR = $(CURDIR) +SED_REPLACE_ALL = sed -i "s/$(1)/$(2)/g" "$(3)" +SED_REPLACE_ALL_PATH = sed -i "s\#$(1)\#$(2)\#g" "$(3)" + +ifndef LOCALHOST + ifndef NETWORK_INTERFACE + NETWORK_INTERFACE := $(shell ip route | awk '{print $$5; exit}') + endif + ifdef NETWORK_INTERFACE + LOCALHOST := $(shell ip addr list ${NETWORK_INTERFACE} | grep "inet " | cut -d ' ' -f6 | cut -d/ -f1) + endif +endif + +ifndef LOCALHOST + LOCALHOST := localhost +endif + +install: uninstall config + @( \ + virtualenv ./env/; \ + . ./env/bin/activate; \ + pip install -U pip; \ + pip install -U uwsgi; \ + pip install -U ndg-httpsclient; \ + pip install -r requirements.txt; \ + ) +ifdef PYBOSSA_API_KEY + @ curl "http://${LOCALHOST}/${PROJECT_NAME}-backend/create_project" && echo "" + @ echo "http://${LOCALHOST}/${PROJECT_NAME}-backend/create_project" +endif + +config: + @ $(info Using interface: ${NETWORK_INTERFACE}) + @ $(info Using local IP: ${LOCALHOST}) + @ cp settings_local.py.tmpl settings_local.py + @ $(call SED_REPLACE_ALL_PATH,,${PROJECT_DIR},settings_local.py) + @ $(call SED_REPLACE_ALL,localhost,${LOCALHOST},settings_local.py) +ifdef PYBOSSA_API_KEY + @ $(call SED_REPLACE_ALL,my-api-key,${PYBOSSA_API_KEY},settings_local.py) +endif + @ cp ./contrib/${PROJECT_NAME}.wsgi.tmpl ./contrib/${PROJECT_NAME}.wsgi + @ $(call SED_REPLACE_ALL_PATH,,${PROJECT_DIR},./contrib/${PROJECT_NAME}.wsgi) + @ cp ./contrib/apache/${PROJECT_NAME}.conf.tmpl ./contrib/apache/${PROJECT_NAME}.conf + @ $(call SED_REPLACE_ALL,ServerName localhost,ServerName ${LOCALHOST},./contrib/apache/${PROJECT_NAME}.conf) + @ $(call SED_REPLACE_ALL,user1,$$USER,./contrib/apache/${PROJECT_NAME}.conf) + @ $(call SED_REPLACE_ALL,group1,$$USER,./contrib/apache/${PROJECT_NAME}.conf) + @ $(call SED_REPLACE_ALL_PATH,,${PROJECT_DIR},./contrib/apache/${PROJECT_NAME}.conf) + @ sudo cp -u ${PYBOSSA_CONF} /etc/apache2/sites-available/${VLIBRAS_NAME}.conf + @ if grep -q "${PROJECT_NAME}" "/etc/apache2/sites-available/${VLIBRAS_NAME}.conf"; \ + then \ + echo "A previous WSGI daemon definition for '${PROJECT_NAME}' in: /etc/apache2/sites-available/${VLIBRAS_NAME}.conf"; \ + else \ + sudo sed -i -e "/Header/,/VirtualHost>/d" /etc/apache2/sites-available/${VLIBRAS_NAME}.conf; \ + sudo sed -n -e '/WSGIDaemonProcess/,/VirtualHost>/p' ./contrib/apache/${PROJECT_NAME}.conf | \ + sudo tee -a /etc/apache2/sites-available/${VLIBRAS_NAME}.conf > /dev/null; \ + fi + @ sudo a2dissite pybossa.conf + @ sudo a2ensite ${VLIBRAS_NAME}.conf + @ sudo apachectl configtest + @ sudo service apache2 reload + +clean: + @ find . -regextype posix-awk -regex "(.*.log|.*.pyc)" -type f -print -delete + +uninstall: clean + @ rm -rf ./env/ + @ rm -f ./settings_local.py + @ rm -f ./contrib/${PROJECT_NAME}.wsgi + @ sudo rm -f /etc/apache2/sites-available/${VLIBRAS_NAME}.conf + @ sudo rm -f /etc/apache2/sites-enabled/${VLIBRAS_NAME}.conf + +run: + @ ( \ + . ./env/bin/activate; \ + python main.py; \ + ) diff --git a/contrib/apache/wikilibras.conf.tmpl b/contrib/apache/wikilibras.conf.tmpl index bd52669..c82d0fa 100644 --- a/contrib/apache/wikilibras.conf.tmpl +++ b/contrib/apache/wikilibras.conf.tmpl @@ -1,5 +1,5 @@ - ServerName localhost + ServerName localhost WSGIDaemonProcess wikilibras user=user1 group=group1 threads=5 WSGIScriptAlias /wikilibras-backend /contrib/wikilibras.wsgi @@ -19,10 +19,10 @@ Require all granted - Header set Access-Control-Allow-Origin "*" + Header set Access-Control-Allow-Origin "*" - ServerAdmin webmaster@localhost + ServerAdmin webmaster@localhost - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined diff --git a/wikilibras.py b/wikilibras.py index 0b7fafd..fea844a 100644 --- a/wikilibras.py +++ b/wikilibras.py @@ -28,7 +28,14 @@ class Wikilibras: def __update_project_info(self, project): template = self.env.get_template('index.html') - project.info['task_presenter'] = template.render(server=self.config['HOST_STATIC_FILES_ENDPOINT'], server_backend=self.config['HOST_ENDPOINT'], app_shortname=self.config['PYBOSSA_APP_SHORT_NAME'], api_host=self.config['API_HOST'], homepage_url=self.config['HOMEPAGE_URL'], upload_sign_host=self.config['UPLOAD_SIGN_HOST']) + project.info['task_presenter'] = template.render( + server = self.config['HOST_STATIC_FILES_ENDPOINT'], + server_backend = self.config['HOST_ENDPOINT'], + app_shortname = self.config['PYBOSSA_APP_SHORT_NAME'], + api_host = self.config['API_HOST'], + homepage_url = self.config['HOMEPAGE_URL'], + upload_sign_host = self.config['UPLOAD_SIGN_HOST'] + ) project.info['thumbnail'] = self.config['HOST_STATIC_FILES_ENDPOINT'] + "/img/thumbnail.png" project.info['sched'] = "incremental" project.info['published'] = True -- libgit2 0.21.2