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 | +} | |