|
|
@@ -0,0 +1,42 @@
|
|
|
+# 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.png) | [](mobile.png) |
|
|
|
+
|
|
|
+| Dark mode |
|
|
|
+|---|
|
|
|
+| [](dark.png) |
|
|
|
+
|
|
|
+🤖 Generated with [Claude Code](https://claude.com/claude-code)
|