Files
Plushealthtech/CLAUDE.md
T
2026-08-19 18:59:24 +10:00

2.8 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Overview

plushealthtech is a corporate landing site: a single-project ASP.NET Core Razor Pages app on .NET 10 (net10.0). There are no controllers, database, auth, or external APIs — all content lives in Razor Pages and static assets under wwwroot.

Commands

Run from the repo root (the solution directory).

  • Build: dotnet build plushealthtech.sln
  • Run locally: dotnet run --project plushealthtech → https://localhost:7070 (http: 5047, per the https profile in Properties/launchSettings.json); use dotnet watch --project plushealthtech for hot reload
  • Docker image (build context is the repo root, not the project folder): docker build . -t plushealthtech:latest -f plushealthtech/Dockerfile
  • There is no test project and no linter/formatter configuration.

Architecture

  • plushealthtech/ is the only project. Program.cs is the entire pipeline: AddRazorPages(), HTTPS redirect, static files — new services would be registered there.
  • Pages use the Razor Pages convention: Pages/<Name>.cshtml + <Name>.cshtml.cs (a PageModel). Existing: Index (logo hero), Privacy, Error, and the shared Shared/_Layout.cshtml. There are no areas or controllers.
  • Shared chrome and branding: Pages/Shared/_Layout.cshtml (navbar with Home + external blog link, footer) and wwwroot/css/site.css (CSS custom properties; .bg-blue = #1c8098 is the brand color used on the navbar). The layout <head> loads an external analytics script from analytics.rokoh.com.
  • Brand and UI design guidelines live in Design.MD (color palette with #1c8098 as brand core, typography, component/layout conventions) — follow it when adding or restyling pages.
  • Client libraries (Bootstrap, jQuery, jquery-validation) are vendored in wwwroot/lib; logo and favicon are in wwwroot/img/.

Deployment

  • Pushes to Gitea (gitea.rokoh.com) run the Gitea Actions workflow: build the Docker image → push registry.rokoh.com/plushealthtech:latest → SSH into 10.10.0.90 and run the container with -p 7000:80 --restart=always. Registry and server credentials come from Gitea secrets, not the repo.
  • The workflow file exists in two identical copies: .gitea/workflows/default.yml (the one Gitea reads) and plushealthtech/.gitea/workflows/default.yml (referenced from the csproj as <None Include>). Keep them in sync when editing either.
  • The Dockerfile is multi-stage (restore → build → publish → aspnet runtime), exposes 80/443, entrypoint dotnet plushealthtech.dll.
  • Known inconsistency: the project targets net10.0, but the Dockerfile still pins .NET 7 base images (mcr.microsoft.com/dotnet/{aspnet,sdk}:7.0), so docker build fails as-is. When touching the Dockerfile, bump the base images to .NET 10 to match the TFM.