Hermes Agent
|
f1fa539495
|
SEO: comprehensive search engine optimization for bilhej.se
CI / Lint, type check, unit tests, coverage (push) Failing after 26m9s
CI / E2E browser tests (push) Failing after 13m8s
Adds 7 SEO improvements across the full stack:
1. Enhanced index.html:
- Open Graph tags (og:title, og:description, og:image, og:locale sv_SE)
- Twitter Card tags (summary_large_image)
- Canonical URL (https://bilhej.se/)
- Meta keywords, author, robots, language tags
- Structured data in JSON-LD (Organization, WebSite, Service, FAQPage)
- FAQ structured data with 4 Q&A pairs (pris, anonymitet, hur funkar det)
- Preconnect hints for analytics origin
2. robots.txt:
- Disallow: auth pages, admin, orders, payment, guest pages
- Allow: public pages (/, /om-oss, /kontakt, /integritetspolicy, /villkor)
- Crawl-delay: 10s
- Points to sitemap
3. sitemap.xml:
- 6 public URLs with proper changefreq and priority
- Home (1.0), Om (0.7), Kontakt (0.6), GDPR/Villkor (0.5)
4. useSeo composable:
- Dynamic document.title, meta description/OG/Twitter on route change
- Canonical URL updates per page
- Reset fallback for unnamed routes
5. Route-level SEO data:
- 16 routes with unique title, description, keywords
- Covers all public pages + key auth pages
6. App.vue: wired useSeo with route.name watcher (immediate: true)
7. nginx.conf:
- Security headers: X-Frame-Options DENY, X-Content-Type-Options,
X-XSS-Protection, Referrer-Policy, Permissions-Policy, HSTS
- Far-future cache (1y, immutable) for static assets
- No-cache for robots.txt and sitemap.xml
- Deny access to dotfiles
- Stronger gzip config
|
2026-07-18 17:54:13 +00:00 |
|
|
|
4d449d54d0
|
feat: add Docker Compose setup with dev and prod configurations
- docker-compose.yml (dev): 3 services — postgres:16, backend (gradle
bootRun with JDK 21, spring-boot-devtools), frontend (Vite HMR on
node:24-alpine). Source volume mounts for live editing, Gradle cache
volume for fast rebuilds, pg_isready healthcheck on postgres.
- docker-compose.prod.yml (prod): same 3 services but with multi-stage
Dockerfiles. Backend: Gradle bootJar → JRE Alpine, non-root user.
Frontend: npm ci + vite build → nginx:alpine serving static dist/.
SSL termination via self-signed cert (auto-generated in entrypoint).
No source mounts, restart: unless-stopped, separate volumes.
- application-docker.yml: Spring profile overriding H2 with PostgreSQL
via env vars. Hostname "postgres" resolved by Docker Compose DNS.
- Vite proxy /api → backend:8080 for dev. nginx nginx.conf handles
/api proxy + SPA fallback + gzip + SSL in prod.
- AGENTS.md, README.md: architecture diagram, dev vs prod comparison
table, Spring profiles docs, file reference updates.
|
2026-05-01 01:45:07 +02:00 |
|