-
Notifications
You must be signed in to change notification settings - Fork 5
/
config
executable file
·120 lines (99 loc) · 3.18 KB
/
config
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
#!/bin/bash
## Configuración básica para montar el sitio en un servidor Ubuntu 18.04, DigitalOcean
if [[ "$( dirname $0 )" != '.' ]]
then
echo "Ejecute este script en la raíz del proyecto con:
./config"
exit 1
fi
# Configuración de riesgo, introduce varios ficheros al sistema
if [[ "$1" == 'install' ]]
then
set -e
cp gunicorn.service /etc/systemd/system/gunicorn.service
cp web-buses.nginx-config /etc/nginx/sites-available/web-buses
# Probar la configuración
nginx -t
test -L /etc/nginx/sites-enabled/web-buses ||
ln -s /etc/nginx/sites-available/web-buses /etc/nginx/sites-enabled
systemctl daemon-reload
systemctl enable gunicorn.service
systemctl start gunicorn.service
systemctl start nginx
fi
# Configuración sin riesgo, no introduce ficheros en el sistema por parte del proyecto
if [ "$VIRTUAL_ENV" ] && [ $USER != 'root' ]
then
# Configuración dentro del ambiente virtual de Python3
pip install -r requirements.txt # Instalar Django y complementos
echo "[Unit]
Description=Gunicorn daemon server:$PWD
After=network.target
[Service]
User=$USER
Group=www-data
WorkingDirectory=$PWD/buses
ExecStart=$VIRTUAL_ENV/bin/gunicorn --access-logfile - --workers 3 --bind unix:$PWD/web-buses.sock buses.wsgi:application
[Install]
WantedBy=multi-user.target
" > gunicorn.service
echo "server {
listen 443;
server_name transportessangabriel.com www.transportessangabriel.com 143.198.233.186;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root $PWD/buses;
}
location / {
include proxy_params;
proxy_pass http://unix:$PWD/web-buses.sock;
}
}" > web-buses.nginx-config
elif [ "$VIRTUAL_ENV" ] && [ $USER == 'root' ]
then
echo "No ejecute este script con SUDO dentro del ambiente virtual"
elif [[ $USER == 'root' ]] && [ "0$VIRTUAL_ENV" == '0' ]
then
# Instalar las dependencias del sistema:
{ python3 --version && pip3 --version && nginx -v ; } || {
# Se actualiza el sistema
apt update
apt upgrade
# Se instala Python3 en el sistema
apt install -y python3 python3-pip
# Instalar el web-service
apt install -y nginx
systemctl stop nginx.service
}
# Instalación de virtualenv
pip3 install virtualenv
else
virtualenv --version || {
echo "
Ejecute el siguiente comando para instalar las dependencias:
$ sudo ./config
"
}
if test -d venv_server
then
:
else
{ which python3.9 &&
virtualenv venv_server --python=python3.9
} || {
which python3.8 &&
virtualenv venv_server --python=python3.8
} || {
which python3.7 &&
virtualenv venv_server --python=python3.7
}
echo "
Utilice el siguiente comando para acceder al ambiente virtual
agregar el mismo al final de la configuración ~/.bashrc para
ejecutarlo siempre por defecto al ingresar al servidor.
$ source $PWD/venv_server/bin/activate"
fi
source ./venv_server/bin/activate
$0 # Ejecuta la configuración dentro del ambiente virtual
fi
exit 0