mirror of
https://github.com/TautvydasDerzinskas/Thingport.git
synced 2026-10-18 20:59:55 -05:00
* feat: update system notifications * feat: add Thingport grab to system health check * ci: upgrade to Node.js 24 and centralize version management
Thingport website
The product site, docs and blog, published to GitHub Pages by
.github/workflows/web-pages.yml. Built with Astro as
plain static HTML. The little JavaScript there is: the theme toggle, copy buttons, and the seasonal logo, which
the visitor's browser picks by date (the pages are built ahead of time).
cd web
npm install
npm run dev # http://localhost:4321/
npm run build # static output in dist/
npm run check # type-check
Requires Node 24+ (see the root .nvmrc).
Where the content lives
- Docs are not copied here. The docs pages render the repo's own Markdown (
docs/,extension/README.md,bridge/README.md,CONTRIBUTING.md) at build time. Edit those files, not the site. The list of pages, with their titles, sidebar groups and SEO descriptions, isDOCSinsrc/lib/site.mjs. Relative links in those files are rewritten bysrc/lib/rehypeRepoLinks.mjs: links to another rendered doc stay on the site, and everything else points to GitHub. - The Docker Compose install page (
src/pages/docs/install.astro) embeds the realdocker-compose.deploy.ymland.env.example. - Blog posts are Markdown files in
src/content/blog/. Frontmatter:title,description,pubDate, and optionallyupdatedDate,tagsanddraft: true. Link to site pages root-relative (/docs/install/); the base path is added automatically. - Logos, fonts, favicons and screenshots come from
frontend/, so the site always matches the app. - Colours mirror
THEME_DEFSinfrontend/src/theme.ts, as CSS variables insrc/styles/global.css. The site follows the visitor's system light/dark setting, and the header button overrides it.
URL and custom domain
The site is served from https://thingport.net/ (a custom domain set in the repo's Pages settings). In CI the URL
and base path come from GitHub Pages itself; local and PR builds default to that domain with base /. Override with
SITE_URL=https://example.com BASE_PATH=/sub-path npm run build.