Базовое веб-приложения сервиса, к которому подключаются остальные модули.
Alex b0a45b882e added landing | il y a 1 an | |
---|---|---|
SharixAdmin | il y a 1 an | |
bin | il y a 1 an | |
core | il y a 1 an | |
design_template-backup | il y a 1 an | |
media | il y a 1 an | |
staticfiles | il y a 1 an | |
.DS_Store | il y a 1 an | |
.gitignore | il y a 1 an | |
README.md | il y a 1 an | |
install_unix.sh | il y a 1 an | |
install_win.bat | il y a 1 an | |
manage.py | il y a 1 an | |
requirements.txt | il y a 1 an | |
sports.pgsql | il y a 1 an | |
test.py | il y a 1 an | |
update_unix.sh | il y a 1 an | |
update_win.bat | il y a 1 an |
Admin system implemented as a Django application.
1) Download or clone repository
git clone http://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base.git name_project
1) Set up a configuration file
#Create file config.py with this setting or rename this file to config.py
#BASE
DEBUG=True
SECRET_KEY='secret-key(absolutely any character)'
ALLOWED_HOSTS = ['127.0.0.1']
CSRF_TRUSTED_ORIGINS = []
API_URL = "127.0.0.1"
#DRIVE=2;ASSIST=1
SERVICE_ID = 1
#DATABSE
DB_NAME=None
DB_USER=None
DB_PASSWORD=None
DB_HOST=None
#GUNICORN
BIND = "127.0.0.1:8000"
WORKERS = 2
THREADS = 4
#STATIC
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/static/'
[BASE_DIR / "SharixAdmin/static/", BASE_DIR / "tickets/static/", BASE_DIR /"design_template/static"]
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
#EJABBER
EJ_PROTOCOL = "http"
EJ_IP = "10.0.20.9"
EJ_PORT = "5280"
EJ_URL = EJ_PROTOCOL + "://" + EJ_IP + ":" + EJ_PORT + "/" + "api/"
EJ_SERVICE = "chat.ej.sharix-app.org"
EJ_HOST = "ej.sharix-app.org"
WEBSERVICE_NAME = "open" # Service name that is used in generating ejabber rooms
3) Run a install_win.bat 4) The system will prompt you to create a superuser
#Example
7987654321
admin
pa$$w0rd
pa$$w0rd
1) Download or clone repository
git clone http://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base.git name_project
2) Set up a configuration file nano core/config_template.py
#Create file config.py with this setting or rename this file to config.py
#BASE
DEBUG=True
SECRET_KEY='secret-key(absolutely any character)'
ALLOWED_HOSTS = ['127.0.0.1']
CSRF_TRUSTED_ORIGINS = []
#DATABSE
DB_NAME=None
DB_USER=None
DB_PASSWORD=None
DB_HOST=None
#GUNICORN
BIND = "127.0.0.1:8000"
WORKERS = 2
THREADS = 4
#STATIC
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "SharixAdmin/static/", BASE_DIR / "tickets/static/"]
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
#EJABBER
EJ_PROTOCOL = "http"
EJ_IP = "10.0.20.9"
EJ_PORT = "5280"
EJ_URL = EJ_PROTOCOL + "://" + EJ_IP + ":" + EJ_PORT + "/" + "api/"
EJ_SERVICE = "chat.ej.sharix-app.org"
EJ_HOST = "ej.sharix-app.org"
WEBSERVICE_NAME = "open" # Service name that is used in generating ejabber rooms
3) Run a install_linux.sh 4) The system will prompt you to create a superuser
#Example
7987654321
admin
pa$$w0rd
pa$$w0rd
5) Set up the bin/webuser.sh file with valid paths
#!/bin/bash
cd /path/to/project
exec /path/to/project/env/bin/gunicorn core.wsgi:application -c core/conf_gunicorn.py
6) It remains to configure Nginx conf and start the daemon
Optional configuration params, which can be added to your project settings:
Utilities provides important functionality to web-application, so it is important to know and understand how they work. They are stored in core/utils.
That class provides the ability to authenticate an application account through the API and store these authentication tokens.
Modules using the API should log in ShariX system using this class.
# core/config.py
# ...
#API
# The URL where it is possible to access the API.
API_URL = 'http://127.0.0.1:8000'
# ...
# <module>/apps.py
# ...
from core.utils.AuthAPI import AuthAPI
api = AuthAPI("<module_login>", "<module_password>")
# ...
# <module>/<file>.py
import requests
from <module>.apps import api
from core.config import API_URL
# You can use api.headers to get the corret authorization header in your requests.
requests.get(f"{API_URL}/tickets/api/tickets/", headers=api.headers)
# Or you can get just token.
print(api.token)