Главная
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 не начинает бешено перезагружать сервисы - поздравляю, мы успешно запустились!