89 lines
4.7 KiB
Markdown
89 lines
4.7 KiB
Markdown
# 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 "<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\>_ на путь к папке, в которой расположен сайт.
|