Metadata-Version: 2.4
Name: diop
Version: 0.5.0a13
Summary: Desktop Infrastructure Operations
License-File: LICENSE
Author: Niko Ehrenfeuchter
Author-email: nikolaus.ehrenfeuchter@unibas.ch
Requires-Python: >=3.11,<4
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: croniter (>=1.4.1,<1.5)
Requires-Dist: datetimerange (>=2.3.1,<2.4)
Requires-Dist: django (>=4.2.20,<4.3)
Requires-Dist: django-auth-ldap (>=4.8.0,<4.9)
Requires-Dist: django-environ (>=0.10.0,<0.11)
Requires-Dist: django-extensions (>=3.2.4b1,<3.3)
Requires-Dist: django-q2 (>=1.8.0,<1.9)
Requires-Dist: logging-interceptor (>=0.1.2,<0.2)
Requires-Dist: mysqlclient (>=2.2.7,<2.3)
Requires-Dist: psytricks (>=2.3.0,<3.0.0)
Requires-Dist: pyppms (>=4.0.0,<5)
Requires-Dist: python-box (>=7.3.2,<7.4)
Requires-Dist: pyyaml (>=6.0.2,<6.1)
Requires-Dist: setuptools (>=78.1.1,<79)
Requires-Dist: whitenoise (>=6.5.0)
Project-URL: Organisation Homepage, https://imcf.one/
Description-Content-Type: text/markdown

# Diop 🕶

- `D`esktop
- `I`nfrastructure
- `Op`erations

`Diop` is a [Django-based][www-django] web application to manage a Virtual
Desktop Infrastructure based on *Citrix Virtual Apps and Desktops* (CVAD).

## 🧩 Components and ⚙ functional dependencies

A full Diop setup consists of the following components:

- The Diop main project components:
  - The Diop **core app**.
  - Several Diop [Django-Q2][www-django-q2] **task queue workers**. They are
    performing the periodic tasks, updating status information and similar.
- A backing database, currently only **MySQL** is tested.
- Optional, but **required for production** setups:
  - Access to a running [**PSyTricks / ResTricks**][www-psytricks] service  -
    that's the interface to the *CVAD* platform (in a testing / development
    setup this is not necessarily required, but then obviously no status updates
    and / or actions can be performed).
- Optional, but **highly recommended**:
  - Access to an **ActiveDirectory LDAP** interface for performing
    authentication.
  - Access to a **PPMS booking system** instance (performed through the
    [pyppms][www-pyppms] package).

[www-django]: https://www.djangoproject.com/
[www-psytricks]: https://pypi.org/project/psytricks/
[www-pyppms]: https://pypi.org/project/pyppms/
[www-django-q2]: https://github.com/django-q2/django-q2

