modified: app.py
modified: projects_list.json modified: templates/base.html
This commit is contained in:
41
app.py
41
app.py
@@ -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})
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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> © 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
|
||||
|
||||
Reference in New Issue
Block a user