47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
A Django app for managing computer equipment.
|
|
|
|
## Installation
|
|
|
|
Install system dependencies:
|
|
|
|
sudo apt install python-dev libldap2-dev libsasl2-dev bind9-utils
|
|
|
|
Use [mise](https://mise.jdx.dev/) to manage Python and uv:
|
|
|
|
mise trust
|
|
mise install
|
|
|
|
Install Python dependencies with uv:
|
|
|
|
uv sync
|
|
|
|
Run migrations and start the development server:
|
|
|
|
uv run python manage.py migrate
|
|
uv run python manage.py runserver
|
|
|
|
`mise.toml` sets `DJANGO_DEBUG=1`; without it `DEBUG` is off. Local overrides go in
|
|
`mdbsite/local_settings.py`.
|
|
|
|
## Production
|
|
|
|
MDB runs on sega under edb-infra's `mdb` role (`roles/mdb.md` there): gunicorn from a
|
|
release directory per commit, its settings in the file `MDB_SETTINGS` names
|
|
(`/etc/mdb/settings.py`), which `mdbsite/settings.py` executes last. A push to `main` that
|
|
passes the checks deploys itself while the repository variable `DEPLOY_SEGA` is `true`
|
|
(`.gitea/workflows/deploy.yaml`). The DNS and DHCP sync runs as root on sega:
|
|
`sudo mdb-sync`.
|
|
|
|
## Development tasks
|
|
|
|
Dump test data:
|
|
|
|
uv run python manage.py dumpdata mdb --natural-foreign --indent=4 > mdb/fixtures/test_data.json
|
|
|
|
## Features
|
|
|
|
- Creates DHCPD configuration files
|
|
- Creates DNS zone files for BIND
|
|
- Creates PXE config files (with random secret for use with Puppet autosign)
|
|
- Partial IPv6 support
|