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.
После копирования необходимо отредактировать файл .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 logs_service
python manage.py migrate
Создание суперпользователя
Для создания суперпользователя нужно ввести команду
python manage.py createsuperuser
Команда попросит ввести логин и пароль, потом повторить введенный пароль.
Запуск сервера
Для запуска сервера нужно ввести команду
python manage.py runserver localhost:39080 --noreload
В данном случае сервер будет прослушивать адрес localhost и порт HTTP 39080. Порт и прослушиваемый адрес можно изменять.
Конфигурация nginx
Для корректной работы сайта нужно вставить следующую конфигурацию в nginx.conf в секцию виртуального хоста:
location /static {
alias "<path-to-site-root>/static";
}
location /favicon.ico {
add_header Content-type "image/svg+xml";
alias "<path-to-site-root>/static/favicon.svg";
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:39080; // адрес и порт, указанные при запуске сервера
}
При этом нужно заменить <path-to-site-root> на путь к папке, в которой расположен сайт.