diff --git a/docs/_config.yml b/docs/_config.yml
index a9b8f68..560f548 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -1,9 +1,47 @@
title: Proxy
-description: A reverse proxy and HTTPS termination service using OpenResty/nginx with a management API and web GUI
-theme: jekyll-theme-cayman
-show_downloads: false
+description: A reverse proxy and HTTPS termination service built on OpenResty/nginx, with an OIDC + LDAP-aware management API and web GUI.
+url: "https://theta42.github.io"
+baseurl: "/proxy"
+logo: /assets/img/theta42.svg
+lang: en_US
+
+plugins:
+ - jekyll-seo-tag
+ - jekyll-sitemap
+
github:
repository_url: https://github.com/theta42/proxy
zip_url: https://github.com/theta42/proxy/archive/refs/heads/master.zip
tar_url: https://github.com/theta42/proxy/archive/refs/heads/master.tar.gz
repository_name: theta42/proxy
+
+nav:
+ - title: Home
+ page: /
+ icon: fa-house
+ - title: Installation
+ page: /installation.html
+ icon: fa-download
+ - title: Architecture
+ page: /architecture.html
+ icon: fa-sitemap
+ - title: API
+ page: /api.html
+ icon: fa-code
+ - title: Docker
+ page: /docker.html
+ icon: fa-box
+ - title: Contributing
+ page: /contributing.html
+ icon: fa-code-branch
+ - title: Changelog
+ url: https://github.com/theta42/proxy/blob/master/CHANGELOG.md
+ icon: fa-list
+
+defaults:
+ - scope:
+ path: ""
+ type: "pages"
+ values:
+ layout: default
+ image: /assets/img/theta42.svg
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
new file mode 100644
index 0000000..132c524
--- /dev/null
+++ b/docs/_layouts/default.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+ {% seo title=false %}
+ {% if page.title %}{{ page.title }} · {% endif %}{{ site.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/api.md b/docs/api.md
index 2c63b26..a497b71 100755
--- a/docs/api.md
+++ b/docs/api.md
@@ -1,6 +1,7 @@
---
layout: default
title: API Reference
+description: The proxy's management REST API — hosts, DNS providers, users, groups, and permissions.
---
# API Documentation
diff --git a/docs/architecture.md b/docs/architecture.md
index 6757d12..ad1d7d9 100644
--- a/docs/architecture.md
+++ b/docs/architecture.md
@@ -1,6 +1,7 @@
---
layout: default
title: Architecture
+description: How the proxy's OIDC client, LDAP client, and OpenResty routing fit together.
---
# Architecture
diff --git a/docs/assets/css/style.css b/docs/assets/css/style.css
new file mode 100644
index 0000000..e24a5de
--- /dev/null
+++ b/docs/assets/css/style.css
@@ -0,0 +1,116 @@
+/* theta42 docs site — shares the in-app dark navbar/footer + card look
+ (Bootstrap 5 + Font Awesome, same as the running apps) rather than a
+ generic Jekyll theme. */
+
+body {
+ background-color: #f4f5f6;
+}
+
+.navbar-brand img {
+ filter: drop-shadow(0 0 2px rgba(0, 0, 0, .4));
+}
+
+.navbar-nav .nav-link.active {
+ color: #fff;
+ font-weight: 600;
+}
+
+/* Markdown content typography, scoped to the card body so it doesn't leak
+ into the nav/footer. */
+.site-content h1:first-child {
+ margin-top: 0;
+}
+
+.site-content h1,
+.site-content h2,
+.site-content h3 {
+ font-weight: 700;
+}
+
+.site-content h2 {
+ margin-top: 2.5rem;
+ padding-bottom: .4rem;
+ border-bottom: 1px solid #e9ecef;
+}
+
+.site-content h3 {
+ margin-top: 1.75rem;
+}
+
+.site-content a {
+ color: #a3671f;
+ text-decoration-color: rgba(163, 103, 31, .35);
+}
+
+.site-content a:hover {
+ color: #8a5a16;
+}
+
+.site-content pre {
+ background-color: #212529;
+ color: #f8f9fa;
+ padding: 1rem 1.25rem;
+ border-radius: .375rem;
+ overflow-x: auto;
+}
+
+.site-content code {
+ color: #a3671f;
+ background-color: #f4f0e8;
+ padding: .15em .4em;
+ border-radius: .25rem;
+ font-size: .875em;
+}
+
+.site-content pre code {
+ color: inherit;
+ background: none;
+ padding: 0;
+}
+
+.site-content table {
+ display: block;
+ overflow-x: auto;
+ width: 100%;
+ border-collapse: collapse;
+ margin: 1.25rem 0;
+}
+
+.site-content table th,
+.site-content table td {
+ border: 1px solid #dee2e6;
+ padding: .5rem .75rem;
+ text-align: left;
+}
+
+.site-content table th {
+ background-color: #f8f9fa;
+}
+
+.site-content blockquote {
+ border-left: 4px solid #C59341;
+ padding: .5rem 1rem;
+ margin: 1.25rem 0;
+ background-color: #f8f6f1;
+ color: #495057;
+}
+
+.site-content img {
+ max-width: 100%;
+ height: auto;
+}
+
+/* Screenshot grids in the markdown use width="49%" inline attrs for a
+ two-up desktop layout -- stack them on narrow screens instead of
+ squeezing to illegibility. */
+@media (max-width: 576px) {
+ .site-content img[width] {
+ width: 100% !important;
+ margin-bottom: .75rem;
+ }
+}
+
+.site-content hr {
+ margin: 2rem 0;
+ border-top: 1px solid #e9ecef;
+}
diff --git a/docs/assets/img/favicon.svg b/docs/assets/img/favicon.svg
new file mode 100644
index 0000000..35e1881
--- /dev/null
+++ b/docs/assets/img/favicon.svg
@@ -0,0 +1,17 @@
+
diff --git a/docs/assets/img/theta42.svg b/docs/assets/img/theta42.svg
new file mode 100644
index 0000000..e598305
--- /dev/null
+++ b/docs/assets/img/theta42.svg
@@ -0,0 +1,51 @@
+
diff --git a/docs/contributing.md b/docs/contributing.md
index 6cc13c2..08aa80f 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -1,6 +1,7 @@
---
layout: default
title: Contributing
+description: How to contribute to the proxy — dev setup, tests, and code conventions.
---
# Contributing Guide
diff --git a/docs/docker.md b/docs/docker.md
index 3dd48a3..7a60bc5 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -1,6 +1,7 @@
---
layout: default
title: Docker
+description: Running the proxy's all-in-one Docker image — OpenResty, the management app, and Redis in one container.
---
# Docker Deployment
diff --git a/docs/index.md b/docs/index.md
index 5681ae6..c892268 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,6 +1,7 @@
---
layout: default
title: Home
+description: A reverse proxy and HTTPS termination service built on OpenResty/nginx, with automatic Let's Encrypt certs, OIDC login, and direct LDAP access control per host.
---
# Proxy
diff --git a/docs/installation.md b/docs/installation.md
index 0f4435c..32d6c6c 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -1,6 +1,7 @@
---
layout: default
title: Installation
+description: Installing the proxy — Docker, bare metal, or as part of the unified theta-env stack.
---
# Installation Guide
diff --git a/docs/robots.txt b/docs/robots.txt
new file mode 100644
index 0000000..bd503ab
--- /dev/null
+++ b/docs/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Allow: /
+
+Sitemap: https://theta42.github.io/proxy/sitemap.xml