The official website for LuminusOS, an immutable Linux
distribution built on Fedora bootc, plus the Aurora Shell subdomain variant, and
the wiki and blog
as sub-projects in wiki/ and blog/.
Built with Astro. Fully static, no client framework; the only JavaScript on the page handles the theme toggle, the language menu and fetching the latest release tag from the GitHub API.
Every page exists in English (default) and Brazilian Portuguese:
| Route | Content |
|---|---|
/ and /pt-br/ |
LuminusOS home: hero, pillars, how it works, editions, download, support |
/aurora/ and /pt-br/aurora/ |
Aurora Shell subpage |
/blog/ |
Blog copy embedded in the main website build |
/wiki/ |
Wiki copy embedded in the main website build |
All copy lives in a single typed dictionary: src/i18n/translations.ts.
Adding a language = append it to the languages array (name + flag, the
header menu picks it up automatically), add its entry to translations, and
create the page folders for its prefix.
The site has light and dark themes: dark by default, following the system
preference, with a header toggle persisted in localStorage.
npm install
npm run dev # http://localhost:4321, including /aurora, /blog and /wiki
npm run build # static output in dist/, including /blog and /wiki
npm run preview # serve dist/ locallyDownload buttons point at
https://github.com/luminusOS/images/releases/latest, which always resolves to
the newest release, so no website change is needed when a release ships.
Editions that don't exist yet (Play, Mobile, Tablet, Cast) render as locked
"Coming soon" cards in src/components/HomePage.astro; flip one to available
by editing the available check when its first release lands.
aurora.luminusos.org is a second build of this same project:
npm run build:aurora # static output in aurora/dist/
npm run deploy:aurora # local/manual upload with WranglerWith SITE_VARIANT=aurora the Aurora Shell page becomes the site root
(/ and /pt-br/), cross-links point back to https://luminusos.org, and
aurora/dist/CNAME is written as aurora.luminusos.org.
Cloudflare Pages settings for aurora.luminusos.org:
| Setting | Value |
|---|---|
| Root directory | website |
| Build command | npm run build:aurora |
| Build output directory | aurora/dist |
| Deploy command | leave empty |
The deploy:aurora script is only for a local/manual Wrangler upload. Do not
use it as the Cloudflare Pages deploy command; Git-connected Pages deployments
upload the configured output directory automatically after the build command.
This repository intentionally does not keep a default wrangler.jsonc in the
Pages root. The same source tree is used by multiple Cloudflare Pages projects
with different output directories, so each Pages project should use its own UI
settings. The Worker config used by the manual npm run deploy command lives
in wrangler.worker.jsonc.
The wiki and the blog live in this repository as Astro roots that share the
top-level package.json and lockfile:
| Site | Folder | Stack |
|---|---|---|
| wiki.luminusos.org | wiki/ |
Astro Starlight (sidebar, search, i18n) |
| blog.luminusos.org | blog/ |
Astro content collections, English + Google Translate menu |
The root npm run build builds both projects with /blog and /wiki bases
and copies them into the main website dist/. Standalone Cloudflare Pages
builds use the subdomain versions:
npm run build:blog
npm run deploy:blog
npm run build:wiki
npm run deploy:wikiFor Git-connected Cloudflare Pages projects, use only the build command and output directory. Leave the deploy command empty there as well.
MIT — see LICENSE.