Makefile.old
5.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
PROJECT_NAME := pybossa
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 IP
ifneq ($(shell ip route | grep "default" | awk '{print $$5; exit}'),)
IP := $(shell ip route get 1 | awk '{print $$7; exit}')
else
IP := 127.0.0.1
endif
endif
LOCALHOST ?= ${IP}
install: .install config build
build: env create-db
@ sudo chown redis:redis /etc/redis/redis.conf
@ sudo chown redis:redis /etc/redis/sentinel.conf
@ sudo service redis-server stop
@ sudo update-rc.d -f redis-server remove
@ while ! sudo service supervisor restart; do echo "fail, retrying ..."; done
@ sudo supervisorctl restart rq-scheduler
@ sudo supervisorctl restart rq-worker
@ sudo supervisorctl restart pybossa
clean:
@ find . -regextype posix-awk -regex "(.*.log|.*.pyc)" -type f -print -delete
config:
@ cp ./alembic.ini.template ./alembic.ini
@ cp ./settings_local.py.tmpl ./settings_local.py
@ cp ./contrib/pybossa.wsgi.tmpl ./contrib/pybossa.wsgi
@ cp ./contrib/apache/pybossa.conf.tmpl ./contrib/apache/pybossa.conf
@ cp ./contrib/pybossa.ini.template ./contrib/pybossa.ini
@ cp ./contrib/supervisor/rq-scheduler.conf.template ./contrib/supervisor/rq-scheduler.conf
@ cp ./contrib/supervisor/rq-worker.conf.template ./contrib/supervisor/rq-worker.conf
@ cp ./contrib/supervisor/pybossa.conf.template ./contrib/supervisor/pybossa.conf
@ ln -sf ./pybossa/themes/default/translations/ ./pybossa/translations
@ $(call SED_REPLACE_ALL_PATH,<path-to-project>,$(CURDIR),./contrib/pybossa.wsgi)
@ $(call SED_REPLACE_ALL,ServerName localhost,ServerName ${LOCALHOST},./contrib/apache/pybossa.conf)
@ $(call SED_REPLACE_ALL,user1,$$USER,./contrib/apache/pybossa.conf)
@ $(call SED_REPLACE_ALL,group1,$$USER,./contrib/apache/pybossa.conf)
@ $(call SED_REPLACE_ALL_PATH,<path-to-project>,$(CURDIR),./contrib/apache/pybossa.conf)
@ $(call SED_REPLACE_ALL_PATH,/home/pybossa/pybossa,$(CURDIR),./contrib/pybossa.ini)
@ $(call SED_REPLACE_ALL_PATH,/home/pybossa/pybossa,$(CURDIR),./contrib/supervisor/rq-scheduler.conf)
@ $(call SED_REPLACE_ALL,user=pybossa,user=$$USER,./contrib/supervisor/rq-scheduler.conf)
@ $(call SED_REPLACE_ALL_PATH,/home/pybossa/pybossa,$(CURDIR),./contrib/supervisor/rq-worker.conf)
@ $(call SED_REPLACE_ALL,user=pybossa,user=$$USER,./contrib/supervisor/rq-worker.conf)
@ $(call SED_REPLACE_ALL_PATH,/home/pybossa/pybossa,$(CURDIR),./contrib/supervisor/pybossa.conf)
@ $(call SED_REPLACE_ALL_PATH,pybossa.ini,contrib/pybossa.ini,./contrib/supervisor/pybossa.conf)
@ $(call SED_REPLACE_ALL,user=pybossa,user=$$USER,./contrib/supervisor/pybossa.conf)
@ sudo install -m 755 -p ./contrib/apache/pybossa.conf /etc/apache2/sites-available/pybossa.conf
@ sudo install -m 644 -p ./contrib/redis-supervisor/redis.conf /etc/redis/redis.conf
@ sudo install -m 644 -p ./contrib/redis-supervisor/sentinel.conf /etc/redis/sentinel.conf
@ sudo install -m 644 -p ./contrib/supervisor/pybossa.conf /etc/supervisor/conf.d/pybossa.conf
@ sudo install -m 644 -p ./contrib/supervisor/redis-sentinel.conf /etc/supervisor/conf.d/redis-sentinel.conf
@ sudo install -m 644 -p ./contrib/supervisor/redis-server.conf /etc/supervisor/conf.d/redis-server.conf
@ sudo install -m 644 -p ./contrib/supervisor/rq-scheduler.conf /etc/supervisor/conf.d/rq-scheduler.conf
@ sudo install -m 644 -p ./contrib/supervisor/rq-worker.conf /etc/supervisor/conf.d/rq-worker.conf
@ cat /etc/apache2/sites-available/pybossa.conf
@ ([ -e /etc/apache2/sites-enabled/wikilibras.conf ] && sudo a2dissite wikilibras.conf) || sudo a2ensite pybossa.conf
@ sudo service apache2 restart
@ sudo service apache2 reload
env:
@ ( \
virtualenv ./env/; \
. ./env/bin/activate; \
pip install -U pip; \
pip install -U uwsgi; \
pip install -U ndg-httpsclient; \
pip install -r requirements.txt; \
)
uninstall: clean
@ rm -rf ./env/
@ rm -f ./settings_local.py
@ rm -f ./contrib/${PROJECT_NAME}.wsgi
@ rm -f ./contrib/apache/${PROJECT_NAME}.conf
@ sudo rm -f /etc/apache2/sites-available/${PROJECT_NAME}.conf
@ sudo rm -f /etc/apache2/sites-enabled/${PROJECT_NAME}.conf
run:
@ ( \
. ./env/bin/activate; \
python main.py; \
)
.install:
@ sudo apt-get update && \
sudo apt-get install -y git-core \
postgresql postgresql-server-dev-all libpq-dev python-psycopg2 \
python-virtualenv \
python-dev build-essential libjpeg-dev libssl-dev swig libffi-dev \
redis-server \
supervisor \
apache2 apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-wsgi
@ echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
@ sudo a2enconf servername
@ sudo a2enmod headers
-@ sudo a2dissite 000-default.conf
PYBOSSA_DB_USERNAME := pybossa
PYBOSSA_DB_PASSWORD := tester
PYBOSSA_DB_CREATE := psql -c \"CREATE USER pybossa WITH PASSWORD '${PYBOSSA_DB_PASSWORD}'\";
PYBOSSA_DB_CREATE += psql -c \"CREATE DATABASE pybossa OWNER ${PYBOSSA_DB_USERNAME}\";
PYBOSSA_DB_DROP := psql -c \"DROP DATABASE ${PYBOSSA_DB_USERNAME}\";
PYBOSSA_DB_DROP += psql -c \"DROP USER ${PYBOSSA_DB_USERNAME}\";
PYBOSSA_DB_DUMPFILE := pybossa-dump.sql
PYBOSSA_DB_VERBOSE := -v
PYBOSSA_DB_ADMINFILE := wikilibras-pybossa.sql
.postgresql:
-@ sudo service postgresql restart
create-db: .postgresql env
@ sudo su postgres -c "${PYBOSSA_DB_CREATE}"
@ ( \
. ./env/bin/activate; \
python cli.py db_create; \
)
create-admin:
@ sudo su postgres -c "psql --set ON_ERROR_STOP=off -f ${PYBOSSA_DB_ADMINFILE} ${PYBOSSA_DB_USERNAME}"
drop-db: .postgresql
@ sudo su postgres -c "${PYBOSSA_DB_DROP}"
${PYBOSSA_DB_DUMPFILE}:
@ sudo su postgres -c "PGPASSWORD='${PYBOSSA_DB_PASSWORD}' pg_dump ${PYBOSSA_DB_VERBOSE} -b --inserts ${PYBOSSA_DB_USERNAME};" > ${PYBOSSA_DB_DUMPFILE}