You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.3 KiB
109 lines
3.3 KiB
#!/bin/bash
|
|
|
|
PATH=/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
|
|
|
|
if [ ! -f /etc/debian_version ]; then
|
|
echo "Script required Debian"
|
|
exit 0
|
|
fi
|
|
|
|
while [ -n "$1" ]
|
|
do
|
|
case "$1" in
|
|
-p) echo "Password for db ***"
|
|
dbpassw="$2"
|
|
shift ;;
|
|
--) shift
|
|
break ;;
|
|
*) echo "$1 is not an option" ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
|
|
|
|
if [ -z "$dbpassw" ]; then
|
|
read -s -p "Enter new password for database: " dbpassw
|
|
if [ -z "$dbpassw" ]; then
|
|
echo "Please type new password for database with parameter -p <password> and try again"
|
|
exit 0;
|
|
fi
|
|
else
|
|
echo "Pass new password for db from parameter, use it!"
|
|
fi
|
|
|
|
|
|
apt -y update
|
|
apt -y upgrade
|
|
|
|
sleep 1
|
|
apt -y install mariadb-server libmariadb-dev libmariadbclient-dev \
|
|
mariadb-client python3-dev python3-pip python3-pil python3-venv uwsgi \
|
|
nginx uwsgi-plugin-python3 libsnmp-dev git gettext libcurl4-openssl-dev \
|
|
libssl-dev expect redis-server
|
|
|
|
sleep 3
|
|
|
|
mkdir -p /var/www
|
|
cd /var/www
|
|
|
|
mysql -u root -e "create database djing_db charset utf8 collate utf8_general_ci;"
|
|
mysql -u root -e "create user 'djinguser'@'localhost' identified by '${dbpassw}';"
|
|
mysql -u root -e "grant all privileges on djing_db.* to 'djinguser'@'localhost';"
|
|
mysql -u root -e "flush privileges;"
|
|
|
|
git clone --depth=1 https://github.com/nerosketch/djing.git
|
|
cd djing
|
|
python3 -m venv venv
|
|
source ./venv/bin/activate
|
|
pip3 install --upgrade pip
|
|
export PYCURL_SSL_LIBRARY=openssl
|
|
#pip3 install -r requirements.txt
|
|
cp djing/local_settings.py.example djing/local_settings.py
|
|
sed -i "s/'PASSWORD': 'password',/'PASSWORD': '${dbpassw}',/" djing/local_settings.py
|
|
chmod +x ./manage.py
|
|
./manage.py migrate
|
|
./manage.py compilemessages -l ru
|
|
secret_key=`./manage.py shell -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key().replace(\"&\", \"@\"))"`
|
|
sed -i -r "s/^SECRET_KEY = '.+'$/SECRET_KEY = '${secret_key}'/" djing/local_settings.py
|
|
./manage.py shell -c "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('+79781234567', 'admin', 'admin')"
|
|
deactivate
|
|
|
|
cp install/robots.txt robots.txt
|
|
cp install/djing.ini /etc/uwsgi/apps-available/djing.ini
|
|
ln -s /etc/uwsgi/apps-available/djing.ini /etc/uwsgi/apps-enabled/djing.ini
|
|
cp install/nginx_server.conf /etc/nginx/sites-available/djing.conf
|
|
ln -s /etc/nginx/sites-available/djing.conf /etc/nginx/sites-enabled/djing.conf
|
|
|
|
# Extract executable for netflow dumping
|
|
cd agent/netflow
|
|
tar -xvzf djing_flow.tar.gz
|
|
cd ../../
|
|
|
|
chown -R www-data. /var/www/djing
|
|
|
|
# dirs
|
|
find . -type d \( -path ./venv -o -path ./src -o -path ./.git \) -prune -o -type d -exec chmod 750 {} \;
|
|
# files
|
|
find . -type d \( -path ./venv -o -path ./src -o -path ./.git \) -prune -o -type f -exec chmod 640 {} \;
|
|
# exec scripts
|
|
chmod 750 dhcp_lever.py manage.py periodic.py devapp/expect_scripts/dlink_DGS1100_reboot.exp agent/netflow/netflow_handler.py
|
|
chmod 750 agent/netflow/netflow_handler_slave.sh
|
|
chmod 400 djing/settings.py
|
|
|
|
rm /etc/nginx/sites-enabled/default
|
|
systemctl restart uwsgi
|
|
systemctl enable uwsgi
|
|
systemctl restart nginx
|
|
systemctl enable nginx
|
|
|
|
|
|
cp ./systemd_units/djing_celery.service /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable djing_celery.service
|
|
systemctl start djing_celery.service
|
|
|
|
|
|
echo -e "\n\nOpen your Djing on http://`hostname -i`/
|
|
Initial login and password admin admin\n"
|
|
|