S38: mdBook scaffold (book.toml + SUMMARY + intro + theme)
- SHA
88222cc2d98b2482b6725d6ab15bf40d872c2a17- Parents
-
df5d7fb - Tree
2888c5a
88222cc
88222cc2d98b2482b6725d6ab15bf40d872c2a17df5d7fb
2888c5a| Status | File | + | - |
|---|---|---|---|
| A |
docs/public/SUMMARY.md
|
49 | 0 |
| A |
docs/public/book.toml
|
39 | 0 |
| A |
docs/public/introduction.md
|
32 | 0 |
| A |
docs/public/theme/shithub.css
|
79 | 0 |
docs/public/SUMMARY.mdadded@@ -0,0 +1,49 @@ | |||
| 1 | +# Summary | ||
| 2 | + | ||
| 3 | +[Introduction](./introduction.md) | ||
| 4 | + | ||
| 5 | +# Using shithub | ||
| 6 | + | ||
| 7 | +- [Quickstart](./user/quickstart.md) | ||
| 8 | +- [Cloning over SSH](./user/ssh.md) | ||
| 9 | +- [Cloning over HTTPS with a PAT](./user/https.md) | ||
| 10 | +- [Personal access tokens](./user/personal-access-tokens.md) | ||
| 11 | +- [Account settings](./user/account.md) | ||
| 12 | + - [Two-factor authentication](./user/2fa.md) | ||
| 13 | +- [Issues](./user/issues.md) | ||
| 14 | +- [Pull requests](./user/pull-requests.md) | ||
| 15 | + - [Branch protection & reviews](./user/branch-protection.md) | ||
| 16 | +- [Notifications](./user/notifications.md) | ||
| 17 | +- [Webhooks](./user/webhooks.md) | ||
| 18 | +- [Search](./user/search.md) | ||
| 19 | +- [Organizations & teams](./user/orgs.md) | ||
| 20 | +- [Markdown reference](./user/markdown.md) | ||
| 21 | + | ||
| 22 | +# API reference | ||
| 23 | + | ||
| 24 | +- [Overview & conventions](./api/overview.md) | ||
| 25 | +- [Authentication](./api/auth.md) | ||
| 26 | +- [Users](./api/users.md) | ||
| 27 | +- [Repositories](./api/repos.md) | ||
| 28 | +- [Issues](./api/issues.md) | ||
| 29 | +- [Pull requests](./api/pulls.md) | ||
| 30 | +- [Status checks](./api/checks.md) | ||
| 31 | +- [Webhooks](./api/webhooks.md) | ||
| 32 | +- [Search](./api/search.md) | ||
| 33 | +- [Admin (site-admin only)](./api/admin.md) | ||
| 34 | + | ||
| 35 | +# Self-hosting | ||
| 36 | + | ||
| 37 | +- [Prerequisites](./self-host/prerequisites.md) | ||
| 38 | +- [Deploying with Ansible](./self-host/deploy.md) | ||
| 39 | +- [Configuration reference](./self-host/configuration.md) | ||
| 40 | +- [Backup & restore](./self-host/backup-restore.md) | ||
| 41 | +- [Upgrades & migrations](./self-host/upgrades.md) | ||
| 42 | +- [Troubleshooting](./self-host/troubleshooting.md) | ||
| 43 | +- [Capacity planning](./self-host/capacity.md) | ||
| 44 | + | ||
| 45 | +--- | ||
| 46 | + | ||
| 47 | +[Contributing](./contributing.md) | ||
| 48 | +[Security policy](./security.md) | ||
| 49 | +[Changelog](./changelog.md) | ||
docs/public/book.tomladded@@ -0,0 +1,39 @@ | |||
| 1 | +# mdBook configuration for the public docs site at docs.shithub.tld. | ||
| 2 | +# Built by `make docs` and synced into Spaces; Caddy serves from there | ||
| 3 | +# (see deploy/docs-site/Caddyfile.snippet). | ||
| 4 | + | ||
| 5 | +[book] | ||
| 6 | +title = "shithub docs" | ||
| 7 | +authors = ["the shithub project"] | ||
| 8 | +description = "User, API, and self-host documentation for shithub." | ||
| 9 | +language = "en" | ||
| 10 | +src = "." | ||
| 11 | +multilingual = false | ||
| 12 | + | ||
| 13 | +[build] | ||
| 14 | +build-dir = "../../build/docs" | ||
| 15 | +create-missing = false | ||
| 16 | + | ||
| 17 | +[output.html] | ||
| 18 | +default-theme = "shithub" | ||
| 19 | +preferred-dark-theme = "shithub-dark" | ||
| 20 | +git-repository-url = "https://github.com/tenseleyFlow/shithub" | ||
| 21 | +git-repository-icon = "fa-github" | ||
| 22 | +edit-url-template = "https://github.com/tenseleyFlow/shithub/edit/main/docs/public/{path}" | ||
| 23 | +no-section-label = false | ||
| 24 | +additional-css = ["theme/shithub.css"] | ||
| 25 | + | ||
| 26 | +[output.html.search] | ||
| 27 | +enable = true | ||
| 28 | +limit-results = 30 | ||
| 29 | +use-boolean-and = true | ||
| 30 | +boost-title = 2 | ||
| 31 | +boost-hierarchy = 1 | ||
| 32 | +boost-paragraph = 1 | ||
| 33 | +expand = true | ||
| 34 | +heading-split-level = 3 | ||
| 35 | +copy-js = true | ||
| 36 | + | ||
| 37 | +[output.html.fold] | ||
| 38 | +enable = true | ||
| 39 | +level = 1 | ||
docs/public/introduction.mdadded@@ -0,0 +1,32 @@ | |||
| 1 | +# Introduction | ||
| 2 | + | ||
| 3 | +shithub is a self-hosted git forge that aims to look and feel like | ||
| 4 | +GitHub. The project is AGPLv3, written in Go, and built around a | ||
| 5 | +small operational footprint — one binary, Postgres, an S3-compatible | ||
| 6 | +object store, and Caddy at the edge. | ||
| 7 | + | ||
| 8 | +This site is the public documentation. It is split into three | ||
| 9 | +sections: | ||
| 10 | + | ||
| 11 | +- **Using shithub** — for end users of an instance: how to push | ||
| 12 | + code, file issues, manage tokens, configure webhooks. | ||
| 13 | +- **API reference** — for integrators writing against the REST | ||
| 14 | + surface. | ||
| 15 | +- **Self-hosting** — for operators standing up an instance. | ||
| 16 | + | ||
| 17 | +The internal architecture and operator runbooks live in the | ||
| 18 | +[repository](https://github.com/tenseleyFlow/shithub) under | ||
| 19 | +`docs/internal/`. Some of that material is mirrored here in | ||
| 20 | +operator-friendly form; the in-repo originals are the source of | ||
| 21 | +truth for the people running the site. | ||
| 22 | + | ||
| 23 | +## Project status | ||
| 24 | + | ||
| 25 | +shithub is **post-launch but young**. The core forge loop (auth, | ||
| 26 | +repos, git over HTTPS, issues, PRs with reviews, webhooks, | ||
| 27 | +notifications, search, orgs/teams) works end-to-end. There are | ||
| 28 | +gaps — SSH git transport, an Actions-equivalent CI runner, a | ||
| 29 | +GraphQL API, and parts of the visual polish are still in flight | ||
| 30 | +or planned. The `Changelog` lists what shipped when. | ||
| 31 | + | ||
| 32 | +If you're new, start with the [Quickstart](./user/quickstart.md). | ||
docs/public/theme/shithub.cssadded@@ -0,0 +1,79 @@ | |||
| 1 | +/* Minimal mdBook theme overrides — keep the default chrome and just | ||
| 2 | + align colors and a couple of spacings with the shithub app's | ||
| 3 | + Primer-ish palette so the docs site doesn't feel disconnected. */ | ||
| 4 | + | ||
| 5 | +:root { | ||
| 6 | + --shithub-accent: #1f6feb; | ||
| 7 | + --shithub-accent-subtle: #ddf4ff; | ||
| 8 | +} | ||
| 9 | + | ||
| 10 | +.shithub { | ||
| 11 | + --bg: #ffffff; | ||
| 12 | + --fg: #1f2328; | ||
| 13 | + --sidebar-bg: #f6f8fa; | ||
| 14 | + --sidebar-fg: #1f2328; | ||
| 15 | + --sidebar-non-existant: #a0a0a0; | ||
| 16 | + --sidebar-active: var(--shithub-accent); | ||
| 17 | + --sidebar-spacer: #d0d7de; | ||
| 18 | + --scrollbar: #d0d7de; | ||
| 19 | + --icons: #57606a; | ||
| 20 | + --icons-hover: #1f2328; | ||
| 21 | + --links: var(--shithub-accent); | ||
| 22 | + --inline-code-color: #cf222e; | ||
| 23 | + --theme-popup-bg: #ffffff; | ||
| 24 | + --theme-popup-border:#d0d7de; | ||
| 25 | + --theme-hover: #f3f4f6; | ||
| 26 | + --quote-bg: #f6f8fa; | ||
| 27 | + --quote-border: #d0d7de; | ||
| 28 | + --table-border-color:#d0d7de; | ||
| 29 | + --table-header-bg: #f6f8fa; | ||
| 30 | + --table-alternate-bg:#f6f8fa; | ||
| 31 | + --searchbar-border-color: #d0d7de; | ||
| 32 | + --searchbar-bg: #ffffff; | ||
| 33 | + --searchbar-fg: #1f2328; | ||
| 34 | + --searchbar-shadow-color: rgba(0,0,0,0.05); | ||
| 35 | + --searchresults-header-fg: #57606a; | ||
| 36 | + --searchresults-border-color: #d0d7de; | ||
| 37 | + --searchresults-li-bg: #f6f8fa; | ||
| 38 | + --search-mark-bg: var(--shithub-accent-subtle); | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +.shithub-dark { | ||
| 42 | + --bg: #0d1117; | ||
| 43 | + --fg: #c9d1d9; | ||
| 44 | + --sidebar-bg: #161b22; | ||
| 45 | + --sidebar-fg: #c9d1d9; | ||
| 46 | + --sidebar-non-existant: #6e7681; | ||
| 47 | + --sidebar-active: #58a6ff; | ||
| 48 | + --sidebar-spacer: #30363d; | ||
| 49 | + --scrollbar: #30363d; | ||
| 50 | + --icons: #8b949e; | ||
| 51 | + --icons-hover: #c9d1d9; | ||
| 52 | + --links: #58a6ff; | ||
| 53 | + --inline-code-color: #ff7b72; | ||
| 54 | + --theme-popup-bg: #161b22; | ||
| 55 | + --theme-popup-border:#30363d; | ||
| 56 | + --theme-hover: #1f242c; | ||
| 57 | + --quote-bg: #161b22; | ||
| 58 | + --quote-border: #30363d; | ||
| 59 | + --table-border-color:#30363d; | ||
| 60 | + --table-header-bg: #161b22; | ||
| 61 | + --table-alternate-bg:#161b22; | ||
| 62 | + --searchbar-border-color: #30363d; | ||
| 63 | + --searchbar-bg: #0d1117; | ||
| 64 | + --searchbar-fg: #c9d1d9; | ||
| 65 | + --searchbar-shadow-color: rgba(0,0,0,0.3); | ||
| 66 | + --searchresults-header-fg: #8b949e; | ||
| 67 | + --searchresults-border-color: #30363d; | ||
| 68 | + --searchresults-li-bg: #161b22; | ||
| 69 | + --search-mark-bg: #1f6feb33; | ||
| 70 | +} | ||
| 71 | + | ||
| 72 | +.content code { | ||
| 73 | + font-size: 0.9em; | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | +.content pre code { | ||
| 77 | + font-size: 0.85em; | ||
| 78 | + line-height: 1.45; | ||
| 79 | +} | ||