|
1 | | -# luminos.github.io |
| 1 | +# LuminusOS Website |
| 2 | + |
| 3 | +The official website for [LuminusOS](https://luminusos.org), an immutable Linux |
| 4 | +distribution built on Fedora bootc, plus the [Aurora Shell](https://aurora.luminusos.org) subdomain variant, and |
| 5 | +the [wiki](https://wiki.luminusos.org) and [blog](https://blog.luminusos.org) |
| 6 | +as sub-projects in `wiki/` and `blog/`. |
| 7 | + |
| 8 | +Built with [Astro](https://astro.build). Fully static, no client framework; |
| 9 | +the only JavaScript on the page handles the theme toggle, the language menu |
| 10 | +and fetching the latest release tag from the GitHub API. |
| 11 | + |
| 12 | +## Pages & languages |
| 13 | + |
| 14 | +Every page exists in English (default) and Brazilian Portuguese: |
| 15 | + |
| 16 | +| Route | Content | |
| 17 | +| --- | --- | |
| 18 | +| `/` and `/pt-br/` | LuminusOS home: hero, pillars, how it works, editions, download, support | |
| 19 | +| `/aurora/` and `/pt-br/aurora/` | Aurora Shell subpage | |
| 20 | + |
| 21 | +All copy lives in a single typed dictionary: `src/i18n/translations.ts`. |
| 22 | +Adding a language = append it to the `languages` array (name + flag, the |
| 23 | +header menu picks it up automatically), add its entry to `translations`, and |
| 24 | +create the page folders for its prefix. |
| 25 | + |
| 26 | +The site has light and dark themes: dark by default, following the system |
| 27 | +preference, with a header toggle persisted in `localStorage`. |
| 28 | + |
| 29 | +## Development |
| 30 | + |
| 31 | +```sh |
| 32 | +npm install |
| 33 | +npm run dev # http://localhost:4321 |
| 34 | +npm run build # static output in dist/ |
| 35 | +npm run preview # serve dist/ locally |
| 36 | +``` |
| 37 | + |
| 38 | +## Downloads |
| 39 | + |
| 40 | +Download buttons point at |
| 41 | +`https://github.com/luminusOS/images/releases/latest`, which always resolves to |
| 42 | +the newest release, so no website change is needed when a release ships. |
| 43 | +Editions that don't exist yet (Play, Mobile, Tablet, Cast) render as locked |
| 44 | +"Coming soon" cards in `src/components/HomePage.astro`; flip one to available |
| 45 | +by editing the `available` check when its first release lands. |
| 46 | + |
| 47 | +## The Aurora Shell subdomain |
| 48 | + |
| 49 | +`aurora.luminusos.org` is a second build of this same project: |
| 50 | + |
| 51 | +```sh |
| 52 | +npm run build:aurora # static output in dist-aurora/ |
| 53 | +``` |
| 54 | + |
| 55 | +With `SITE_VARIANT=aurora` the Aurora Shell page becomes the site root |
| 56 | +(`/` and `/pt-br/`), cross-links point back to `https://luminusos.org`, and |
| 57 | +`dist-aurora/CNAME` is written as `aurora.luminusos.org`. |
| 58 | + |
| 59 | +`deploy-aurora.yml` pushes that build to the `gh-pages` branch of |
| 60 | +`luminusOS/aurora-shell` (needs the `AURORA_DEPLOY_TOKEN` secret: a |
| 61 | +fine-grained PAT with Contents: write there), since GitHub Pages serves one |
| 62 | +site per repository. |
| 63 | + |
| 64 | +## Wiki & Blog (sub-projects) |
| 65 | + |
| 66 | +The wiki and the blog live in this repository as independent Astro projects: |
| 67 | + |
| 68 | +| Site | Folder | Stack | |
| 69 | +| --- | --- | --- | |
| 70 | +| [wiki.luminusos.org](https://wiki.luminusos.org) | `wiki/` | Astro Starlight (sidebar, search, i18n) | |
| 71 | +| [blog.luminusos.org](https://blog.luminusos.org) | `blog/` | Astro content collections, English + Google Translate menu | |
| 72 | + |
| 73 | +Each has its own `package.json` (`cd wiki && npm install && npm run dev`). |
| 74 | +GitHub Pages serves one site per repository, so `deploy-wiki.yml` and |
| 75 | +`deploy-blog.yml` build the sub-project and push its `dist/` to the |
| 76 | +`gh-pages` branch of `luminusOS/wiki` / `luminusOS/blog` (Pages-only repos). |
| 77 | +Setup per subdomain: create the target repo, enable Pages on `gh-pages`, |
| 78 | +point DNS `<sub>.luminusos.org` → `luminusos.github.io`, and add the |
| 79 | +`WIKI_DEPLOY_TOKEN` / `BLOG_DEPLOY_TOKEN` secret here (fine-grained PAT |
| 80 | +with Contents: write on the target repo). |
| 81 | + |
| 82 | +## License |
| 83 | + |
| 84 | +MIT — see [LICENSE](LICENSE). |
0 commit comments