Установка
Совет: устанавливайте систему в чистую виртуалку/контейнер, чтобы не попортить системные зависимости и запускать проект в изолированной от основной системы среде!
Для установки SWAP потребуются следующие зависимости:
-
python3
- чем свежее версия, тем лучше.Моя версия - 3.13.3.
Проверить свою:
python3 --version
-
git
- аналогично.Моя версия - 2.39.5.
Проверить свою:
git --version
-
rsync
- аналогично, если вы собираетесь деплоить вручную на стенды.Моя версия - 3.4.1 (protocol version 32).
-
uwsgi
- лучше собрать с официального репозитория по последнему тегу, напримерgit clone https://github.com/unbit/uwsgi -b 2.0.28
Моя версия - 2.0.29.
Проверить свою:
uwsgi --version
-
docker
(если очень смелые, можете попробовать podman, я не пробовал ._.)Моя версия - Docker version 28.2.2.
Проверить свою:
docker --version
-
docker compose
(именно тот, что с пробелом - более свежая версия,docker-compose
- устаревшая версия!)Моя версия - Docker Compose version v2.28.1.
Проверить свою:
docker compose version
-
just
- аналог make для Makefiles, но с бОльшим набором опций, скачать можно бесплатно с just.systemsРекомендую выбрать способ установки с PyPI.
pipx install rust-just
. Если нетpipx
-pip install pipx
.Моя версия -
just 1.40.0
.Проверить свою -
just --version
Надеюсь, вы справитесь с установкой всех требуемых зависимостей самостоятельно.
Настройка перед запуском
Каждый модуль должен быть настроен перед запуском. Покажу пример для модуля marketplace
, аналогичная процедура должна быть и для других модулей, включая core-модули.
Bash | |
---|---|
1 2 3 4 5 6 |
|
Заполняем следующие переменные в .env (только те, которые незаполнены)
Text Only | |
---|---|
1 2 3 4 |
|
Q: Что будет, если сломать/поменять ключ (DJANGO_SECRET_KEY)?
Если записей в БД ещё нет, то не будет ничего. Однако если вы уже зарегистрировались в системе (именно локально), и каким-то образом потеряли/поломали ключ, то вы не сможете войти в систему. По сути этот ключ используется для шифрования сессии пользователя.
Если это всё-таки случилось и вы уже зарегистрировались в системе локально:
- запускаем
.venv/bin/python3 manage.py flushdb
и следуем инструкциям команды.- затем пересоздаём суперпользователя (именно в проекте, не в самой системе/контейнере/виртуалке!) командой
.venv/bin/python3 manage.py createsuperuser
и вводим заново email и пароль вашего пользователя
Сохраняем файл и запускаем следующие команды:
Bash | |
---|---|
1 2 3 4 5 |
|
Запуск
Специально для вашего (в основном, для моего) удобства был написан justfile
, в котором находятся алиасы всех частоиспользуемых команд.
Запуск всего проекта (все модули системы)
Я рекомендую запускать из корня системы весь проект. Не так удобно при отладке, зато все сервисы работают и взаимодействуют друг с другом.
Bash | |
---|---|
1 2 3 4 5 6 |
|
Внимательно смотрим логи, которые выводит uwsgi.
Bash | |
---|---|
1 |
|
Если нигде не выскакивает ошибок и uwsgi не начинает бешено перезагружать сервисы - поздравляю, мы успешно запустились!
Запуск конкретного модуля системы
Однако если возникает потребность запустить непосредственно определённый модуль системы (например, marketplace
), то лучше сделать так:
Bash | |
---|---|
1 2 3 4 |
|
Всё! Если модуль не плюётся ошибками в консоль, он успешно запустился!