Commit Graph
46 Commits
Author SHA1 Message Date
mmintelandClaude Opus 5.5 75993100fa feat: German as the main language, English under /en, with a language switch
The site now exists in German (at the root, with /impressum and /datenschutz)
and English (/en). A request without a language follows the visitor's choice
from the language switch, then the browser language, then German; the old
English legal addresses move to /en for good.

All visible texts are data in src/content/de.ts and en.ts, so components hold
none of their own. The header carries a DE/EN switch whose bit curtain covers
the page while it is swapped and reopens at the same reading position. Title,
description, canonical, hreflang, Open Graph, the share image, the sitemap and
the structured data are per language. The privacy notice now describes the
cookie that remembers the chosen language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:07:22 +02:00
mmintelandClaude Opus 5.5 123ab8e354 feat: share image, metadata and icons that match the new site
Build & Deploy / 🔍 Prepare (push) Successful in 5s
Build & Deploy / 🏗️ Build (push) Successful in 6m28s
Build & Deploy / 🚀 Deploy (push) Successful in 17s
Build & Deploy / 🩺 Smoke Test (push) Successful in 4s
Build & Deploy / 🔔 Notify (push) Successful in 2s
The link preview used an old template with a blog description. The share
image is now a screenshot of the real hero (scripts/render-share-image.mjs),
served as Open Graph and Twitter image. Title and description come from one
place and are used by the page, the previews and the structured data. Adds an
apple touch icon and removes the old share-image template and its fonts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 23:33:02 +02:00
mmintelandClaude Opus 5.5 007a691357 Merge origin/main: deployment retarget to infra.mintel.me
Build & Deploy / 🔍 Prepare (push) Successful in 8s
Build & Deploy / 🏗️ Build (push) Successful in 8m40s
Build & Deploy / 🚀 Deploy (push) Successful in 19s
Build & Deploy / 🩺 Smoke Test (push) Successful in 4s
Build & Deploy / 🔔 Notify (push) Successful in 3s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:33:53 +02:00
mmintelandClaude Opus 5.5 fa40fefe2f feat: rebuild mintel.me as a single-page freelance site
The site now presents one freelance developer on one page: hero, introduction,
four typical cases (developer for a product, make an app reliable, automate a
process, a website) with what you get, how it runs and what it costs, a
process automation section, technology and project fit, how I work, two live
references, questions and contact.

- Hero and closing headline are drawn from running binary digits.
- Each case explains its four steps with an animated drawing; the automation
  section shows example workflows with work travelling between systems; a
  pipeline run shows what a test catches before a release.
- Contact is one email address, kept in parts and assembled in the browser so
  it never appears in the page source (src/domain/email.ts, spec first).
- Imprint and privacy pages added.
- The old site (blog, case studies, contact form, fixed-price pages, video
  rendering and related scripts) is removed. Its URLs redirect to the homepage.
- The deploy smoke test checks the legal pages and the redirects instead of
  the removed case study.
- Dev scripts use docker compose v2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:33:06 +02:00
mmintelandClaude Sonnet 5.5 d33a5d6c63 chore: enable TypeScript strict mode and drop dead Payload scripts
The shared base tsconfig had strict off, so null-safety and union narrowing
were not checked. Strict is now on for apps/web with 5 small typing fixes.
check-db.ts and migrate-drafts.js depended on Payload, which is no longer a
dependency, and are removed. CLAUDE.md no longer claims Payload.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 18:59:47 +02:00
mmintel 57b19055b4 chore(ci): retarget deployments to infra.mintel.me (server consolidation)
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🏗️ Build (push) Successful in 9m19s
Build & Deploy / 🚀 Deploy (push) Failing after 2s
Build & Deploy / 🩺 Smoke Test (push) Skipped
Build & Deploy / 🔔 Notify (push) Failing after 2s
2026-10-01 22:45:28 +02:00
mmintel 85a0e2e051 fix(content): regenerate distinctly different thumbnails and remove duplicate TOCs
Build & Deploy / 🔍 Prepare (push) Successful in 9s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🩺 Smoke Test (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
2026-05-06 12:02:45 +02:00
mmintel f1d5d9e859 content: expand blog articles with tech depth and distinct visual thumbnails
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
Build & Deploy / 🩺 Smoke Test (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
2026-05-06 11:57:43 +02:00
mmintel 0fb5e0cb66 fix(content): regenerate thumbnails matching the original style and fix file naming
Build & Deploy / 🔍 Prepare (push) Successful in 9s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🩺 Smoke Test (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
2026-05-06 11:53:11 +02:00
mmintel 1669227f19 Cleanup: Remove legacy Payload-dependent scripts
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🩺 Smoke Test (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
2026-05-05 12:50:15 +02:00
mmintel 1bd516fbe4 fix: production container names in cms-sync and pin zod version for consistency
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🏗️ Build (push) Successful in 10m16s
Build & Deploy / 🚀 Deploy (push) Successful in 14s
Build & Deploy / 🧪 QA (push) Successful in 51s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 2m52s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-05 15:57:50 +01:00
mmintel a1c0736274 ci(deploy): increase E2E timeout and add continue-on-error to smoke test
Build & Deploy / 🔍 Prepare (push) Successful in 12s
Nightly QA / 🔗 Links & Deps (push) Has been cancelled
Nightly QA / 🔔 Notify (push) Has been cancelled
Nightly QA / 🔍 Static Analysis (push) Has been cancelled
Nightly QA / 🎭 Lighthouse (push) Has been cancelled
Nightly QA / 📝 E2E (push) Has been cancelled
Build & Deploy / 🧪 QA (push) Successful in 1m16s
Build & Deploy / 🏗️ Build (push) Successful in 14m28s
Build & Deploy / 🚀 Deploy (push) Successful in 22s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 2m27s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-05 12:08:49 +01:00
mmintel 6174b44570 fix: bump @mintel/payload-ai to 1.9.13 and apply CSS loader shim for Next.js dev server
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 4m25s
Build & Deploy / 🏗️ Build (push) Failing after 17s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-03 14:58:14 +01:00
mmintel 2ab5a8a41f test(e2e): implement full sitemap testing logic as per klz-2026 standards
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Failing after 1m23s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-03-02 22:15:49 +01:00
mmintel 88b4626d6e fix(ci): add redirect delay to Puppeteer to prevent ERR_ABORTED during Gatekeeper redirect
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 1m55s
Build & Deploy / 🏗️ Build (push) Successful in 11m16s
Build & Deploy / 🚀 Deploy (push) Successful in 21s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 1m54s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-02 18:39:32 +01:00
mmintel c8ff76f299 fix(ci): remove unused migration scripts and revert ts-expect-error for importMap
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Failing after 1m54s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-02 17:56:43 +01:00
mmintel 70de139cb0 fix(ci): resolve tsc errors blocking QA stage (importMap and check-forms)
Build & Deploy / 🔍 Prepare (push) Failing after 21s
Build & Deploy / 🧪 QA (push) Has been skipped
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-02 17:39:38 +01:00
mmintel b015c62650 fix(ci): add --ignore-certificate-errors, disable gpu, and diagnostics for E2E form check
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Failing after 1m54s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-02 16:51:12 +01:00
mmintel b7dac5d463 fix(ci): rewrite check-forms with KLZ pattern (executablePath, networkidle2, 60s timeout)
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 1m54s
Build & Deploy / 🏗️ Build (push) Successful in 11m31s
Build & Deploy / 🚀 Deploy (push) Successful in 24s
Build & Deploy / 🧪 Post-Deploy Verification (push) Failing after 3m14s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-02 15:58:51 +01:00
mmintel b639fffe7f fix(ci): use TEST_URL in check-forms.ts for E2E consistency
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Successful in 1m54s
Build & Deploy / 🏗️ Build (push) Successful in 11m42s
Build & Deploy / 🚀 Deploy (push) Failing after 10s
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 3s
2026-03-02 11:24:41 +01:00
mmintel 025906889c chore(ci): dynamic OG image verification with hash resilience
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Successful in 2m4s
Build & Deploy / 🏗️ Build (push) Successful in 11m17s
Build & Deploy / 🚀 Deploy (push) Failing after 8s
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-03-02 10:48:26 +01:00
mmintel 760a6d6db3 fix(ci): fix OG image routes and proper post-deploy environment setup
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Successful in 1m50s
Build & Deploy / 🏗️ Build (push) Successful in 13m22s
Build & Deploy / 🚀 Deploy (push) Successful in 23s
Build & Deploy / 🧪 Post-Deploy Verification (push) Failing after 3m39s
Build & Deploy / 🔔 Notify (push) Successful in 4s
2026-03-02 10:08:23 +01:00
mmintel 071302fe6b chore: add missing Payload migration and update cms-sync testing DB references
Build & Deploy / 🔍 Prepare (push) Successful in 11s
Build & Deploy / 🧪 QA (push) Successful in 8m14s
Build & Deploy / 🏗️ Build (push) Successful in 13m1s
Build & Deploy / 🚀 Deploy (push) Successful in 28s
Build & Deploy / 🧪 Post-Deploy Verification (push) Failing after 2m24s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-03-01 16:19:37 +01:00
mmintel 905ce98bc4 chore: align deployment pipeline with klz-2026 standards
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Failing after 54s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
- Add branch deployment support

- Switch build platform to linux/amd64

- Extract checks to turbo pipeline

- Add pre/post-deploy scripts & cms-sync
2026-03-01 00:41:38 +01:00
mmintel 6444cf1e81 feat: implement Project Management with Gantt Chart, Milestones, and CRM enhancements 2026-03-01 00:26:59 +01:00
mmintel 8907963d57 fix(cli): use absolute paths for logos and generate 6 distinct PDFs
Build & Deploy / 🔍 Prepare (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Failing after 12s
Build & Deploy / 🏗️ Build (push) Failing after 14s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-27 18:25:15 +01:00
mmintel 844a5f5412 feat: ai estimation 2026-02-27 15:17:28 +01:00
mmintel 96de68a063 chore(workspace): add gitea repository url to all packages
Build & Deploy / 🔍 Prepare (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Failing after 18s
Build & Deploy / 🏗️ Build (push) Failing after 25s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 4s
2026-02-27 11:27:21 +01:00
mmintel 6864903cff fix(web): remove redundant prop-types and unblock lint pipeline
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🧪 QA (push) Failing after 2m24s
Build & Deploy / 🏗️ Build (push) Failing after 3m40s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 3s
2026-02-24 11:38:43 +01:00
mmintel 072b6b13f1 feat(cms): migrate from Directus to Payload v3 and remove contentlayer
Build & Deploy / 🔍 Prepare (push) Successful in 3m43s
Build & Deploy / 🏗️ Build (push) Failing after 37s
Build & Deploy / 🧪 QA (push) Failing after 3m40s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-22 20:50:51 +01:00
mmintel 5661d66d73 feat(blog): improve optimization safeguards, CTA fidelity, and meme variety
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🩺 Health Check (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🧪 QA (push) Has been cancelled
Build & Deploy / 🏗️ Build (push) Has been cancelled
2026-02-22 17:29:56 +01:00
mmintel 38f2cc8b85 feat(ui): enhance component share UX and add new interactive simulations
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🏗️ Build (push) Failing after 26s
Build & Deploy / 🧪 QA (push) Failing after 1m14s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-22 16:58:42 +01:00
mmintel b15c8408ff fix(blog): optimize component share logic, typography, and modal layouts
Build & Deploy / 🔍 Prepare (push) Successful in 5s
Build & Deploy / 🏗️ Build (push) Failing after 14s
Build & Deploy / 🧪 QA (push) Failing after 1m48s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-22 11:41:28 +01:00
mmintel 3eccff42e4 chore: fix linting and build errors
Build & Deploy / 🔍 Prepare (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Failing after 1m31s
Build & Deploy / 🏗️ Build (push) Failing after 3m51s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-17 23:48:52 +01:00
mmintel cce6aa0935 feat: complete MDX migration for blog, fix diagram fidelity and refactor styling architecture 2026-02-17 21:36:59 +01:00
mmintel 99e392ce08 feat(cloner): remove cloner from mintel.me and use registry versions for @mintel/pdf and @mintel/cloner
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🧪 QA (push) Failing after 16s
Build & Deploy / 🏗️ Build (push) Failing after 19s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-02-12 22:05:24 +01:00
mmintel 0fed92ca8c feat(pdf): migrate PDF generation to @mintel/pdf package
Build & Deploy / 🔍 Prepare (push) Successful in 7s
Build & Deploy / 🧪 QA (push) Failing after 1m3s
Build & Deploy / 🏗️ Build (push) Failing after 3m5s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-12 21:46:46 +01:00
mmintel 10fec05a19 fix: bypass broken base images and restore build optimizations
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🏗️ Build (push) Failing after 1m10s
Build & Deploy / 🧪 QA (push) Successful in 5m4s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-11 14:47:55 +01:00
mmintel 39db0e2bb2 fix: restore and update test scripts for Next.jsApp Router
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🏗️ Build (push) Failing after 17s
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🩺 Health Check (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🧪 QA (push) Has been cancelled
2026-02-11 14:41:55 +01:00
mmintel ecea90dc91 chore: stabilize apps/web (lint, build, typecheck fixes)
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Failing after 1m27s
Build & Deploy / 🏗️ Build (push) Failing after 1m31s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-02-11 11:56:13 +01:00
mmintel e6809a6d64 refactor: estimation generation
Build & Deploy / 🔍 Prepare Environment (push) Successful in 32s
Build & Deploy / 🏗️ Build (push) Successful in 4m41s
Build & Deploy / 🧪 QA (push) Successful in 5m56s
Build & Deploy / 🚀 Deploy (push) Successful in 12s
Build & Deploy / 🔔 Notifications (push) Successful in 1s
Build & Deploy / ⚡ PageSpeed (push) Successful in 55s
2026-02-09 19:11:02 +01:00
mmintel f4ba861b4d fix: deploy
Build & Deploy / 🔍 Prepare Environment (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Successful in 3m49s
Build & Deploy / 🏗️ Build (push) Successful in 7m13s
Build & Deploy / 🚀 Deploy (push) Successful in 14s
Build & Deploy / 🔔 Notifications (push) Successful in 2s
Build & Deploy / ⚡ PageSpeed (push) Successful in 1m20s
2026-02-09 11:48:28 +01:00
mmintel 293c4b7af5 fix: exhaustive pipeline fixes (404, pagespeed auth, directus health)
Build & Deploy / 🔍 Prepare Environment (push) Successful in 12s
Build & Deploy / 🧪 QA (push) Successful in 6m41s
Build & Deploy / 🏗️ Build (push) Successful in 7m38s
Build & Deploy / 🚀 Deploy (push) Successful in 14s
Build & Deploy / 🔔 Notifications (push) Successful in 2s
Build & Deploy / ⚡ PageSpeed (push) Failing after 49s
2026-02-08 10:41:25 +01:00
mmintel 35b7ba56ed fix: eslint and build 2026-02-07 09:36:17 +01:00
mmintel 306deb1344 chore: align deployment pipeline with klz-2026 standards
Build & Deploy Mintel.me / 🔍 Prepare Environment (push) Successful in 9s
Build & Deploy Mintel.me / 🧪 Quality Assurance (push) Failing after 12s
Build & Deploy Mintel.me / 🏗️ Build App (push) Failing after 28s
Build & Deploy Mintel.me / 🚀 Deploy (push) Has been skipped
Build & Deploy Mintel.me / ⚡ PageSpeed (push) Has been skipped
Build & Deploy Mintel.me / 🔔 Notifications (push) Successful in 1s
- Ported pagespeed-sitemap.ts and integrated @lhci/cli
- Enriched deploy.yml with parallel QA, maintenance, and PageSpeed jobs
- Refined environment detection (main/beta/rc/prod)
- Consolidated workflows and cleaned up package.json
2026-02-05 19:41:14 +01:00
mmintel 103d71851c chore: overhaul infrastructure and integrate @mintel packages
🧪 CI (QA) / 🧪 Quality Assurance (push) Failing after 1m3s
- Restructure to pnpm monorepo (site moved to apps/web)
- Integrate @mintel/tsconfig, @mintel/eslint-config, @mintel/husky-config
- Implement Docker service architecture (Varnish, Directus, Gatekeeper)
- Setup environment-aware Gitea Actions deployment
2026-02-05 14:18:51 +01:00