2024-06-26 19:08:07 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="robots" content="nofollow,noarchive,noindex">
|
|
|
|
<title>{{ message }}</title>
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<!-- {{ if or (eq code 408) (eq code 425) (eq code 429) (eq code 500) (eq code 502) (eq code 503) (eq code 504) }} -->
|
2024-06-28 12:25:43 +00:00
|
|
|
<meta http-equiv="refresh" content="30">
|
2024-06-26 19:08:07 +00:00
|
|
|
<!-- {{ end }} -->
|
2024-06-27 15:29:54 +00:00
|
|
|
<meta name="title" content="{{ code }}: {{ message | escape }}">
|
|
|
|
<meta name="description" content="{{ description | escape }}">
|
|
|
|
<meta property="og:title" content="{{ code }}: {{ message | escape }}">
|
|
|
|
<meta property="og:description" content="{{ description | escape }}">
|
|
|
|
<meta property="twitter:title" content="{{ code }}: {{ message | escape }}">
|
|
|
|
<meta property="twitter:description" content="{{ description | escape }}">
|
2024-06-26 19:08:07 +00:00
|
|
|
<style>
|
|
|
|
/** Idea author: https://codepen.io/robinselmer */
|
|
|
|
html, body {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
min-height: 100%;
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
font-family: monospace;
|
|
|
|
font-size: 16px;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
body {
|
|
|
|
box-sizing: border-box;
|
|
|
|
background-color: #000;
|
|
|
|
background-image: radial-gradient(#11581E, #041607);
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
background-size: cover;
|
|
|
|
color: rgba(128, 255, 128, 0.8);
|
|
|
|
text-shadow: 0 0 11px rgba(51, 255, 51, 1), 0 0 2px rgba(255, 255, 255, 0.8);
|
|
|
|
}
|
|
|
|
|
|
|
|
.overlay {
|
|
|
|
pointer-events: none;
|
|
|
|
position: absolute;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
background: repeating-linear-gradient(
|
|
|
|
180deg,
|
|
|
|
rgba(0, 0, 0, 0) 0,
|
|
|
|
rgba(0, 0, 0, 0.3) 50%,
|
|
|
|
rgba(0, 0, 0, 0) 100%);
|
|
|
|
background-size: auto 4px;
|
|
|
|
z-index: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
.overlay::before {
|
|
|
|
content: '';
|
|
|
|
pointer-events: none;
|
|
|
|
position: absolute;
|
|
|
|
display: block;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
bottom: 0;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
background-image: linear-gradient(
|
|
|
|
0deg,
|
|
|
|
transparent 0%,
|
|
|
|
rgba(32, 128, 32, 0.2) 2%,
|
|
|
|
rgba(32, 128, 32, 0.8) 3%,
|
|
|
|
rgba(32, 128, 32, 0.2) 3%,
|
|
|
|
transparent 100%);
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
animation: scan 7.5s linear 0s infinite;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes scan {
|
|
|
|
0% {
|
|
|
|
background-position: 0 -100vh;
|
|
|
|
}
|
|
|
|
35%, 100% {
|
|
|
|
background-position: 0 100vh;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
main {
|
|
|
|
box-sizing: inherit;
|
|
|
|
position: absolute;
|
|
|
|
height: 100%;
|
|
|
|
width: 1000px;
|
|
|
|
max-width: 100%;
|
|
|
|
padding: 64px;
|
|
|
|
text-transform: uppercase;
|
|
|
|
}
|
|
|
|
|
|
|
|
h1 {
|
|
|
|
font-size: 48px;
|
|
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
|
|
font-size: 24px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.output {
|
|
|
|
color: rgba(128, 255, 128, 0.8);
|
|
|
|
text-shadow: 0 0 1px rgba(51, 255, 51, 0.4),
|
|
|
|
0 0 2px rgba(255, 255, 255, 0.8);
|
|
|
|
}
|
|
|
|
|
|
|
|
.output::before {
|
|
|
|
content: "> ";
|
|
|
|
}
|
|
|
|
|
|
|
|
a {
|
|
|
|
color: #fff;
|
|
|
|
text-decoration: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
a::before {
|
|
|
|
content: "[";
|
|
|
|
}
|
|
|
|
|
|
|
|
a::after {
|
|
|
|
content: "]";
|
|
|
|
}
|
|
|
|
|
|
|
|
.error_code {
|
|
|
|
color: white;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* {{ if show_details }} */
|
|
|
|
.details p {
|
|
|
|
margin-top: .5em;
|
|
|
|
margin-bottom: .5em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.details * {
|
|
|
|
font-size: 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.details p::before {
|
|
|
|
content: "$ ";
|
|
|
|
}
|
|
|
|
|
|
|
|
.details code {
|
|
|
|
font-size: 0.9em;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* {{ end }} */
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="overlay"></div>
|
|
|
|
|
|
|
|
<main>
|
|
|
|
<h1><span data-l10n>Error</span> <span class="error_code">{{ code }}</span></h1>
|
|
|
|
<p class="output" data-l10n>{{ description }}.</p>
|
|
|
|
<p class="output"><span data-l10n>Good luck</span>.</p>
|
|
|
|
<!-- {{- if show_details -}} -->
|
|
|
|
<div class="details">
|
|
|
|
<!-- {{- if host -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Host</span>: <code>{{ host }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if original_uri -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Original URI</span>: <code>{{ original_uri }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if forwarded_for -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Forwarded for</span>: <code>{{ forwarded_for }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if namespace -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Namespace</span>: <code>{{ namespace }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if ingress_name -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Ingress name</span>: <code>{{ ingress_name }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if service_name -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Service name</span>: <code>{{ service_name }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if service_port -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Service port</span>: <code>{{ service_port }}</code></p>
|
|
|
|
<!-- {{- end }}{{ if request_id -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Request ID</span>: <code>{{ request_id }}</code></p>
|
|
|
|
<!-- {{- end -}} -->
|
|
|
|
<p class="output small"><span data-l10n>Timestamp</span>: <code>{{ now.Unix }}</code></p>
|
|
|
|
</div>
|
|
|
|
<!-- {{- end -}} -->
|
|
|
|
</main>
|
|
|
|
|
|
|
|
<!-- {{- if l10n_enabled -}} -->
|
2024-06-28 12:55:06 +00:00
|
|
|
<script>// {{ l10nScript }}</script>
|
2024-06-26 19:08:07 +00:00
|
|
|
<!-- {{- end -}} -->
|
|
|
|
</body>
|
|
|
|
</html>
|