1
0
Claude c489239688 Add pull-releases records, starting with 001 for this PR 13 цаг өмнө
..
README.md c489239688 Add pull-releases records, starting with 001 for this PR 13 цаг өмнө
dark.png c489239688 Add pull-releases records, starting with 001 for this PR 13 цаг өмнө
desktop.png c489239688 Add pull-releases records, starting with 001 for this PR 13 цаг өмнө
mobile.png c489239688 Add pull-releases records, starting with 001 for this PR 13 цаг өмнө

README.md

Add static home page, nginx vhost and setup README

Branch feature/home-page

What changed

  • Home page (public/): a static showcase for monoexp.com in plain HTML and CSS, with no JavaScript and no build step. It has an about section, then project cards for Posts (Visit and Source links) and DevOps (Source only).
  • Light and dark themes: both follow the visitor's system setting through prefers-color-scheme. The favicon switches too.
  • Accessibility: link text names its project for screen readers, the nav is labelled, and keyboard focus shows a visible outline.
  • nginx vhost (nginx/monoexp.com.conf): a reference copy for the server. www.monoexp.com redirects to https://monoexp.com, and one certificate, monoexp-home, covers both names. The stylesheet and icon get a one-hour cache.
  • README: layout, how to add a project card, hosting details, first-time setup (certificate, site folder and first deploy, nginx, checks), and onboarding to the merge-to-deploy pipeline.
  • Release records: this pull-releases/ folder, following the posts repo's convention.
  • LICENSE: unchanged.

Notes

  • Nothing is deployed by this PR. The certificate, site folder, nginx file and pipeline onboarding are manual steps for the Admin, described in the README.
  • First deploy: the site folder is created with mkdir -m 2775 so it's group-writable for webops. The first deploy is either the Admin's rsync or Claude's deploy-static, not both, because whoever deploys first owns the files.
  • Pipeline entry: the README gives the actual sites.json entry for a static site: "bajdev/home": { "kind": "static", "host": "monoexp.com" }. Static sites publish public/ by default.
  • Certificate: issue-cert only accepts subdomains, so the apex certificate is issued with certbot directly, as the README shows.

Testing

  • Served public/ locally: /, /style.css and /favicon.svg return 200 with the right content types.
  • Every link on the page returns 200: Posts, the three Gogs repos, the Gogs home, and the page's own assets.
  • Checked against the server: DNS for monoexp.com and www.monoexp.com points here, and the existing .monoexp.com port-80 block also covers the apex, so the certificate's challenge will be served. The sites.json entry parses alongside the installed file. mkdir -m 2775 gives drwxrwsr-x regardless of umask.
  • Not tested: the nginx vhost itself. It can't be checked with nginx -t until the monoexp-home certificate exists.
  • Viewed desktop, mobile and dark-mode captures: the layout holds at phone width, with the cards stacking into one column.

Screenshots

From the branch's public/ folder served locally.

Desktop Mobile
Desktop Mobile
Dark mode
Dark mode

🤖 Generated with Claude Code