feat: Add license and attribution routes, update templates and documentation

- Added a new license route to serve the LGPL license text.
- Introduced a new attribution page to acknowledge third-party software used in the project.
- Updated the base HTML template to include a link to the attribution page.
- Included the license router in the main application router.
- Added the license text file for LGPL to the static licenses directory.
- Updated the NOTICE file to include detailed attributions for third-party libraries.
- Added a new requirements-dev.txt for license compliance checking.
- Updated the requirements.txt to clarify the LGPL license for Paramiko.
This commit is contained in:
Christian Krakau-Louis
2025-04-11 02:39:26 +02:00
parent 2a8c45d661
commit 05ede35059
14 changed files with 924 additions and 20 deletions
+2 -8
View File
@@ -176,14 +176,8 @@ class Settings(BaseSettings):
with open(build_date_file, "r") as f:
return f.read().strip()
# If a timestamp file doesn't exist, try to get the app.py creation/modification time
app_file = os.path.join(os.path.dirname(__file__), "app.py")
if os.path.exists(app_file):
timestamp = os.path.getmtime(app_file)
return datetime.fromtimestamp(timestamp).strftime("%B %d, %Y")
# Default to current date if not found elsewhere
return datetime.now().strftime("%B %d, %Y")
# Default to unknown if not found
return "Unknown build date"
# Get version from file or environment
@property