AstraOS Ver. 1.54.0 - Serve installer via Flask route to fix Nginx 404 and remove sidebar from installer page
All checks were successful
Deploy AstraOS Panel / deploy (push) Successful in 27s

This commit is contained in:
MrWhiff 2026-08-30 20:08:41 +02:00
parent 53827eb8c3
commit cfae0cf9ff
2 changed files with 82 additions and 70 deletions

View file

@ -1,9 +1,17 @@
{% extends "sidebar.html" %} <!DOCTYPE html>
<html lang="de">
{% block title %}AstraOS — Desktop App{% endblock %} <head>
<meta charset="UTF-8">
{% block head %} <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AstraOS — Desktop App</title>
<link rel="icon" href="{{ url_for('static', filename='media/AstraOS_Logo.ico') }}" type="image/x-icon">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<style> <style>
body {
background: radial-gradient(circle at top, #1b1b26, #0a0a0f 70%);
min-height: 100vh;
}
.glow-card { .glow-card {
transition: 0.2s ease; transition: 0.2s ease;
} }
@ -21,24 +29,16 @@
box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6); box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
transform: translateY(-2px); transform: translateY(-2px);
} }
.platform-icon {
width: 24px;
height: 24px;
fill: currentColor;
}
</style> </style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script> </head>
{% endblock %} <body class="text-white flex flex-col items-center justify-center p-6">
<div class="w-full max-w-4xl pt-10">
{% block content %} <header class="flex flex-col items-center text-center mb-12 opacity-0" id="header-anim">
<header class="flex justify-between items-center mb-6 opacity-0" id="header-anim"> <h2 class="text-5xl font-bold tracking-wide text-purple-300">AstraOS Desktop App</h2>
<div> <p class="text-slate-400 mt-4 text-lg">Lade den offiziellen AstraOS Client für dein Betriebssystem herunter.</p>
<h2 class="text-4xl font-bold tracking-wide text-purple-300">Desktop App</h2>
<p class="text-slate-400 mt-2">Lade den offiziellen AstraOS Client für dein Betriebssystem herunter.</p>
</div>
</header> </header>
<div class="max-w-2xl" id="cards-anim"> <div class="max-w-2xl mx-auto" id="cards-anim">
<!-- Windows Download (Prominent) --> <!-- Windows Download (Prominent) -->
<div class="glow-card opacity-0 translate-y-8 bg-black/40 border border-purple-500/20 p-10 rounded-2xl backdrop-blur flex flex-col md:flex-row items-center text-center md:text-left gap-8"> <div class="glow-card opacity-0 translate-y-8 bg-black/40 border border-purple-500/20 p-10 rounded-2xl backdrop-blur flex flex-col md:flex-row items-center text-center md:text-left gap-8">
<div class="w-20 h-20 bg-blue-500/10 text-blue-400 rounded-3xl flex items-center justify-center flex-shrink-0 border border-blue-500/20 shadow-[0_0_30px_rgba(59,130,246,0.15)]"> <div class="w-20 h-20 bg-blue-500/10 text-blue-400 rounded-3xl flex items-center justify-center flex-shrink-0 border border-blue-500/20 shadow-[0_0_30px_rgba(59,130,246,0.15)]">
@ -49,7 +49,7 @@
<div class="flex-1"> <div class="flex-1">
<h3 class="text-3xl font-bold text-slate-100 mb-2">Windows (64-bit)</h3> <h3 class="text-3xl font-bold text-slate-100 mb-2">Windows (64-bit)</h3>
<p class="text-slate-400 text-sm mb-6">Optimiert für Windows 10 & 11. Bietet natives Fenstermanagement, reibungslose Performance und nahtlose Integration.</p> <p class="text-slate-400 text-sm mb-6">Optimiert für Windows 10 & 11. Bietet natives Fenstermanagement, reibungslose Performance und nahtlose Integration.</p>
<a href="/static/downloads/AstraOS_Setup_1.54.exe" class="btn-primary w-full md:w-auto px-8 py-3 rounded-lg font-semibold inline-flex items-center justify-center gap-3"> <a href="/download-installer" class="btn-primary w-full md:w-auto px-8 py-3 rounded-lg font-semibold inline-flex items-center justify-center gap-3">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"></path></svg> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"></path></svg>
Jetzt herunterladen Jetzt herunterladen
</a> </a>
@ -58,7 +58,7 @@
</div> </div>
<!-- Other OS (Subtle) --> <!-- Other OS (Subtle) -->
<div class="opacity-0 translate-y-4 mt-8 pt-6 border-t border-slate-800/60" id="other-os-anim"> <div class="opacity-0 translate-y-4 mt-8 pt-6 border-t border-slate-800/60 flex justify-center" id="other-os-anim">
<p class="text-sm text-slate-500 flex items-center gap-2"> <p class="text-sm text-slate-500 flex items-center gap-2">
<svg class="w-4 h-4 text-slate-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg> <svg class="w-4 h-4 text-slate-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
macOS & Linux Clients befinden sich derzeit in Entwicklung. macOS & Linux Clients befinden sich derzeit in Entwicklung.
@ -66,11 +66,18 @@
</div> </div>
</div> </div>
<div class="mt-16 text-center opacity-0" id="back-anim">
<a href="/" class="text-slate-400 hover:text-purple-400 transition-colors text-sm font-medium">Zurück zur Hauptseite</a>
</div>
</div>
<script> <script>
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
gsap.to("#header-anim", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out" }); gsap.to("#header-anim", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out" });
gsap.to(".glow-card", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out", delay: 0.1 }); gsap.to(".glow-card", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out", delay: 0.1 });
gsap.to("#other-os-anim", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out", delay: 0.2 }); gsap.to("#other-os-anim", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out", delay: 0.2 });
gsap.to("#back-anim", { opacity: 1, duration: 0.6, delay: 0.3 });
}); });
</script> </script>
{% endblock %} </body>
</html>

View file

@ -683,6 +683,11 @@ def home():
def installer(): def installer():
user = accounts_collection.find_one({"_id": ObjectId(session['user_id'])}) if 'user_id' in session else None user = accounts_collection.find_one({"_id": ObjectId(session['user_id'])}) if 'user_id' in session else None
return render_template('installer.html', user=user, active_page='installer') return render_template('installer.html', user=user, active_page='installer')
@app.route('/download-installer')
def download_installer():
file_path = os.path.join(app.root_path, 'Frontend', 'downloads', 'AstraOS_Setup_1.54.exe')
return send_file(file_path, as_attachment=True)
@app.route('/login', methods=['GET', 'POST']) @app.route('/login', methods=['GET', 'POST'])
def login(): def login():
if 'user_id' in session: if 'user_id' in session: