Commit Graph

12 Commits

Author SHA1 Message Date
claw d30e41f721 fix: clean orphaned article variants, add JSON-LD, fix in-article ad slot
Build and Deploy / build-and-test (push) Failing after 33s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
- Add cleanOldArticles() and cleanOldSections() to remove stale directories
- Add ADSENSE_IN_ARTICLE_SLOT constant (was missing, causing ReferenceError)
- Add renderInArticleAdUnit() using slot 9095112841 for article pages
- Add renderArticleJsonLd() for NewsArticle structured data
- Pass jsonLd through renderShell() into <head>
- Fix ads.txt to use ADSENSE_CLIENT env var instead of hardcoded pub-id
2026-06-02 12:39:27 +00:00
claw fc2b0c9b53 fix(k8s): rename deployment/service/ingress to news-site
Build and Deploy / build-and-test (push) Failing after 25s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
Align new manifest names with the live deployment so CI replaces
the existing news-site deployment instead of creating a parallel
signalledger one.

Changes:
- deployment name: signalledger -> news-site
- service name: signalledger -> news-site
- ingress name: signalledger -> news-site
- selector labels: app.kubernetes.io/name -> app: news-site
- ingress backend service: signalledger -> news-site
- ingress hosts: add news.claw.jopdorp.nl, keep signalledger.nl + www
- TLS secret: signalledger-tls -> news-site-tls (existing live secret)
- CI rollout target: deployment/signalledger -> deployment/news-site
2026-06-01 07:36:47 +00:00
claw 25545ee7ca fix(k8s): rename deployment/service/ingress to news-site
Align new manifest names with the live deployment so CI replaces
the existing news-site deployment instead of creating a parallel
signalledger one.

Changes:
- deployment name: signalledger -> news-site
- service name: signalledger -> news-site
- ingress name: signalledger -> news-site
- selector labels: app.kubernetes.io/name -> app: news-site
- ingress backend service: signalledger -> news-site
- ingress hosts: add news.claw.jopdorp.nl, keep signalledger.nl + www
- TLS secret: signalledger-tls -> news-site-tls (existing live secret)
- CI rollout target: deployment/signalledger -> deployment/news-site
2026-06-01 07:35:40 +00:00
claw 24d0ab736c fix(ingress): migrate from nginx to Traefik ingress controller
- Change ingressClassName from nginx to traefik
- Replace nginx configuration-snippet annotations with Traefik router annotations
- Extract security headers into dedicated Traefik Middleware CRD
- Update CI/CD pipeline to apply middleware manifest
- Document migration decision and deployment steps in README

ADR-002: Ingress Controller Migration (nginx → Traefik)
Migration strategy: in-place update
2026-05-31 16:25:41 +00:00
claw d4ea0e58f1 fix: update CI artifact path from dist/ to public/
Build and Deploy / build-and-test (push) Failing after 27s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
2026-05-31 16:24:21 +00:00
claw 16cad3fe36 feat: integrate WebP/AVIF image optimization into build pipeline
Build and Deploy / build-and-test (push) Failing after 28s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
- Add sharp dependency for image format conversion
- Generate WebP (quality 80) and AVIF (quality 70) variants for all raster images
- Render <picture> elements with srcset fallbacks (AVIF > WebP > original)
- SVG images remain as <img> without picture wrapper
- Update Dockerfile to install libvips for sharp, copy from public/ dir
- Add nginx cache rules for .webp and .avif files
- Add .gitignore for node_modules, public, dist
2026-05-31 16:21:03 +00:00
claw f649fff223 fix: drop buildx, use native docker build+push for Gitea runner compat
Build and Deploy / build-and-test (push) Successful in 17s
Build and Deploy / build-image (push) Failing after 15s
Build and Deploy / deploy (push) Has been skipped
2026-05-31 13:45:11 +00:00
claw d5f59da076 security: add security headers via nginx ingress annotations
Build and Deploy / build-and-test (push) Successful in 18s
Build and Deploy / build-image (push) Failing after 25s
Build and Deploy / deploy (push) Has been skipped
Adds the following headers via configuration-snippet:
- Strict-Transport-Security (HSTS) with preload
- X-Frame-Options: DENY
- X-Content-Type-Options: nosniff
- Referrer-Policy: strict-origin-when-cross-origin
- Content-Security-Policy (AdSense-compatible)
- X-XSS-Protection
- Permissions-Policy

Closes t_31f12d65
2026-05-31 13:42:48 +00:00
claw f26a063c0e fix: use upload-artifact@v3 for Gitea compat
Build and Deploy / build-and-test (push) Successful in 46s
Build and Deploy / build-image (push) Failing after 5m34s
Build and Deploy / deploy (push) Has been skipped
2026-05-31 13:38:10 +00:00
claw fd007af842 chore: add package-lock.json for CI cache
Build and Deploy / build-and-test (push) Failing after 17s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
2026-05-31 13:36:32 +00:00
claw abf29e61de feat: initial CI/CD pipeline, Dockerfile, K8s manifests, build+test scripts
Build and Deploy / build-and-test (push) Failing after 3m37s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
2026-05-31 13:31:56 +00:00
claw b05e0f0a53 Initial commit 2026-05-31 13:28:49 +00:00