Следующие инструкции приведены для ОС Linux, однако при желании данный сервер можно запустить и под Windows.
Для начала, нужно скачать проект в удобную для вас папку. В данном примере мы скачаем проект в /home/gaduka_zluka.
Перейдём в папку backend.
Перед запуском проекта стоит установить все зависимые библиотеки с помощью следующей комманды:
$ python -m pip install -r requirements.txtУстанавливаем пакет gunicorn:
$ python -m pip install gunicornТеперь, желательно узнать IP адрес вашей машины с помощью комманды ifconfig или hostname -I.
В итоге, запустить сервер можно следующей коммандой:
$ DB_PATH=sqlite:////home/gaduka_zluka/backend/database/database.db gunicorn -b <ваш ip адрес>:80 -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker main:appТеперь, чтобы превратить процесс в фоновый, мы должны нажать сочетание клавиш Ctrl+Z и ввести следующие комманды:
$ disown -h %1
$ bgДанная инструкция может быть полезна тем, кто хочет попробовать запустить наше приложение на своём компьютере под ОС Windows без применения WSGI.
После того, как вы скачали проект, рекомендуем создать отдельный файл app.py, который будет запускать сервер с временными переменными окружения:
import subprocess
import sys
import os
subprocess.run("python main.py", env={
**os.environ,
"HOST": "<ваш ip адрес>",
"DB_PATH": "sqlite:///<путь, где будет храниться база данных>"
})Теперь, всё что останется сделать - это запустить проект коммандой:
$ python app.pyи перейти по ссылке http://<ваш ip>:8080/.
Если у вас появилась идея, которой по вашему мнению не хватает в проекте, то вы можете сделать собственный форк проекта, реализовать вашу идею и отправить нам Pull Request с описанием работы вашей идеи, который мы рассмотрим и примем, если посчитаем вашу идею хорошей и действительно нужной в проекте.
Отметим, что в случае введения идеи, затрагивающей код фронтэнда и сервера, вовсе не обязательно предоставлять нам код фронтэнда; вам достаточно описать, как работает ваша идея и интерфейсы, которая она вводит ( например, новый интерфейс сообщения ). Если нам понадобится что-нибудь ещё, мы обязательно вас об этом попросим.
Для запуска фронтэнда нужно установить npm, после выполнить следующую команду:
$ npm iТаким образом, у вас установятся все зависимиости.
Теперь, для запуска фронтэнда достаточно набрать команду:
$ npm startОднако, чтобы у фронтэнда был доступ к серверу, желательно поднять сервер на ином от фронтэнда порте, и в консоли разработчика ( в браузере ) прописать следующее:
localStorage.setItem("address", "ws://<ваш-ip>:<порт сервера>/")После, в коде бэкенда, в файле config.py отредактировать CORS:
10. socketio = SocketIO(app, cors_allowed_origins="*")