- nginx.conf: add /dl -> latest xetup.exe release redirect (update on each release) - index.html: replace irm/iex command with 'curl -Lo xetup.exe xetup.x9.cz/dl' works with built-in curl.exe on Win10/11, no PowerShell execution policy needed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
271 lines
8.7 KiB
HTML
271 lines
8.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="cs">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Xetup - Windows deployment pro X9.cz</title>
|
||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||
<style>
|
||
:root {
|
||
--bg: #0f1117;
|
||
--card: #1a1d27;
|
||
--border: #2a2d3a;
|
||
--text: #e0e0e0;
|
||
--muted: #888;
|
||
--accent: #223B47;
|
||
--accent-bright: #2d5266;
|
||
--green: #2ea043;
|
||
--blue: #58a6ff;
|
||
}
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body {
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
background: var(--bg);
|
||
color: var(--text);
|
||
min-height: 100vh;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
header {
|
||
border-bottom: 1px solid var(--border);
|
||
padding: 1rem 2rem;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: .75rem;
|
||
}
|
||
.logo-text { font-size: 1.2rem; font-weight: 700; color: #fff; letter-spacing: -.02em; }
|
||
.logo-sub { font-size: .8rem; color: var(--muted); margin-left: .2rem; }
|
||
header nav { margin-left: auto; display: flex; gap: 1.5rem; }
|
||
header nav a { color: var(--muted); text-decoration: none; font-size: .88rem; transition: color .15s; }
|
||
header nav a:hover { color: var(--text); }
|
||
|
||
main {
|
||
flex: 1;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 4rem 2rem;
|
||
text-align: center;
|
||
}
|
||
|
||
.badge {
|
||
display: inline-block;
|
||
background: var(--card);
|
||
border: 1px solid var(--border);
|
||
border-radius: 20px;
|
||
padding: .25rem .75rem;
|
||
font-size: .75rem;
|
||
color: var(--muted);
|
||
margin-bottom: 1.5rem;
|
||
letter-spacing: .03em;
|
||
}
|
||
|
||
h1 {
|
||
font-size: 2.8rem; font-weight: 800; color: #fff;
|
||
letter-spacing: -.04em; line-height: 1.1;
|
||
margin-bottom: 1rem; max-width: 600px;
|
||
}
|
||
h1 span { color: var(--blue); }
|
||
|
||
.tagline {
|
||
font-size: 1.1rem; color: var(--muted); max-width: 480px;
|
||
line-height: 1.6; margin-bottom: 2.5rem;
|
||
}
|
||
|
||
/* ---- ACTIONS ---- */
|
||
.actions {
|
||
display: flex; gap: .75rem; flex-wrap: wrap;
|
||
justify-content: center; margin-bottom: 1.5rem;
|
||
}
|
||
.btn-primary {
|
||
padding: .6rem 1.4rem; background: var(--accent-bright); color: #fff;
|
||
border: 1px solid transparent; border-radius: 8px;
|
||
font-size: .95rem; font-weight: 600; text-decoration: none; transition: opacity .15s;
|
||
}
|
||
.btn-primary:hover { opacity: .85; }
|
||
.btn-secondary {
|
||
padding: .6rem 1.4rem; background: transparent; color: var(--text);
|
||
border: 1px solid var(--border); border-radius: 8px;
|
||
font-size: .95rem; text-decoration: none; transition: background .15s;
|
||
}
|
||
.btn-secondary:hover { background: var(--card); }
|
||
|
||
/* ---- INSTALL COMMAND ---- */
|
||
.install-box {
|
||
margin-bottom: 1.5rem;
|
||
display: flex; align-items: center; gap: 0;
|
||
background: #0d1117; border: 1px solid var(--border);
|
||
border-radius: 10px; overflow: hidden;
|
||
font-size: .88rem; max-width: 520px; width: 100%;
|
||
}
|
||
.install-box code {
|
||
flex: 1; padding: .65rem 1rem;
|
||
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||
color: var(--blue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
.install-box button {
|
||
padding: .65rem .9rem; background: var(--card);
|
||
border: none; border-left: 1px solid var(--border);
|
||
color: var(--muted); cursor: pointer; font-size: .8rem;
|
||
transition: color .15s, background .15s; white-space: nowrap;
|
||
}
|
||
.install-box button:hover { background: var(--accent); color: #fff; }
|
||
.install-box button.copied { color: var(--green); }
|
||
|
||
/* ---- DOWNLOAD STRIP ---- */
|
||
.download-strip {
|
||
margin-bottom: 3.5rem;
|
||
display: flex; align-items: center; gap: .6rem;
|
||
background: var(--card); border: 1px solid var(--border);
|
||
border-radius: 10px; padding: .6rem 1.1rem;
|
||
font-size: .85rem;
|
||
}
|
||
.download-strip a {
|
||
color: var(--blue); text-decoration: none; font-weight: 600;
|
||
display: flex; align-items: center; gap: .35rem;
|
||
}
|
||
.download-strip a:hover { text-decoration: underline; }
|
||
.download-strip .dl-meta { color: var(--muted); font-size: .78rem; }
|
||
.download-strip .dl-sep { color: var(--border); }
|
||
|
||
/* ---- CARDS ---- */
|
||
.cards {
|
||
display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||
gap: 1rem; max-width: 720px; width: 100%;
|
||
}
|
||
.card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1.2rem; text-align: left; }
|
||
.card-icon { font-size: 1.3rem; margin-bottom: .6rem; display: block; }
|
||
.card h3 { font-size: .9rem; font-weight: 600; color: #fff; margin-bottom: .3rem; }
|
||
.card p { font-size: .82rem; color: var(--muted); line-height: 1.4; }
|
||
|
||
footer {
|
||
border-top: 1px solid var(--border); padding: 1.2rem 2rem;
|
||
text-align: center; font-size: .8rem; color: var(--muted);
|
||
}
|
||
footer a { color: var(--muted); text-decoration: none; }
|
||
footer a:hover { color: var(--text); }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<header>
|
||
<div style="display:flex;align-items:center;gap:.6rem">
|
||
<img src="/x9-logo.jpeg" alt="X9.cz" style="height:28px;width:28px;border-radius:5px;object-fit:cover;">
|
||
<span class="logo-text">xetup</span><span class="logo-sub">by X9.cz</span>
|
||
</div>
|
||
<nav>
|
||
<a href="/spec/">Specifikace</a>
|
||
<a href="https://git.xetup.x9.cz/x9/xetup">Git</a>
|
||
<a href="https://git.xetup.x9.cz/x9/xetup/issues">Issues</a>
|
||
</nav>
|
||
</header>
|
||
|
||
<main>
|
||
<div class="badge">MSP deployment tool — X9.cz</div>
|
||
|
||
<h1>Automaticky nastavene <span>Windows</span> za 20 minut</h1>
|
||
|
||
<p class="tagline">
|
||
Nahrazuje 3 hodiny rucniho nastavovani jednim skriptem.
|
||
Win10 + Win11, OEM i cisty install, funguje offline.
|
||
</p>
|
||
|
||
<div class="actions">
|
||
<a href="/spec/" class="btn-primary">Zobrazit specifikaci</a>
|
||
<a href="https://git.xetup.x9.cz/x9/xetup" class="btn-secondary">Git repozitar</a>
|
||
</div>
|
||
|
||
<div class="install-box">
|
||
<code id="install-cmd">curl -Lo xetup.exe xetup.x9.cz/dl</code>
|
||
<button id="copy-btn" onclick="copyCmd()">Kopirovat</button>
|
||
</div>
|
||
|
||
<!-- Dynamic download strip – filled by JS from Forgejo releases API -->
|
||
<div class="download-strip" id="dl-strip" style="display:none">
|
||
<a id="dl-link" href="#" download>
|
||
⬇ xetup.exe
|
||
</a>
|
||
<span class="dl-sep">·</span>
|
||
<span class="dl-meta" id="dl-meta">nacitam...</span>
|
||
<span class="dl-sep">·</span>
|
||
<a href="https://git.xetup.x9.cz/x9/xetup/releases" style="color:var(--muted);font-size:.78rem;text-decoration:none">
|
||
vsechny verze
|
||
</a>
|
||
</div>
|
||
|
||
<div class="cards">
|
||
<div class="card">
|
||
<span class="card-icon">⚙</span>
|
||
<h3>~20 stroju / mesic</h3>
|
||
<p>Ruzni klienti, Win10 i Win11, vcetne nepodporovaneho HW.</p>
|
||
</div>
|
||
<div class="card">
|
||
<span class="card-icon">🔒</span>
|
||
<h3>Offline provoz</h3>
|
||
<p>Scripty + assets jsou soucasti balicku. Site jen pro winget a Atera.</p>
|
||
</div>
|
||
<div class="card">
|
||
<span class="card-icon">📄</span>
|
||
<h3>Per-client config</h3>
|
||
<p>config.json vedle .exe pro opakovatelne nasazeni u stejneho klienta.</p>
|
||
</div>
|
||
<div class="card">
|
||
<span class="card-icon">🚀</span>
|
||
<h3>Go TUI launcher</h3>
|
||
<p>xetup.exe — jednotny binarni spoustec s TUI formularom a live logem.</p>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<footer>
|
||
© 2026 <a href="https://x9.cz">X9.cz s.r.o.</a>
|
||
·
|
||
<a href="https://git.xetup.x9.cz/x9/xetup">Forgejo</a>
|
||
·
|
||
<a href="/spec/">Specifikace</a>
|
||
</footer>
|
||
|
||
<script>
|
||
(function() {
|
||
const API = '/forgejo-api';
|
||
const REPO = 'x9/xetup';
|
||
|
||
fetch(API + '/repos/' + REPO + '/releases?limit=1')
|
||
.then(r => r.json())
|
||
.then(releases => {
|
||
if (!Array.isArray(releases) || !releases.length) return;
|
||
const rel = releases[0];
|
||
const asset = (rel.assets || []).find(a => a.name === 'xetup.exe');
|
||
if (!asset) return;
|
||
|
||
const strip = document.getElementById('dl-strip');
|
||
const link = document.getElementById('dl-link');
|
||
const meta = document.getElementById('dl-meta');
|
||
const sizeMB = (asset.size / 1048576).toFixed(1);
|
||
|
||
link.href = asset.browser_download_url;
|
||
link.textContent = '\u2b15 xetup.exe';
|
||
meta.textContent = rel.tag_name + ' \u00b7 ' + sizeMB + ' MB \u00b7 Windows x64';
|
||
strip.style.display = '';
|
||
})
|
||
.catch(() => {});
|
||
})();
|
||
|
||
function copyCmd() {
|
||
const cmd = document.getElementById('install-cmd').textContent;
|
||
const btn = document.getElementById('copy-btn');
|
||
navigator.clipboard.writeText(cmd).then(function() {
|
||
btn.textContent = 'Skopirovano!';
|
||
btn.classList.add('copied');
|
||
setTimeout(function() {
|
||
btn.textContent = 'Kopirovat';
|
||
btn.classList.remove('copied');
|
||
}, 2000);
|
||
});
|
||
}
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|