# ospaz-site ## Необходимое ПО Для запуска данного сайта требуется следующее ПО: * база данных _PostgreSQL_ * реверс-прокси сервер _nginx_ * интерпретатор _Python_ с версией не ниже 3.11 ## Первый запуск ### Подготовка python-venv Первым делом нужно создать virtual env. Сделать это можно следующей командой: python -m venv ./venv Далее нужно активировать virtual env. Активация на разных платформах описана в документации по ссылке: https://docs.python.org/3/library/venv.html#how-venvs-work Далее нужно установить зависимости проекта. Они все перечислены в файле _requirements.txt_. Для установки всех зависимостей нужно ввести следующую команду: pip install -r requirements.txt После успешной установки зависимостей виртуальное окружение готово к работе. При запуске проекта в следующий раз виртуальное окружение нужно будет только активировать. Далее для всех команд считается, что виртуальное окружение активировано. ### Подготовка переменных окружения Пароли, ключи и прочие настройки сайта задаются через переменные окружения. Для корректной работы сайта нужно скопировать файл [.env-template](.env-template) с новым именем _.env_. После копирования необходимо отредактировать файл _.env_, вставив корректные значения следующих переменных: * DB_NAME="db_name" - Название базы данных * DB_USERNAME="db_user" - Имя пользователя базы данных * DB_PASSWORD="db_pass" - Пароль пользователя базы данных * DB_HOST="example.com" - Имя хоста базы данных, доменное имя или IP-адрес * DB_PORT=5432 - Порт базы данных, изменять по умолчанию не требуется * DJANGO_SECRET="django-secure-******" - Секретный ключ django для подписи сессий. Вместо звездочек нужно вставить длинную строку (>40) рандомных символов. Этот ключ не нужно запоминать или где-то хранить. Остальные переменные окружения не следует изменять, если в этом нет необходимости. ### Применение миграций После клонирования репозитория и настройки venv нужно выполнить следующие команды: python manage.py makemigrations users index python manage.py migrate ### Создание суперпользователя Для создания суперпользователя нужно ввести команду python manage.py createsuperuser Команда попросит ввести логин и пароль, потом повторить введенный пароль. ### Запуск сервера Для запуска сервера нужно ввести команду python manage.py runserver localhost:39080 --noreload В данном случае сервер будет прослушивать адрес localhost и порт HTTP 39080. Порт и прослушиваемый адрес можно изменять. ### Конфигурация nginx Для корректной работы сайта нужно вставить следующую конфигурацию в _nginx.conf_ в секцию виртуального хоста: location /static { alias "/static"; } location /favicon.ico { add_header Content-type "image/svg+xml"; alias "/static/favicon.svg"; } location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://localhost:39080; // адрес и порт, указанные при запуске сервера } При этом нужно заменить __ на путь к папке, в которой расположен сайт.