Главная
SWAP (Smart Workforce Application Platform) - это система по поиску и управлению рабочими местами сотрудников.
Структура проекта
Бэкэнд
dockerscripts- вспомогательные docker-скрипты для сборки образа проекта бэкэнда. Используются только при сборке образа и только в Docker.docs- общая интерактиваная документация системы SWAPetc- каталог с конфигурацией для сторонних утилит и приложений (nginx, uwsgi и т.д.)justfile- Makefile-подобный файл с рецептами.*.env.example- примеры .env-конфигураций проекта. Используйте их как отправную точку для конфигурации проекта.
Установка
Совет: устанавливайте систему в чистую виртуалку/контейнер, чтобы не попортить системные зависимости и запускать проект в изолированной от основной системы среде!
Для установки 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.28.
Проверить свою:
uwsgi --version -
docker(если очень смелые, можете попробовать podman, я не пробовал ._.)Моя версия - Docker version 27.4.1.
Проверить свою:
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.30.1.Проверить свою -
just --version
Надеюсь, вы справитесь с установкой всех требуемых зависимостей самостоятельно.
Настройка перед запуском
Система должна быть настроена перед запуском.
| Bash | |
|---|---|
1 2 3 4 | |
Заполняем следующие переменные в .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 не начинает бешено перезагружать сервисы - поздравляю, мы успешно запустились!