Files
ems/deploy/tesla/callback.html
Dusan Vojacek 620cea8b9b
All checks were successful
CI and deploy / migration-check (push) Successful in 33s
CI and deploy / deploy (push) Successful in 1m30s
Tesla Fleet API: příprava domény ems.vojacek.eu (cert + public key + callback)
Doména slouží jen jako veřejná vizitka pro Tesla: Caddy blok vystavuje POUZE
.well-known public key a statickou OAuth callback stránku (zobrazí ?code=,
nic neodesílá), vše ostatní 404 — EMS zůstává na VPN. Certifikát Let's Encrypt
řeší hostovský Caddy automaticky.

deploy/tesla/setup_tesla_domain.sh (spustit NA SERVERU): EC keypair prime256v1
(privátní do /opt/ems-deploy/secrets 0600), public do .well-known, callback,
vypíše Caddy blok. docs/tesla-fleet-api.md: developer portál, partner
registrace, OAuth flow, plán EMS integrace (tesla_client + hook v _on_ev_arrival).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 22:58:28 +02:00

31 lines
1.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>EMS Tesla OAuth callback</title>
<style>
body { font-family: system-ui, sans-serif; background: #0f172a; color: #e2e8f0;
display: grid; place-items: center; min-height: 100vh; margin: 0; }
.card { background: #1e293b; padding: 2rem; border-radius: 12px; max-width: 640px; }
code { background: #0f172a; padding: .5rem; border-radius: 6px; display: block;
word-break: break-all; margin-top: .5rem; user-select: all; }
.muted { color: #94a3b8; font-size: .9rem; }
</style>
</head>
<body>
<div class="card">
<h2>Tesla OAuth callback</h2>
<p>Autorizační kód (zkopíruj do EMS kroku výměny tokenu):</p>
<code id="code"></code>
<p class="muted">Stránka je statická, kód se nikam neodesílá. Po výměně za
refresh token už není potřeba.</p>
</div>
<script>
const p = new URLSearchParams(location.search);
document.getElementById("code").textContent = p.get("code") || "(chybí ?code= v URL)";
</script>
</body>
</html>