-
Notifications
You must be signed in to change notification settings - Fork 7
/
install.bash
172 lines (152 loc) · 5.92 KB
/
install.bash
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#!/bin/bash
clear
user=$(logname)
script_name=`basename "$0"`
script_folder='/etc/FenixManager'
[[ "${user}" == "root" ]] && userfolder="/root" || userfolder="/home/${user}"
packets_to_install=(apt-transport-https python3 python3-pip neovim htop fail2ban sqlite3 debsums zip unzip mlocate ufw net-tools jq git make cmake htmlmin at)
updates_command=(update full-upgrade autoremove)
pip_packages=(colorama argparse requests)
if [ $(id -u) -ne 0 ]; then
error "Este escrip debe ser ejecutado como root: sudo ./$script_name"
exit 1
fi
mkdir /var/log/FenixManager/ &>/dev/null
clone_fenix(){
trap "exit 130" SIGINT SIGTERM
echo -e "\\033[34m〢────────────────〢 \\033[1;37mCLONANDO FENIXMANAGER \\033[34m〢─────────────────〢"
local branch="master"
local gitlog=$(mktemp -t gitlog.XXXXXXXX)
local url="https://github.com/M1001-byte/FenixManager"
if [ -d /etc/FenixManager ];then
rm -rf /etc/FenixManager/ &>/dev/null
fi
git clone -b "${branch}" "$url" "/etc/FenixManager"
if [ $? -ne 0 ];then
echo -e '\033[1;31mFallo al clonar el repositorio\033[1;37m.'
echo -e "\033[1;33mArchivo de log: \033[1;37m$gitlog/"
exit $?
fi
chmod -R 777 /etc/FenixManager
[ -f "/etc/FenixManager/preferences.bash" ] && rm -rf "/etc/FenixManager/preferences.bash"
echo -e 'alias fenix="sudo /etc/FenixManager/main.bash"' >> "${userfolder}/.bashrc"
echo "#!/bin/bash" > "/etc/FenixManager/preferences.bash"
echo "# No modificar " >> "/etc/FenixManager/preferences.bash"
echo "user_folder='${userfolder}'" >> "/etc/FenixManager/preferences.bash"
echo "script_dir='${script_folder}'" >> "/etc/FenixManager/preferences.bash"
echo "branch_clone='${branch}'" >> "/etc/FenixManager/preferences.bash"
local version_for_branch=$(curl -s "https://raw.githubusercontent.com/M1001-byte/FenixManager/${branch}/version")
echo "version='${version_for_branch}'" >> "/etc/FenixManager/preferences.bash"
return 0
}
change_dns(){
chattr -i /etc/resolv.conf &>/dev/null
mv /etc/resolv.conf /etc/resolv.conf.bak
echo "nameserver 1.1.1.1" > /etc/resolv.conf
echo "nameserver 1.0.0.1" > /etc/resolv.conf
chattr +i /etc/resolv.conf
}
update_system(){
echo -e "${BLUE}〢───────────────〢 ${WHITE}ACTUALIZANDO EL SISTEMA ${BLUE}〢────────────────〢${WHITE}"
for i in "${updates_command[@]}" ; do
bar "apt-get $i -y" || {
if [ $? -eq 130 ];then
error 'Accion cancelada.'
exit 130
else
error "Fallo al instalar $packets."
info 'Pruebe ejecutando manualmente: sudo dpkg --configure -a '
exit $?
fi
}
done
}
install_packets(){
echo -e "${BLUE}〢────────────〢 ${WHITE}INSTALANDO PAQUETES NECESARIOS ${BLUE}〢────────────〢${WHITE}"
for packets in "${packets_to_install[@]}" ; do
bar --title "${packets}" --cmd "apt-get install $packets -y" || {
if [ $? -eq 130 ];then
error 'Accion cancelada.'
exit 130
else
error "Fallo al instalar $packets."
exit $?
fi
}
done
sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/" &>/dev/null
}
install_python3_package(){
echo -e "${BLUE}〢───────────〢 ${WHITE}INSTALANDO PAQUETES DE PYTHON3 ${BLUE}〢─────────────〢${WHITE}"
for i in "${pip_packages[@]}" ; do
bar --title "$i" --cmd "pip3 install $i" || {
if [ $? -eq 130 ];then
error 'Accion cancelada.'
exit 130
else
error "Fallo al instalar $packets."
exit $?
fi
}
done
}
config_bashrc(){
local print_fenix_banner='print_fenix_banner () {
local version="$(cat /etc/FenixManager/version 2>/dev/null)"
local WHITE="\033[1;37m"
local GREEN="\\033[32m"
local RED="\\033[1;31m"
local YELLOW="\\033[33m"
banner="${RED}
_/| |\_
/ | | \
| \ / |
| \ / \ / |
| \ | | / |
| \ _\_/^\_/_ / |
| --\//-- |
\_ \ / _/
\__ | __/
\ _ /
_/ \_ ${YELLOW} Mathiue 1001${RED}
/ _/|\_ \ ${YELLOW} Fenix Manager${RED}
/ | \ ${YELLOW}Version: ${GREEN}${version}${RED}
/ v \
"
echo -e "$banner"
echo -e "${WHITE}Para mostrar el panel: ${GREEN}fenix${WHITE}"
}
print_fenix_banner
'
if ! grep -q "print_fenix_banner" <<< "$(declare -F)";then
echo -e "${print_fenix_banner}" >> "$userfolder/.bashrc"
fi
}
add_basic_ufw_rules(){
trap "exit 130" SIGINT SIGTERM
echo -e "${BLUE}〢────────────────〢 ${WHITE}AGREGANDO REGLAS UFW ${BLUE}〢──────────────────〢${WHITE}"
info "Agregando reglas basicas: ssh (22), http (80), https (443), dns (53/udp)"
bar "ufw allow ssh"
bar "ufw allow http"
bar "ufw allow https"
bar "ufw logging on"
bar "ufw reload"
# disabled ipv6
sed -i "s/IPV6=yes/IPV6=no/" "${ufw_file}" &>/dev/null
}
initial(){
change_dns
clone_fenix
source "/etc/FenixManager/funciones/funciones.bash"
source "/etc/FenixManager/funciones/color.bash"
update_system
install_packets
install_python3_package
add_basic_ufw_rules
config_bashrc
chmod -x /etc/update-motd.d/* & > /dev/null # remove all motd message
info 'Su VPS se reiniciara.'
read -p 'Presione [Enter] para reiniciar.'
reboot
}
initial