Commit Graph
102 Commits
Author SHA1 Message Date
tleininger 0f7e968c16 Harden the content contracts and enforce the slug rule 2026-09-24 12:08:56 +02:00
tleininger d06af2891a Centralize the home slug check on Page, case-insensitively 2026-09-24 10:23:30 +02:00
tleininger 66bc76af1c Define the all-day rule once as Event.HasTime 2026-09-24 10:08:04 +02:00
tleininger 31b114982e Move date converters onto the contracts 2026-09-24 09:20:14 +02:00
tleininger 6d3260db49 Read a post's date as the Berlin calendar day, not the raw UTC day 2026-09-24 09:11:37 +02:00
tleininger aef05fb090 Convert PocketBase dates to Berlin time; document code conventions 2026-09-24 08:53:47 +02:00
Tom 4b93434679 Merge pull request 'Serve the home nav link from PocketBase, not a hard-coded copy' (#32) from fix/duplicate-start-nav-link into main
Build and push image / build (push) Successful in 1m49s
Reviewed-on: #32
2026-09-23 22:32:26 +02:00
tleininger 3fd4068762 Serve the home nav link from PocketBase, not a hard-coded copy 2026-09-23 22:32:01 +02:00
Tom 1bdb026669 Merge pull request 'Mobile layout, warm design system, and dark mode' (#31) from feature/mobile-layout into main
Build and push image / build (push) Successful in 1m54s
Reviewed-on: #31
2026-09-23 21:07:29 +02:00
tleininger d7e708a717 Follow the OS dark mode with a softer, readable palette 2026-09-23 21:05:52 +02:00
tleininger fa49f80d65 Give the site a warm design system with card-based content lists 2026-09-23 20:28:15 +02:00
tleininger 02654c20d3 Add a mobile nav and pin the header while scrolling 2026-09-23 19:26:35 +02:00
Tom 7337a1cbc0 Merge pull request 'Read all content from PocketBase, per request' (#30) from feature/pocketbase-consume into main
Build and push image / build (push) Successful in 1m51s
Reviewed-on: #30
2026-09-23 16:02:44 +02:00
tleininger c3da5eb6e1 Auto-seed dev PocketBase and share its schema with the tests 2026-09-23 15:59:15 +02:00
tleininger d5372963bb Seed the dev PocketBase with example content on a fresh volume 2026-09-23 15:43:44 +02:00
tleininger 47d9841532 Remove the leftover file content layer and align the docs 2026-09-23 15:30:53 +02:00
tleininger 3fd3796d73 Generate navigation and render page embeds from PocketBase 2026-09-23 14:54:10 +02:00
tleininger 6b5d9dda55 Serve FAQs from PocketBase on a grouped /faqs page 2026-09-23 14:15:16 +02:00
tleininger 4136af6417 Serve pages and home from PocketBase, drop the file-based content layer 2026-09-23 13:30:48 +02:00
tleininger da87716d97 Consume PocketBase for posts and events, with English routes 2026-09-23 13:09:22 +02:00
Tom c59e7a4f83 Merge pull request 'PocketBase as the data layer: client, compose stack, dev environment and tests' (#28) from feature/pocketbase-client into main
Build and push image / build (push) Successful in 1m57s
Reviewed-on: #28
2026-09-23 11:09:29 +02:00
tleininger b1d1953a62 Run PocketBase as a compose stack, tests included, without Testcontainers 2026-09-23 10:03:16 +02:00
tleininger bbe792192d Split compose into base + dev overlay for a local two-container stack 2026-09-23 08:40:00 +02:00
tleininger d78a13815a Add PocketBase client with contracts and containerized tests 2026-09-23 07:40:56 +02:00
tleininger 251f2d818b Add PocketBase client with contracts and sharp build tooling 2026-09-22 19:32:32 +02:00
Tom 56922707ea Merge pull request 'Dissolve plan.md into docs/, move open work to Gitea issues' (#27) from docs/dissolve-plan-md into main
Build and push image / build (push) Successful in 1m41s
Reviewed-on: #27
2026-09-22 13:39:54 +02:00
tleininger f7fad64bcb Dissolve plan.md into docs/, move open work to Gitea issues 2026-09-22 13:39:27 +02:00
Tom aa7dd4525d Merge pull request 'Add Gitea Actions workflow to build and push the image on main' (#5) from deployment/gitea-actions into main
Build and push image / build (push) Successful in 6m13s
Reviewed-on: #5
2026-09-22 08:36:56 +02:00
tleininger af051ef4bd Add Gitea Actions workflow to build and push the image on main 2026-09-22 08:35:33 +02:00
Tom 14f3d751c7 Merge pull request 'Restructure into feature folders with code-behind and scoped CSS' (#4) from refactor/feature-folders into main
Reviewed-on: #4
2026-09-21 22:01:57 +02:00
tleininger 9d1f8fe0d4 Restructure into feature folders with code-behind and scoped CSS 2026-09-21 22:01:21 +02:00
Tom 5ba523d34d Merge pull request 'Enable de-DE culture with ICU runtime image' (#3) from fix/de-de-culture into main
Reviewed-on: #3
2026-09-21 21:33:31 +02:00
tleininger eeea3e7e11 Enable de-DE culture with ICU runtime image 2026-09-21 21:18:31 +02:00
Tom faf32a4eb1 Merge pull request 'Build the content pipeline: pages, posts, events, layout' (#2) from feature/content-pipeline into main
Reviewed-on: #2
2026-09-21 16:33:57 +02:00
tleininger 9459d2aeaa Add events calendar with ICS feed and switch content naming to English 2026-09-21 16:22:56 +02:00
tleininger f24a4e73a2 Add route smoke tests 2026-09-21 15:57:52 +02:00
tleininger 5e9146f2cb Replace template home page with news teaser 2026-09-21 15:51:54 +02:00
tleininger 908a03a1f6 Add news post type with list and detail routes 2026-09-21 15:47:12 +02:00
tleininger bed2db5972 Add FAQ subpages linked from the FAQ hub 2026-09-21 15:43:20 +02:00
tleininger 8dcf72495a Add placeholder pages for all header nav targets 2026-09-21 15:41:46 +02:00
tleininger 6c5840ab8e Add site layout with header navigation and footer 2026-09-21 15:37:39 +02:00
tleininger c4c7ca2ee4 Switch code, scripts and docs to English; drop plan.md references 2026-09-21 15:25:01 +02:00
tleininger 76f1ad7825 Add Markdown content pipeline for static pages 2026-09-21 15:08:04 +02:00
tleininger b59a96b90c Document deployment workflow milestone 2026-09-21 08:49:31 +02:00
Tom 8643f2c0ca Merge pull request 'Add release/dev build scripts and branch-based deploy workflow' (#1) from deployment/sha-tagging into main
Reviewed-on: #1
2026-09-21 08:22:14 +02:00
tleiningerandClaude Opus 4.8 94d9cac77b Add release/dev build scripts and branch-based deploy workflow
- scripts/release.sh: build from main, tag :latest + short SHA, push
  both. Aborts if not on main or working tree is dirty; warns on
  unpushed commits. Prevents dev states from becoming :latest.
- scripts/dev-build.sh: local dev image (tagged per branch), never
  pushed -- keeps development builds off the registry.
- docs/deployment.md: document branch/PR workflow, replace manual
  build/push steps with the scripts, SHA-based rollback now standard.
- .gitattributes: force LF on *.sh so the shebang works on Windows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-21 07:58:46 +02:00
tleiningerandClaude Opus 4.8 99dd052929 Document deployment milestone: Hello world running on Unraid
Update roadmap in plan.md: steps 1/3/6 done, deployment (step 6)
pulled ahead of the content pipeline to prove the build->registry->
Unraid chain early. Record the evening 2026-09-20 status and the
deliberate test-time deviations to unwind later (port mapping, latest
-only tag, plaintext token).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-21 00:13:08 +02:00
tleiningerandClaude Opus 4.8 467c7a3eb9 Document Unraid registry login (pitfalls, plaintext token note)
Add a dedicated Unraid login step to deployment.md: terminal-based
login (plugin has no UI field), the PowerShell-vs-Unraid mix-up, the
stuck-wrong-username fix (logout first), and the plaintext token
warning. Note a credential helper as a later cleanup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-21 00:09:51 +02:00
tleiningerandClaude Opus 4.8 ee90877dea Add deployment docs, switch compose to pull from registry
- docs/deployment.md: manual build/push/pull workflow via Gitea
  registry, token handling (no secrets in repo), test vs. production
  compose variants, rollback and later CI automation notes.
- compose.yaml: pull the prebuilt image from the Gitea registry instead
  of building from source on Unraid (source is not checked out there).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-20 23:31:43 +02:00
tleiningerandClaude Opus 4.8 95946a4349 Add Docker setup and fix proxy config for containerized deployment
- Program.cs: remove UseHsts/UseHttpsRedirection (NPM terminates TLS,
  would loop behind the proxy, plan.md AE-4), add UseForwardedHeaders
  with emptied known networks/proxies. Uses KnownIPNetworks (net10).
- Dockerfile: SDK build stage, chiseled aspnet runtime on port 8080.
- .dockerignore: keep build output, git and docs out of the image.
- compose.yaml: temporary test setup (builds from source, exposes
  5000:8080) for the first run on Unraid without NPM or registry.
- .gitignore: exclude .idea/ (Rider project files).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-20 23:00:47 +02:00