Skip to content

cher-di/YandexBackendSchool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

YandexBackendSchool

Приложение на Python с REST архитектурой для Школы Бэкенд Разработки Яндекса

Запуск сервера на машине с Ubuntu/Debian

1.Устанавливаем следующие пакеты:

  • Python (3.6+)
  • PostgreSQL (9.6+)
  • Git
  • libpq-dev
  • postgresql-server-dev-all

2.Клонируем репозиторий на машину

user@machine:~$ mkdir YandexBackendSchool
user@machine:~$ cd YandexBackendSchool/
user@machine:~/YandexBackendSchool$ git clone https://github.com/cher-di/YandexBackendSchool.git

3.Создаем вирутальное окружение Python и устанавливаем в него все необходимые модули:

  • psycopg2
  • fastjsonschema
  • flask
  • numpy
  • gunicorn
user@machine:~/YandexBackendSchool$ pip3 install virtualenv
user@machine:~/YandexBackendSchool$ python3 -m venv ybs_venv
user@machine:~/YandexBackendSchool$ source ybs_venv/bin/activate
(ybs_venv) user@machine:~/YandexBackendSchool$ pip3 install --upgrade pip setuptools
(ybs_venv) user@machine:~/YandexBackendSchool$ pip3 install psycopg2 fastjsonschema flask numpy gunicorn

4.Создаем пользователя и базу данных:

user@machine:~$ sudo -u postgres psql postgres
CREATE ROLE ybs_user LOGIN PASSWORD 'ybs_password' CREATEDB;
CREATE DATABASE ybs_db WITH owner = ybs_user;

5.Чтобы сгенерировать файл конфигурации /home/user/YandexBackendSchool/YandexBackendSchool/config.ini, запускаем скрипт config.py с ключом с:

(ybs_venv) user@machine:~/YandexBackendSchool/YandexBackendSchool/scripts$ python3 config.py с

После того, как файл конфигурации будет сгенерирован, записываем в него верные значения вместо значений по умолчанию.

6.Проверяем конфигурацию - запускаем скрипт config.py c режимом t:

(ybs_venv) user@machine:~/YandexBackendSchool/YandexBackendSchool/scripts$ python3 config.py t

Если результат исполнения скрипта выдал везде OK, то можно приступать к следующему шагу.
В противном случае скрипт выдаст ошибку FAIL.

7.Тестируем сервер:

(ybs_venv) user@machine:~/YandexBackendSchool/YandexBackendSchool/scripts$ gunicorn -c gunicorn_configuration.py server:app

Если все нормально, то переходим к следующему шагу.
Не забываем отключить виртуальное окружение:

(ybs_venv) user@machine:~/YandexBackendSchool/YandexBackendSchool/scripts$ deactivate

8.Создаем файл /etc/systemd/system/ybs.service, для запуска демона нашего приложения:

[Unit]
Description=Gunicorn instance to server YandexBackendSchoolApp
After=network.target
[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/YandexBackendSchool/YandexBackendSchool/scripts
Environment="PATH=/home/user/YandexBackendSchool/ybs_venv/bin"
ExecStart=/home/user/YandexBackendSchool/ybs_venv/bin/gunicorn -c gunicorn_config.py server:app
[Install]
WantedBy=multi-user.target

9.Запускаем демона и делаем его автозапускаемым при запуске машины

user@machine:~$ sudo systemctl daemon-reload
user@machine:~$ sudo systemctl start ybs
user@machine:~$ sudo systemctl enable ybs

После этого сервер развернут и готов к работе

Запуск *.sql файлов в терминале

Чтобы запустить *.sql файлы в терминале, необходимо запустить следующую команду:

user@machine:~$ psql -h 127.0.0.1 -d ybs_db -U ybs_user -p 5432 -f sql_file.sql

Для создания таблиц необходимо использовать соотвественно: create_tables.sql
Для полной очистки базы данных (удаление всех данных и таблиц): clear_databse.sql

За дополнительной информацией по поводу запуска *.sql файлов через терминал обратитесь на сайт.

About

REST application for Yandex Backend School

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published