repos
/ orchard main

orchard

mirror

Every site I host, in one repo, along with the Cloudflare Tunnel and Caddy that front them. It's all Go, Vite, and SQLite, and it runs on a desktop at home with nothing listening on an inbound port.

blogbuncaddycloudflare-tunneldockergogolanghomelabhtml-templatemonorepoself-hostedseosqlitestatic-sitetypstuptime-monitoringviteweb-analytics

1.3 KB · 42 lines · HTML Raw History
 1<!doctype html>
 2<html lang="en">
 3<head>
 4  <meta charset="utf-8">
 5  <meta name="viewport" content="width=device-width, initial-scale=1">
 6  <title>{{ .Title }} ยท {{ .SiteName }}</title>
 7  <meta name="description" content="{{ .Description }}">
 8  <link rel="canonical" href="{{ .Canonical }}">
 9  {{/* The staging hostname is a complete duplicate of the real site, which is
10       the one way it can damage it. robots.txt refuses the crawl and this
11       refuses the index, because either alone has a hole: a crawler that
12       ignores robots.txt still sees the meta tag, and one that obeys it never
13       fetches the page to read the tag. */}}
14  {{ if .Staging }}<meta name="robots" content="noindex, nofollow">{{ end }}
15  <link rel="icon" type="image/svg+xml" href="/favicon.ico">
16
17  {{ if .JSONLD }}<script type="application/ld+json">{{ .JSONLD }}</script>{{ end }}
18
19  {{ template "extra_head" . }}
20
21  {{ range .Styles }}<link href="{{ . }}" rel="stylesheet">{{ end }}
22  {{ template "extra_css" . }}
23
24  {{ template "collector" . }}
25</head>
26
27<body>
28  {{ template "nav" . }}
29
30  {{ template "breadcrumb_bar" . }}
31
32  <main>
33    {{ template "main" . }}
34  </main>
35
36  {{ template "footer" . }}
37
38  <script type="module" src="{{ .Script }}"></script>
39  {{ template "extra_js" . }}
40</body>
41</html>