modified: app.py

modified:   projects_list.json
	modified:   templates/base.html
This commit is contained in:
SimolZimol
2025-07-06 23:59:31 +02:00
parent 515a007d39
commit 11b3ec6ea5
3 changed files with 59 additions and 5 deletions

41
app.py
View File

@@ -1292,20 +1292,55 @@ def install_project():
else:
return jsonify({'success': False, 'message': message})
elif installation_method in ['docker_url', 'docker_file']:
elif installation_method in ['docker_url']:
# Docker-Image von URL herunterladen (z.B. .tar Datei)
success, message = project_manager.load_docker_image_from_url(project_url, project_name)
if success:
try:
project_manager.save_project_version(project_name, project_url, installation_method=installation_method)
project_manager.save_project_version(project_name, project_url, installation_method='docker_url')
except Exception as e:
print(f"Warnung: Konnte Version nach URL-Download nicht speichern: {e}")
return jsonify({
'success': True,
'message': f'{message}. Bereit zum Starten.',
'method': installation_method
'method': 'docker_url'
})
else:
return jsonify({'success': False, 'message': message})
elif installation_method in ['docker_file']:
# Prüfe ob es eine .tar URL ist oder ein Repository
if project_url.endswith('.tar') or '/images/' in project_url:
# .tar Datei von URL laden
success, message = project_manager.load_docker_image_from_url(project_url, project_name)
method = 'docker_url'
else:
# Repository klonen und Dockerfile bauen
print(f"🐳 Dockerfile-Installation für {project_name} von {project_url}")
success, message = project_manager.clone_project(project_url, project_name)
if success:
# Versuche Docker-Image aus Dockerfile zu bauen
build_success, build_message = project_manager.build_project(project_name)
if build_success:
message = f'Projekt geklont und Docker-Image gebaut: {build_message}'
else:
success = False
message = f'Projekt geklont, aber Docker-Build fehlgeschlagen: {build_message}'
method = 'docker_file'
if success:
try:
project_manager.save_project_version(project_name, project_url, installation_method=method)
except Exception as e:
print(f"Warnung: Konnte Version nach Installation nicht speichern: {e}")
return jsonify({
'success': True,
'message': f'{message}. Bereit zum Starten.',
'method': method
})
else:
return jsonify({'success': False, 'message': message})

View File

@@ -46,6 +46,12 @@
"url": "https://simolzimol.eu/images/quizify-1.3.0.tar",
"type": "docker_file",
"description": "Docker-Image-Datei von Webserver herunterladen"
},
"docker_url": {
"available": true,
"url": "https://simolzimol.eu/images/quizify-1.3.0.tar",
"type": "docker",
"description": "Docker-Image direkt von URL laden"
}
},
"preferred": "image"
@@ -54,7 +60,7 @@
"created": "2024-01-15",
"last_updated": "2025-07-06",
"version": "1.3.0",
"author": "Simon",
"author": "Simon Giehl",
"license": "MIT",
"homepage": "https://gitea.simolzimol.net/Simon/quizify",
"documentation": {

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}App Installer & Manager{% endblock %}</title>
<title>{% block title %}App Installer & Manager - by Simon Giehl{% endblock %}</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
@@ -216,6 +216,19 @@
{% block content %}{% endblock %}
</div>
<!-- Footer -->
<footer class="mt-5 py-4 text-center" style="background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); border-radius: 15px 15px 0 0; margin: 20px;">
<div class="container">
<p class="mb-1 text-muted">
<i class="fas fa-rocket me-2"></i><strong>App Installer & Manager</strong>
</p>
<p class="mb-0 small text-muted">
Entwickelt von <strong>Simon Giehl</strong> &copy; 2025 |
<i class="fab fa-docker me-1"></i>Docker-basiertes Projektmanagement
</p>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
// Auto-refresh status alle 30 Sekunden