Browse Source

complemented install instruction for debian

devel
Dmitry Novikov 7 years ago
parent
commit
8eb4448fa9
  1. 2
      djing/local_settings.py.example
  2. 35
      docs/install_debian.md
  3. 19
      install/install_debian.sh
  4. 0
      manage.py
  5. 2
      requirements.txt
  6. 13
      systemd_units/djing_dial.service

2
djing/local_settings.py.example

@ -2,7 +2,7 @@
Custom settings for each system
"""
DEBUG = True
DEBUG = False
ALLOWED_HOSTS = '*',

35
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

19
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"

0
manage.py

2
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]

13
systemd_units/djing_dial.service

@ -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
Loading…
Cancel
Save