Initial commit — GuacPanel v1.0

All-in-one installer za Apache Guacamole s Nginx reverse proxy,
fail2ban, SSL (Let's Encrypt / Self-signed), GeoIP blokiranjem
i Flask web GUI za upravljanje.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
njomac
2026-04-26 11:21:44 +02:00
commit 50c125e0db
17 changed files with 5249 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="hr" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login Guacamole Manager</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
<style>
body { background: #0f1117; min-height: 100vh;
display: flex; align-items: center; justify-content: center; }
.login-card { width: 360px; background: #161b22;
border: 1px solid #30363d; border-radius: 12px; padding: 2rem; }
.brand { color: #58a6ff; font-size: 1.4rem; font-weight: 700; }
</style>
</head>
<body>
<div class="login-card">
<div class="text-center mb-4">
<i class="bi bi-display fs-1 text-primary"></i>
<div class="brand mt-1">Guacamole Manager</div>
<small class="text-muted">Web upravljačko sučelje</small>
</div>
{% with msgs = get_flashed_messages(with_categories=true) %}
{% for cat, msg in msgs %}
<div class="alert alert-{{ cat }} py-2 small">{{ msg }}</div>
{% endfor %}
{% endwith %}
<form method="post">
<div class="mb-3">
<label class="form-label small text-muted">Korisničko ime</label>
<div class="input-group">
<span class="input-group-text"><i class="bi bi-person"></i></span>
<input name="username" type="text" class="form-control"
placeholder="admin" autofocus required>
</div>
</div>
<div class="mb-4">
<label class="form-label small text-muted">Lozinka</label>
<div class="input-group">
<span class="input-group-text"><i class="bi bi-key"></i></span>
<input name="password" type="password" class="form-control"
placeholder="••••••••" required>
</div>
</div>
<button type="submit" class="btn btn-primary w-100">
<i class="bi bi-box-arrow-in-right"></i> Prijava
</button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>