You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace GitHub Pages deployment with rsync-over-SSH to the VPS.
Each book now builds to a versioned path (e.g. start-os/0.4.0.x/)
controlled by versions.conf, with nginx handling version inference
and legacy redirects.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+25-2Lines changed: 25 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,9 +59,32 @@ The `theme/` directory at repo root is the single source of truth for styling. E
59
59
- Theme toggle
60
60
- Favicon
61
61
62
+
## Versioning
63
+
64
+
Each book is versioned independently via `versions.conf` at repo root:
65
+
66
+
```bash
67
+
START_OS_VERSION="0.4.0.x"
68
+
START_TUNNEL_VERSION="1.0.x"
69
+
PACKAGING_VERSION="0.4.0.x"
70
+
```
71
+
72
+
Build output goes to `docs/<book>/<version>/` (e.g. `docs/start-os/0.4.0.x/`). The `site-url` is set via environment variable at build time so mdbook generates correct search indexes and canonical URLs for the versioned path.
73
+
62
74
## Build Pipeline
63
75
64
-
`build.sh` runs `mdbook build` in each book directory. Output goes to `docs/<book-name>/`. The landing page is copied to `docs/index.html`. CI then generates `llms.txt` and `llms-full.txt` for LLM consumption.
76
+
`build.sh` sources `versions.conf` and runs `mdbook build` in each book directory with versioned output paths. The landing page is copied to `docs/index.html`. CI then generates `llms.txt` and `llms-full.txt` for LLM consumption.
77
+
78
+
## Deployment
79
+
80
+
Deployment is via GitHub Actions (`.github/workflows/deploy.yml`):
81
+
82
+
1. Build all books and generate llms.txt
83
+
2. rsync each versioned book directory to the VPS at `/var/www/html/docs.start9.com/`
84
+
3. Generate and upload `book_versions.conf` (nginx map config) from `versions.conf`
85
+
4. Reload nginx
86
+
87
+
The deploy key is stored as the `DOCS_DEPLOY_KEY` GitHub Actions secret.
65
88
66
89
## Scripts
67
90
@@ -71,4 +94,4 @@ The `theme/` directory at repo root is the single source of truth for styling. E
71
94
72
95
## Cross-Book Links
73
96
74
-
mdBook validates links within a single book. Links between books use absolute paths (`/start-tunnel/user-manual/devices.html`) and are not validated at build time. There are only a handful of these.
97
+
mdBook validates links within a single book. Links between books use unversioned absolute paths (`/start-tunnel/user-manual/devices.html`) — nginx redirects these to the latest versioned path. These are not validated at build time. There are only a handful of these.
0 commit comments