[enh/venv]: feat(install): introduce venv-based runtime setup with proper permissions

Replace the implicit dependency on system-wide Python packages with a
dedicated virtual environment and explicit runtime dependency management.

Changes:
- Create a project-local Python venv during installation
- Install runtime dependencies explicitly via requirements-runtime.txt
- Fix ModuleNotFoundError issues in isolated environments (e.g. requests)
- Detect the actual user when running via sudo (SUDO_USER)
- Assign correct ownership to the BOSWatch directory for venv usage
- Apply setgid (2775) to the log directory so files created with sudo
  remain manageable by the user
- Set explicit permissions for Python scripts and config files

This ensures a reproducible, system-independent installation and prevents
permission issues during runtime and log creation.
This commit is contained in:
KoenigMjr 2025-11-21 14:59:15 +01:00
parent 7d4cb57a6e
commit a3f429cbf4
7 changed files with 108 additions and 44 deletions

View file

@ -79,7 +79,8 @@ Eine Auflistung der bereitgestellten Informationen findet sich im entsprechenden
**Bitte beachten:**
- Selbst vom Modul hinzugefügte Felder **müssen** in der Modul Dokumentation unter `Paket Modifikation` aufgeführt werden.
- Sollte ein Modul oder Plugin Felder benutzen, welche in einem anderen Modul erstellt werden, **muss** dies im Punkt `Abhänigkeiten` des jeweiligen Moduls oder Plugins dokumentiert werden.
- Sollte ein Modul oder Plugin Felder benutzen, welche in einem anderen Modul erstellt werden, **muss** dies im Punkt `Abhängigkeiten` des jeweiligen Moduls oder Plugins dokumentiert werden.
- Benötigt das Modul Bibliotheken, welche **nicht** standardmäßig in Python geliefert werden, **muss** dies unter `Externe Abhängigkeiten` vermerkt sein. ZUSÄTZLICH **muss** die Bibliothek in die `requirements-runtime.txt` eingetragen werden.
### Rückgabewert bei Modulen
Module können Pakete beliebig verändern. Diese Änderungen werden im Router entsprechend weitergeleitet.