- Clone our repo
$ git clone https://github.com/yel-gar/divaldi.git- Copy the
.env.exampleto.env
# Linux
$ cp .env{.example,}# Windows
PS> Copy-Item .env.example .env- Edit the
.envfile with actual variables according to this table - Launch the project
$ docker compose up -d --build- Verify everything started up successfully
$ docker compose logs -f- Create superuser
# Linux
$ chmod +x createsuperuser.sh
$ ./createsuperuser.sh# Windows
PS> .\createsuperuser.ps1- You're all set 🤙
- Install dev dependencies and pre-commit (this repo uses it for all linting/formatting hooks and commit message checks — no Node tooling required just for hooks)
$ npm install
$ pip install pre-commit- Install the git hooks
$ pre-commit install --hook-type pre-commit --hook-type commit-msgThis registers two things: a pre-commit hook that lints/formats only the files you've staged, and a commit-msg hook that checks your commit message against Conventional Commits. Both are defined in the single root .pre-commit-config.yaml.
IMPORTANT: in the hooks we use
pythonexecutable, if you havepython3orpy, please set up an alias for the environment.
- Configure environment vars
$ cp .env{.example,}PS> Copy-Item .env.example .env- Open compose database port via override (required for migrations)
$ cp docker-compose.override.yml{.dev,}PS> Copy-Item docker-compose.override.yml.dev docker-compose.override.ymlYou should generally only touch variables marked as Required.
| Variable | Description | Required | Default |
|---|---|---|---|
| DEBUG | Set debug mode for app, debug allows insecure cookies. Set to one of 0, no, false to disable, otherwise it's enabled. |
✅ | 1 |
| BACKEND_URL | Deployed backend URL where clients will make requests to. Injected into the frontend build and used by the backend. | ✅ | http://localhost:3000 |
| FRONTEND_URL | Deployed frontend URL used by the backend (e.g. for CORS / redirects). | ✅ | http://localhost:8080 |
| FRONTEND_PORT | Port on which frontend will run. | ❌ | 8080 |
| BACKEND_PORT | Port on which backend will run. | ❌ | 3000 |
| POSTGRES_USER | Database user. | ❌ | divaldi |
| POSTGRES_DB | Database name. | ❌ | divaldi |
| POSTGRES_PASSWORD | Database password. Set it to something secure, you can get a secret with openssl rand -hex 48. |
✅ | |
| RABBITMQ_USER | User for RabbitMQ admin panel | ❌ | admin |
| RABBITMQ_PASS | Password for RabbitMQ admin panel | ✅ | |
| RABBITMQ_MANAGEMENT_PORT | Port on which RabbitMQ management interface will run | ❌ | 15672 |
| TASKIQ_API_TOKEN | Secret for TaskIQ dashboard | ✅ | |
| TASKIQ_DASHBOARD_PORT | Port on which TaskIQ management dashboard will run | ❌ | 8000 |
| GIGACHAT_MODEL | GigaChat model used. Consult Sber website for more info | ❌ | GigaChat-3-Ultra |
| SBER_API_KEY | API Key from Sber developers. | ✅ | mock |
| SBER_API_SCOPE | API scope from Sber developers. One of the following: PERS, B2B, CORP |
✅ | PERS |
| MINIO_ROOT_USER | MinIO user. | ❌ | minio |
| MINIO_ROOT_PASSWORD | MinIO password. |
✅ | |
| MINIO_PORT | Production port where MinIO will run. | ❌ | 9000 |
| MINIO_DASHBOARD_PORT | MinIO dashboard port. | ❌ | 9001 |
| MINIO_URL | Public base URL of MinIO. | ✅ | http://localhost:9000 |
/0 - general
/1 - task results