Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ CLOUDINARY_CLOUD_NAME=my-cloud-name
CLOUDINARY_API_KEY=my-api-key
CLOUDINARY_API_SECRET=my-api-secret

LARAVEL_DEFAULT_FATHOM_SITE_ID=WECFOADW
CODEBAR_ANALYTICS_URL=https://analytics.codebar.ch
LITELLM_URL=https://llm.codebar.net
LITELLM_MASTER_KEY=
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ HSTS, COOP, CORP, `X-Content-Type-Options`, `Referrer-Policy` and `X-Frame-Optio
- **SEO** — `spatie/laravel-sitemap`, `spatie/laravel-responsecache`
- **Security & health** — `spatie/laravel-csp`, `spatie/laravel-honeypot` (network request form), `spatie/laravel-permission`, `spatie/laravel-health`, `spatie/security-advisories-health-check`, `mazedlx/laravel-feature-policy`
- **Ops** — `laravel/nightwatch` (observability), `symfony/postmark-mailer`
- **Analytics** — [Fathom](https://usefathom.com) (privacy-friendly, no cookie banner)
- **Analytics** — codebar Analytics (self-hosted on analytics.codebar.ch, cookieless, no cookie banner)

## License

Expand Down
6 changes: 0 additions & 6 deletions app/Security/Presets/MyCspPreset.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ public function configure(Policy $policy): void

$scriptSources = array_filter([
Keyword::SELF,
'cdn.usefathom.com',
'cdn-eu.usefathom.com',
'analytics.codebar.ch',
$cdnHost ?: null,
]);
Expand Down Expand Up @@ -62,8 +60,6 @@ public function configure(Policy $policy): void
'data:',
'res.cloudinary.com',
'www.gravatar.com',
'cdn.usefathom.com',
'cdn-eu.usefathom.com',
]);

$fontSources = array_filter([
Expand All @@ -77,8 +73,6 @@ public function configure(Policy $policy): void
$policy->add(Directive::OBJECT, Keyword::NONE);
$policy->add(Directive::CONNECT, [
Keyword::SELF,
'cdn.usefathom.com',
'cdn-eu.usefathom.com',
'analytics.codebar.ch',
]);
}
Expand Down
6 changes: 0 additions & 6 deletions config/default.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@
return [

'services' => [
'fathom' => [
'site_id' => env('LARAVEL_DEFAULT_FATHOM_SITE_ID'),
'environments' => [
EnvironmentEnum::PRODUCTION->value,
],
],
'codebar_analytics' => [
'url' => env('CODEBAR_ANALYTICS_URL'),
'environments' => [
Expand Down
10 changes: 5 additions & 5 deletions lang/de_CH.json
Original file line number Diff line number Diff line change
Expand Up @@ -256,24 +256,24 @@
"Privacy contact heading": "Kontakt",
"Privacy controller body": "Verantwortlich für die Datenbearbeitung auf dieser Website ist die codebar Solutions AG.",
"Privacy controller heading": "Verantwortliche Stelle",
"Privacy data collected analytics": "Nutzungsstatistiken über Fathom Analytics (ohne Cookies, anonymisierte Seitenaufrufe; keine Personenprofile)",
"Privacy data collected errors": "Fehler- und Leistungsdaten an Flare zur Fehlerbehebung (serverseitig; sensible Header werden entfernt)",
"Privacy data collected analytics": "Nutzungsstatistiken über codebar Analytics (von codebar selbst betrieben auf analytics.codebar.ch, ohne Cookies, anonymisierte Seitenaufrufe; keine Personenprofile)",
"Privacy data collected errors": "Fehler- und Leistungsdaten an Laravel Nightwatch zur Fehlerbehebung (serverseitig; sensible Header werden entfernt)",
"Privacy data collected heading": "Welche Daten wir erheben",
"Privacy data collected intro": "Beim Besuch dieser Website verarbeiten wir folgende Datenkategorien:",
"Privacy data collected logs": "Server-Logdaten (IP-Adresse, Datum und Uhrzeit des Zugriffs, Browsertyp, besuchte Seiten)",
"Privacy data collected session": "Technisch notwendige Session- und CSRF-Cookies für den sicheren Betrieb der Website",
"Privacy last updated date": "28.08.2026",
"Privacy page intro": "Wie die codebar Solutions AG Personendaten auf dieser Website gemäss Schweizer Datenschutzrecht bearbeitet.",
"Privacy policy": "Datenschutzerklärung",
"Privacy processors analytics": "codebar Analytics – cookielose Website-Statistiken, von der codebar Solutions AG selbst betrieben (analytics.codebar.ch)",
"Privacy processors body": "Wir setzen folgende Dienstleister ein, die Personendaten in unserem Auftrag verarbeiten können:",
"Privacy processors cloudinary": "Cloudinary – Auslieferung von Bildern und Medien (Datenschutz: cloudinary.com/privacy)",
"Privacy processors fathom": "Fathom Analytics – datenschutzfreundliche Website-Statistiken (usefathom.com/privacy)",
"Privacy processors flare": "Flare – Fehlerüberwachung unserer Anwendung (flareapp.io/privacy)",
"Privacy processors heading": "Auftragsbearbeiter",
"Privacy processors hosting": "Laravel Cloud – Website-Hosting und Infrastruktur (laravel.com)",
"Privacy processors monitoring": "Laravel Nightwatch – Fehler- und Leistungsüberwachung unserer Anwendung (nightwatch.laravel.com)",
"Privacy purpose body": "Wir verarbeiten diese Daten, um die Website zu betreiben und abzusichern, aggregierte Nutzungsmuster zu verstehen und technische Probleme zu beheben. Rechtsgrundlage ist unser berechtigtes Interesse an einem sicheren und funktionsfähigen Webangebot sowie gegebenenfalls die Vertragserfüllung.",
"Privacy purpose heading": "Zweck und Rechtsgrundlage",
"Privacy retention analytics": "Analysedaten werden gemäss Richtlinie von Fathom aufbewahrt.",
"Privacy retention analytics": "Analysedaten speichern wir selbst auf analytics.codebar.ch; sie enthalten keine Personenprofile.",
"Privacy retention errors": "Fehlermeldungen werden so lange aufbewahrt, wie zur Behebung erforderlich.",
"Privacy retention heading": "Aufbewahrungsdauer",
"Privacy retention logs": "Server-Logs werden bis zu 90 Tage aufbewahrt.",
Expand Down
10 changes: 5 additions & 5 deletions lang/en_CH.json
Original file line number Diff line number Diff line change
Expand Up @@ -252,24 +252,24 @@
"Privacy contact heading": "Contact",
"Privacy controller body": "The controller responsible for data processing on this website is codebar Solutions AG.",
"Privacy controller heading": "Controller",
"Privacy data collected analytics": "Usage analytics via Fathom Analytics (cookieless, anonymised page views; no personal profiles)",
"Privacy data collected errors": "Error and performance data sent to Flare for troubleshooting (server-side; sensitive headers are redacted)",
"Privacy data collected analytics": "Usage analytics via codebar Analytics (run by codebar itself on analytics.codebar.ch, cookieless, anonymised page views; no personal profiles)",
"Privacy data collected errors": "Error and performance data sent to Laravel Nightwatch for troubleshooting (server-side; sensitive headers are redacted)",
"Privacy data collected heading": "Data we collect",
"Privacy data collected intro": "When you visit this website, we process the following categories of data:",
"Privacy data collected logs": "Server log data (IP address, date and time of access, browser type, pages visited)",
"Privacy data collected session": "Technically necessary session and CSRF cookies for secure operation of the website",
"Privacy last updated date": "28 August 2026",
"Privacy page intro": "How codebar Solutions AG collects and processes personal data on this website, under Swiss data protection law.",
"Privacy policy": "Privacy policy",
"Privacy processors analytics": "codebar Analytics – cookieless website statistics, run by codebar Solutions AG itself (analytics.codebar.ch)",
"Privacy processors body": "We use the following third-party services that may process personal data on our behalf:",
"Privacy processors cloudinary": "Cloudinary – delivery of images and media assets (privacy policy: cloudinary.com/privacy)",
"Privacy processors fathom": "Fathom Analytics – privacy-friendly website statistics (usefathom.com/privacy)",
"Privacy processors flare": "Flare – error monitoring for our application (flareapp.io/privacy)",
"Privacy processors heading": "Third-party processors",
"Privacy processors hosting": "Laravel Cloud – website hosting and infrastructure (laravel.com)",
"Privacy processors monitoring": "Laravel Nightwatch – error and performance monitoring for our application (nightwatch.laravel.com)",
"Privacy purpose body": "We process this data to operate and secure the website, to understand aggregate usage patterns, and to diagnose technical issues. The legal basis is our legitimate interest in providing a secure and functional website, and where applicable the performance of a contract.",
"Privacy purpose heading": "Purpose and legal basis",
"Privacy retention analytics": "Analytics data is retained according to Fathom's policy.",
"Privacy retention analytics": "Analytics data is stored by us on analytics.codebar.ch and contains no personal profiles.",
"Privacy retention errors": "Error reports are retained as long as necessary to resolve the issue.",
"Privacy retention heading": "Retention",
"Privacy retention logs": "Server logs are retained for up to 90 days.",
Expand Down
10 changes: 0 additions & 10 deletions resources/views/layouts/_partials/_fathom.blade.php

This file was deleted.

3 changes: 0 additions & 3 deletions resources/views/layouts/app.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ class="scroll-smooth"
<link rel="preconnect" href="https://res.cloudinary.com">
@endif
<link rel="dns-prefetch" href="https://res.cloudinary.com">
<link rel="preconnect" href="https://cdn.usefathom.com">
<link rel="dns-prefetch" href="https://cdn.usefathom.com">

<!-- Preload critical resources: the latin subsets actually used above the fold —
400 for body copy, 600 for every heading and UI label, 700 for the h1. 300 and
Expand Down Expand Up @@ -78,7 +76,6 @@ class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z

</div>

@include('layouts._partials._fathom')
@include('layouts._partials._codebar_analytics')

</body>
Expand Down
Loading