2.8 KiB
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 thehttpsprofile inProperties/launchSettings.json); usedotnet watch --project plushealthtechfor 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.csis 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 sharedShared/_Layout.cshtml. There are no areas or controllers. - Shared chrome and branding:
Pages/Shared/_Layout.cshtml(navbar with Home + external blog link, footer) andwwwroot/css/site.css(CSS custom properties;.bg-blue=#1c8098is 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#1c8098as 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 inwwwroot/img/.
Deployment
- Pushes to Gitea (gitea.rokoh.com) run the Gitea Actions workflow: build the Docker image → push
registry.rokoh.com/plushealthtech:latest→ SSH into10.10.0.90and 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) andplushealthtech/.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), sodocker buildfails as-is. When touching the Dockerfile, bump the base images to .NET 10 to match the TFM.