scaffold MkDocs Material handbook site

Initialize the public Rethink Studios docs site:
- mkdocs.yml: Material theme, light/dark palette toggle, pymdownx
  extensions, search, four-section nav skeleton.
- docs/index.md landing page with a card grid.
- Stub index pages for deploy, conventions, libraries, runbooks.
- .gitignore excludes .claude/, site/, and Python build cruft.

Deploy guide deferred; deploy section is a placeholder for now.

Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
disqualifier 2026-06-29 19:29:30 -04:00
commit bad61bea2d
7 changed files with 207 additions and 0 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
# Claude project scaffold — never committed
.claude/
# MkDocs build output
site/
# Python
__pycache__/
*.py[cod]
.venv/
venv/

19
docs/conventions/index.md Normal file
View File

@ -0,0 +1,19 @@
# Conventions
Coding, library, and infrastructure conventions that keep projects consistent.
!!! note "Work in progress"
Individual convention pages will be added under this section and wired into
the nav.
## Topics to document
- **Python style** — flake8 clean (max line 120), type hints on public
functions, lowercase-start docstrings with no trailing period.
- **Library layout**`src/` layout, hatchling, Python ≥ 3.10, underscores in
names, `aio`-prefix only for libs that define async surfaces.
- **Logging** — emit-only in libraries (`logging.getLogger(__name__)`); handler,
level, and format configured only at the application entry point.
- **Files** — trailing newline, no trailing whitespace, LF line endings.
- **Config** — config-free modules (inject dependencies), single source of
truth, no duplicated logic or constants.

22
docs/deploy/index.md Normal file
View File

@ -0,0 +1,22 @@
# Deploy
Guides for getting a service from a repo to running behind the reverse proxy.
!!! note "Work in progress"
The services-container deploy guide will live here. Until it's added, this
page is a placeholder.
## Planned guides
- **Services container standard** — the baseline image, `uid 1337`, volume and
log layout, healthchecks.
- **Compose pattern** — how a service's `compose.yaml` wires into the shared
proxy network.
- **Reverse proxy** — exposing a service at a subdomain (sanitized).
## Conventions
- Containers run as the services uid (`1337`) per our container standard.
- Logs land under `/srv/logs/...` mirroring the app's deploy path.
- No real hostnames, internal IPs, or exact topology in these public pages —
use placeholders and describe the pattern.

46
docs/index.md Normal file
View File

@ -0,0 +1,46 @@
# Rethink Studios Handbook
The shared reference for how we build, deploy, and operate. Generic patterns and
conventions live here — sanitized for public consumption. Real infrastructure
specifics (hostnames, internal IPs, secrets, exact topology) stay in our private
runbooks.
## Sections
<div class="grid cards" markdown>
- :material-rocket-launch: __[Deploy](deploy/index.md)__
---
How services get from a repo to running behind the proxy — container
standards, compose patterns, and step-by-step deploy guides.
- :material-ruler-square: __[Conventions](conventions/index.md)__
---
Coding, library, and infrastructure conventions. Naming, layout, logging,
and the rules that keep things consistent across projects.
- :material-package-variant: __[Libraries](libraries/index.md)__
---
Usage docs for the shared `rethink-public` library suite — what each lib
does and how to wire it into a project.
- :material-tools: __[Runbooks](runbooks/index.md)__
---
Operational how-tos for recurring tasks — sanitized for public reference.
</div>
## Conventions for this handbook
- One topic per page, grouped by section directory.
- Public means sanitized: use placeholders (`<host>`, `<dev>`, `/srv/...`) and
describe the pattern, not our literal infrastructure.
- Code blocks are tagged with their language and kept copy-pasteable.

23
docs/libraries/index.md Normal file
View File

@ -0,0 +1,23 @@
# Libraries
Usage docs for the shared `rethink-public` library suite. Before hand-rolling
common functionality, check the suite first and prefer an existing lib.
!!! note "Work in progress"
A page per library will be added here. Browse the `rethink-public` org for
the live list — each repo's tagline says what it does.
## Install pattern
```
<lib> @ git+https://git.rethinkstudios.io/rethink-public/<lib>.git@<tag>
```
## Common capabilities covered by the suite
Retry/backoff, logging setup, HTTP sessions, proxies, webhooks, IMAP/mail,
Mongo/KV/datastore, crypto/envelope, `discord.py` helpers, and timing/paths/
masking utilities.
If a capability isn't in the suite, build it in-project — and flag whether it's
generic enough to become a new shared lib.

17
docs/runbooks/index.md Normal file
View File

@ -0,0 +1,17 @@
# Runbooks
Operational how-tos for recurring tasks — sanitized for public reference.
!!! note "Work in progress"
Individual runbooks will be added under this section and wired into the nav.
## Sanitization reminder
Runbooks often touch real infrastructure. Before a runbook goes public:
- Replace real hostnames, internal IPs, and exact topology with placeholders
(`<host>`, `<dev>`, `/srv/...`).
- Strip secrets and credentials entirely — reference where they live, never the
values.
- Keep the procedure and the reasoning; drop the specifics that identify our
boxes.

69
mkdocs.yml Normal file
View File

@ -0,0 +1,69 @@
site_name: Rethink Studios Handbook
site_description: Deploy guides, infra and container standards, conventions, library usage, and runbooks.
site_url: https://docs.rethinkstudios.io/
copyright: Rethink Studios
theme:
name: material
language: en
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/weather-night
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/weather-sunny
name: Switch to light mode
features:
- navigation.instant
- navigation.tracking
- navigation.sections
- navigation.top
- navigation.indexes
- toc.follow
- search.suggest
- search.highlight
- content.code.copy
- content.code.annotate
icon:
repo: fontawesome/brands/git-alt
markdown_extensions:
- admonition
- attr_list
- md_in_html
- tables
- toc:
permalink: true
- pymdownx.details
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
plugins:
- search
nav:
- Home: index.md
- Deploy:
- deploy/index.md
- Conventions:
- conventions/index.md
- Libraries:
- libraries/index.md
- Runbooks:
- runbooks/index.md