Установка
Совет: устанавливайте систему в чистую виртуалку/контейнер, чтобы не попортить системные зависимости и запускать проект в изолированной от основной системы среде!
Для установки 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 | |
Всё! Если модуль не плюётся ошибками в консоль, он успешно запустился!