From ab578cb72fafafacbf172745cff399a5a69cf8c8 Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Fri, 29 Mar 2019 00:35:22 +0300 Subject: [PATCH] fix docs --- README.md | 2 +- djing/local_settings.py.example | 30 +++++++++++------------ docs/install.md | 43 +++++++++++++++++++++------------ install/install_debian.sh | 26 +++++++++++++++----- 4 files changed, 64 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 5d6065e..42266be 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # djing Бесплатная биллинговая система интернет провайдера. djing сокращение от **dj**ango-bill**ing**. Это web интерфейс управления абонентами интернет-провайдера. -Сейчас идёт тестирвоание работы на Mikrotik, функционал пока минимальный, т.к. пишу в свободное время. +Сейчас идёт тестирование работы на Mikrotik, функционал пока минимальный, т.к. пишу в свободное время. Работает в реальной сети на реальных абонентах. Использовано python 3, django 2, bootstrap 3, и другое в файле requirements.txt diff --git a/djing/local_settings.py.example b/djing/local_settings.py.example index 45d66fc..0f1e69e 100644 --- a/djing/local_settings.py.example +++ b/djing/local_settings.py.example @@ -15,21 +15,21 @@ SECRET_KEY = '!!!!!!!!!!!!!!!!!!!!!!!!YOUR SECRET KEY!!!!!!!!!!!!!!!!!!!!!!!!' DATABASES = { 'default': { - 'OPTIONS': { - 'init_command': "SET sql_mode='STRICT_TRANS_TABLES', default_storage_engine=INNODB", - 'isolation_level': 'read uncommitted' - }, - #'ENGINE': 'django.db.backends.sqlite3', - #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'djing_db', - 'USER': 'DJING_MYSQL_USERNAME', # You can change the user name - 'PASSWORD': 'DJING_MYSQL_PASSWORD', # You can change the password - 'HOST': 'localhost', - 'TEST': { - 'CHARSET': 'utf8', - 'COLLATION': 'utf8_general_ci' - } + #'OPTIONS': { + # 'init_command': "SET sql_mode='STRICT_TRANS_TABLES', default_storage_engine=INNODB", + # 'isolation_level': 'read uncommitted' + #}, + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + #'ENGINE': 'django.db.backends.mysql', + #'NAME': 'djing_db', + #'USER': 'DJING_MYSQL_USERNAME', # You can change the user name + #'PASSWORD': 'DJING_MYSQL_PASSWORD', # You can change the password + #'HOST': 'localhost', + #'TEST': { + # 'CHARSET': 'utf8', + # 'COLLATION': 'utf8_general_ci' + #} } } diff --git a/docs/install.md b/docs/install.md index 5f54a33..08af960 100644 --- a/docs/install.md +++ b/docs/install.md @@ -2,7 +2,7 @@ Работа предполагается на python3. Я предпочитаю запускать wsgi сервер на связке uWSGI + Nginx, так что ставить будем соответствующие пакеты. -##### На Fedora25 нужные пакеты можно установить так: +##### Подготовка системы Для начала подготовим систему, очистим и обновим пакеты. Процесс обновления долгий, так что можно пойти заварить себе чай :) ``` @@ -10,37 +10,41 @@ # 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 +# 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 ``` -Необходимо чтоб версия python по умолчанию была третья: +Для Debian 9 это выглядит так: ``` -# ln -sf python3 /usr/bin/python +# 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 ``` Условимся что путь к папке с проектом находится по адресу: */var/www/djing*. -Дальше создадим каталок для web, затем обновляем pip и ставим проект через pip: +Дальше создадим каталок для web, затем создаём virtualenv, обновляем pip и ставим проект через pip: ``` # mkdir /var/www # cd /var/www -# pip3 install --upgrade pip -# git clone https://github.com/nerosketch/djing.git -# export PYCURL_SSL_LIBRARY=openssl -# pip3 install -r djing/requirements.txt +# git clone --depth=1 https://github.com/nerosketch/djing.git +# chown -R http:http djing +# python3 -m venv venv +# sudo -u http -g http bash +$ cd djing +$ source ./venv/bin/activate +$ pip3 install --upgrade pip +$ export PYCURL_SSL_LIBRARY=openssl +$ pip3 install -r djing/requirements.txt ``` -Скопируем конфиги из примеров в реальные: +Скопируем конфиг из примера в реальные: ``` $ cd /var/www/djing -# cp djing/settings_example.py djing/settings.py -# cp agent/settings.py.example agent/settings.py +$ cp djing/local_settings.py.example djing/settings.py ``` -Затем отредактируйте конфиги для своих нужд. +Затем отредактируйте конфиг для своих нужд. -Для удобства я создаю пользователя и группу http:http, и всё что связано с web-сервером запускаю от имени http. +Для удобства в Fedora я создаю пользователя и группу http:http, и всё что связано с web-сервером запускаю от имени http. ``` # groupadd -r http # useradd -l -M -r -d /dev/null -g http -s /sbin/nologin http @@ -50,6 +54,15 @@ $ cd /var/www/djing # chown -R http:http /run/uwsgi/ ``` +В Debian использую пользователя www-data, остаётся только назначить владельца на папки: +``` +# chown -R http:http /var/www +# chown -R http:http /etc/nginx +# chown -R http:http /etc/uwsgi.* +# chown -R http:http /run/uwsgi/ +``` + + ### Настройка WEB Сервера Конфиг Nginx на моём рабочем сервере выглядит так: ```nginx diff --git a/install/install_debian.sh b/install/install_debian.sh index c2b5c5e..a16cf74 100644 --- a/install/install_debian.sh +++ b/install/install_debian.sh @@ -1,14 +1,28 @@ -/usr/bin/bash - +#!/bin/bash -PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin +PATH=/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin -apt update -apt upgrade -apt-get install postgresql python3-dev python3-pip python3-pil uwsgi nginx uwsgi-plugin-python3 libsnmp-dev git gettext libcurl4-openssl-dev libssl-dev +apt-get -y update -chown -R www-data:www-data /var/www +sleep 1 +apt-get -y upgrade + +sleep 1 +apt-get -y install mariadb-server libmariadb-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 +sleep 3 + +mkdir -p /var/www cd /var/www git clone https://github.com/nerosketch/djing.git -b devel djing +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/settings.py +deactivate +chown -R www-data:www-data /var/www