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,76 +1,83 @@
{% extends "sidebar.html" %}
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<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>
body {
background: radial-gradient(circle at top, #1b1b26, #0a0a0f 70%);
min-height: 100vh;
}
.glow-card {
transition: 0.2s ease;
}
.glow-card:hover {
box-shadow: 0 0 20px rgba(192,132,252,0.3);
transform: translateY(-4px);
}
.btn-primary {
background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%);
color: white;
box-shadow: 0 4px 15px rgba(168, 85, 247, 0.4);
transition: all 0.2s ease;
}
.btn-primary:hover {
box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
transform: translateY(-2px);
}
</style>
</head>
<body class="text-white flex flex-col items-center justify-center p-6">
<div class="w-full max-w-4xl pt-10">
<header class="flex flex-col items-center text-center mb-12 opacity-0" id="header-anim">
<h2 class="text-5xl font-bold tracking-wide text-purple-300">AstraOS Desktop App</h2>
<p class="text-slate-400 mt-4 text-lg">Lade den offiziellen AstraOS Client für dein Betriebssystem herunter.</p>
</header>
{% block title %}AstraOS — Desktop App{% endblock %}
<div class="max-w-2xl mx-auto" id="cards-anim">
<!-- 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="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)]">
<svg class="w-10 h-10" viewBox="0 0 24 24" fill="currentColor">
<path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/>
</svg>
</div>
<div class="flex-1">
<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>
<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>
Jetzt herunterladen
</a>
<p class="text-xs text-slate-500 mt-4">Version 1.54</p>
</div>
</div>
{% block head %}
<style>
.glow-card {
transition: 0.2s ease;
}
.glow-card:hover {
box-shadow: 0 0 20px rgba(192,132,252,0.3);
transform: translateY(-4px);
}
.btn-primary {
background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%);
color: white;
box-shadow: 0 4px 15px rgba(168, 85, 247, 0.4);
transition: all 0.2s ease;
}
.btn-primary:hover {
box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
transform: translateY(-2px);
}
.platform-icon {
width: 24px;
height: 24px;
fill: currentColor;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
{% endblock %}
{% block content %}
<header class="flex justify-between items-center mb-6 opacity-0" id="header-anim">
<div>
<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>
<div class="max-w-2xl" id="cards-anim">
<!-- 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="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)]">
<svg class="w-10 h-10" viewBox="0 0 24 24" fill="currentColor">
<path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/>
</svg>
<!-- Other OS (Subtle) -->
<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">
<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.
</p>
</div>
</div>
<div class="flex-1">
<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>
<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">
<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
</a>
<p class="text-xs text-slate-500 mt-4">Version 1.54</p>
<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>
<!-- Other OS (Subtle) -->
<div class="opacity-0 translate-y-4 mt-8 pt-6 border-t border-slate-800/60" id="other-os-anim">
<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>
macOS & Linux Clients befinden sich derzeit in Entwicklung.
</p>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
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("#other-os-anim", { opacity: 1, y: 0, duration: 0.6, ease: "power3.out", delay: 0.2 });
});
</script>
{% endblock %}
<script>
document.addEventListener('DOMContentLoaded', () => {
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("#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>
</body>
</html>

View file

@ -683,6 +683,11 @@ def home():
def installer():
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')
@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'])
def login():
if 'user_id' in session: