diff --git a/djing/local_settings.py.example b/djing/local_settings.py.example index 405213f..d83df1b 100644 --- a/djing/local_settings.py.example +++ b/djing/local_settings.py.example @@ -2,7 +2,7 @@ Custom settings for each system """ -DEBUG = True +DEBUG = False ALLOWED_HOSTS = '*', diff --git a/docs/install_debian.md b/docs/install_debian.md index 6b66dac..f11342b 100644 --- a/docs/install_debian.md +++ b/docs/install_debian.md @@ -2,26 +2,33 @@ Работа предполагается на python3. Я предпочитаю запускать wsgi сервер на связке uWSGI + Nginx, так что ставить будем соответствующие пакеты. +Для быстрой установки, чтоб посмотреть что из себя представляет web интерфейс биллинга, можно воспользоваться +инстальником из *install/install_debian.sh*. Он установит зависимости, виртуальное окружение python, сервер очередей +*Celery*, и создаст пользователя *admin* с паролем *admin*, так, что вы сразу сможете зайти в web интерфейс под этой +учётной записью, а в последствии, если вам будет интересно, уже разбираться в детелях и тонкостях устройства биллинга. + +А ниже подробная инструкция по установке вручную, контролируя все этапы установки. + ##### Подготовка системы Установка происходит в debian версии 9.5. Для начала подготовим систему, очистим и обновим пакеты. Процесс обновления долгий, так что можно пойти заварить себе чай :) -``` +```bash # dnf clean all # dnf -y update ``` -Затем установим зависимости, в Fedora 25 пакеты называются так: -``` -# dnf -y install python3 python3-devel python3-pip python3-pillow mariadb mariadb-devel uwsgi nginx uwsgi-plugin-python3 net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-python git redhat-rpm-config curl-devel expect -``` - -Для Debian 9 это выглядит так: -``` -# apt install mariadb-server libmariadb-dev mariadb-client python3-dev python3-pip python3-pil uwsgi nginx uwsgi-plugin-python3 libsnmp-dev git gettext libcurl4-openssl-dev libssl-dev expect +Затем установим зависимости, в Debian9.5 пакеты называются так: +```bash +# apt 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 ``` +Пакеты *libsnmp-dev* и *expect* нужны для управления и мониторинга оборудования, redis-server для +сервера очередей *Celery*. -Условимся что путь к папке с проектом находится по адресу: */var/www/djing*. +Условимся, что путь к папке с проектом находится по пути: */var/www/djing*. Дальше создадим каталок для web, затем создаём virtualenv, обновляем pip и ставим проект через pip: ```bash # mkdir /var/www @@ -49,7 +56,7 @@ sudo -u www-data -g www-data bash && cd / Скопируем конфиг из примера в реальный: ```bash $ cd /var/www/djing -$ cp djing/local_settings.py.example djing/settings.py +$ cp djing/local_settings.py.example djing/local_settings.py ``` Затем отредактируйте конфиг для своих нужд. @@ -251,7 +258,7 @@ __sha256__. Секретное слово должен знать биллинг Убедитесть что вы в папке с проектом, комманда **pwd** должна выдать */var/www/djing*. Чтоб создать бд, как описано в документации [Django admin \& migrate](https://docs.djangoproject.com/en/2.1/ref/django-admin/#migrate), нужно запустить **./manage.py migrate** чтоб создать структуру БД. Вывод будет примерно таким: -``` +```bash $ ./manage.py migrate Operations to perform: Apply all migrations: mapapp, contenttypes, msg_app, taskapp, accounts_app, devapp, statistics, tariff_app, admin, sessions, chatbot, auth, abonapp @@ -270,11 +277,11 @@ Running migrations: ``` После этого вам стоит создать супер пользователя чтоб зайти в систему. -``` +```bash $ ./manage.py createsuperuser ``` В интерактивном режиме ответьте на вопросы. -``` +```bash $ ./manage.py createsuperuser Username: username Telephone: +12223334455 diff --git a/install/install_debian.sh b/install/install_debian.sh index 2e135ba..ce5f5c7 100644 --- a/install/install_debian.sh +++ b/install/install_debian.sh @@ -9,7 +9,7 @@ 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 + libssl-dev expect redis-server sleep 3 @@ -21,7 +21,7 @@ mysql -u root -e "create user 'djinguser'@'localhost' identified by 'password';" mysql -u root -e "grant all privileges on djing_db.* to 'djinguser'@'localhost';" mysql -u root -e "flush privileges;" -git clone https://github.com/nerosketch/djing.git -b devel djing +git clone --depth=1 https://github.com/nerosketch/djing.git cd djing python3 -m venv venv source ./venv/bin/activate @@ -29,8 +29,10 @@ pip3 install --upgrade pip export PYCURL_SSL_LIBRARY=openssl pip3 install -r requirements.txt cp djing/local_settings.py.example djing/local_settings.py +chmod +x ./manage.py ./manage.py migrate ./manage.py compilemessages -l ru +echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('+79781234567', 'admin', 'admin')" | ./manage.py shell deactivate cp install/robots.txt robots.txt @@ -49,3 +51,16 @@ find . -type d \( -path ./venv -o -path ./src -o -path ./.git \) -prune -o -type chmod 750 dhcp_lever.py manage.py periodic.py devapp/expect_scripts/dlink_DGS1100_reboot.exp chmod 400 djing/settings.py +rm /etc/nginx/sites-enabled/default +systemctl restart uwsgi +systemctl restart 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" diff --git a/manage.py b/manage.py old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt index a064861..8801902 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42,5 +42,5 @@ django-encrypted-model-fields -e git://github.com/pexpect/pexpect.git#egg=pexpect Celery -redis==2.10.6 +redis celery[redis] diff --git a/systemd_units/djing_dial.service b/systemd_units/djing_dial.service deleted file mode 100644 index d3db17b..0000000 --- a/systemd_units/djing_dial.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Dialing inbox sms unit - -[Service] -Type=simple -ExecStart=/usr/bin/python3 dialing.py -PIDFile=/run/dialing.py.pid -WorkingDirectory=/var/www/djing -User=http -Group=http - -[Install] -WantedBy=multi-user.target