hsiegeln ca2a725953
All checks were successful
ci / build-test (push) Successful in 4m0s
ci(deploy): merge build+deploy into one job, manual trigger only
Two changes:

1. Merge build and deploy jobs into a single 'deploy' job. This
   eliminates the actions/upload-artifact@v3 round-trip, which was
   silently stripping dotfiles (.htaccess) from the artifact and
   leaving the deployed origin without security headers. The built
   dist/ (including .htaccess) now flows directly into rsync in the
   same workspace.

2. Remove the 'push: branches: [main]' trigger so deploy runs only
   on workflow_dispatch (manual click in Gitea Actions UI).
   Merges to main no longer auto-deploy — production promotion is
   an explicit user action.

The concurrency group at workflow level still prevents overlapping
deploys. All secrets remain unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 21:24:42 +02:00
2026-04-24 18:06:32 +02:00

cameleer-website

Marketing site for cameleer.io — zero-code observability for Apache Camel.

This is a static Astro 5 site. Hosted on Hetzner Webhosting L, fronted by Cloudflare, deployed via Gitea Actions.

Development

npm ci
npm run dev       # http://localhost:4321
npm run test      # vitest — auth config + middleware header tests
npm run build     # produces dist/
npm run preview   # serves dist/

Quality gates (run in CI)

npm run lint:html     # html-validate on dist/
npm run lint:links    # linkinator on dist/
npm run lh            # Lighthouse CI (>=0.95 on all 4 categories)

Environment variables

See .env.example. All are PUBLIC_* (build-time, embedded in HTML).

Var Purpose
PUBLIC_AUTH_SIGNIN_URL Logto sign-in URL (redirected to by "Sign in" buttons)
PUBLIC_AUTH_SIGNUP_URL Logto sign-up URL (redirected to by "Start free trial")
PUBLIC_SALES_EMAIL Sales email (mailto: target for "Talk to sales")

Deployment

Push to main → Gitea Actions runs tests, builds, lints, then rsyncs dist/ to Hetzner over SSH (ed25519 key, host-key-pinned). Rollback is git revert && git push.

See OPERATOR-CHECKLIST.md for the one-time Hetzner + Cloudflare setup.

Design & plan

  • docs/superpowers/specs/2026-04-24-cameleer-website-design.md — the approved spec.
  • docs/superpowers/plans/2026-04-24-cameleer-website.md — the implementation plan that built this repo.
Description
Marketing website for cameleer.io — zero-code observability for Apache Camel. Astro 5 static site on Hetzner, Cloudflare-fronted, Gitea-Actions-deployed.
Readme 2.8 MiB
Languages
Astro 80.1%
TypeScript 13.8%
JavaScript 4.8%
CSS 1.3%