Unchained
7f99b5e328
docs: remove dev.manoonoils.com from AGENTS.md
Build and Deploy / build (push) Successful in 0s
2026-04-18 06:52:24 +02:00
Unchained
2d18909440
docs: correct AGENTS.md - site is fully migrated to Next.js
Build and Deploy / build (push) Successful in 0s
2026-04-18 06:48:31 +02:00
Unchained
4af9544224
docs: add comprehensive AGENTS.md for coding agents
Build and Deploy / build (push) Successful in 0s
2026-04-18 06:40:05 +02:00
Unchained
622e7f3642
Merge branch 'dev'
Build and Deploy / build (push) Successful in 0s
2026-04-09 12:02:34 +02:00
Unchained
864008af16
fix: unify free shipping threshold to 10000 RSD across all pages
...
- Create centralized shipping config file (src/lib/config/shipping.ts)
- Update CartDrawer.tsx: change hardcoded 5000 to FREE_SHIPPING_THRESHOLD_RSD constant
- Update TickerBar.tsx: change hardcoded 10000 to use centralized constant
- Ensure uniform free shipping messaging across all pages and localizations
2026-04-09 11:55:55 +02:00
Unchained
011994b36e
Merge branch 'feature/programmatic-seo' into dev
2026-04-09 11:37:31 +02:00
Unchained
1ed3d3dd9d
fix: update sitemap to use localized slugs for programmatic SEO pages
...
- Update sitemap.ts to use page.localizedSlugs[locale] for correct URLs
- Generate all 40 localized URLs (10 pages × 4 locales) with proper slugs
- Remove outdated sitemap-programmatic.xml
- Add proper TypeScript type for solutionPages
2026-04-09 11:05:58 +02:00
Unchained
14d7a3e21a
fix: ensure canonical URLs match actual URLs with locale prefix
...
- Update [slug]/page.tsx to always include locale in canonical URL
- Update by-oil/page.tsx to use consistent locale prefix
- Update by-concern/page.tsx to use consistent locale prefix
- All canonical URLs now match actual URLs: /{locale}/solutions/{slug}
2026-04-09 10:50:54 +02:00
Unchained
04d8d773bf
fix: ensure all links are properly localized with locale prefix
...
- Update basePath to always include locale prefix (/)
- Fix productsHref to use basePath consistently
- Fix product links in ProductsGrid to use basePath
- Ensure /sr/pages link to /sr/products, /en to /en/products, etc.
2026-04-09 10:03:26 +02:00
Unchained
9ab07ab01d
feat: implement centralized taxonomy for programmatic SEO
...
- Create taxonomy system with oils.json (5 oils) and concerns.json (9 concerns)
- Migrate 10 content files to new data/content/oil-for-concern/ structure
- Add scripts: generate-urls.js, validate-taxonomy.js, migrate-content.js
- Update dataLoader.ts to use centralized taxonomy
- Generate 40 URLs (10 pairs × 4 languages)
- Create sitemap-programmatic.xml for SEO
- Update by-oil and by-concern directory pages
2026-04-09 08:04:35 +02:00
Unchained
9d07a60d3f
feat: implement programmatic SEO for solutions pages
...
- Add 10 oil-for-concern solution pages with localized slugs
- Support 4 languages: sr, en, de, fr with proper canonical URLs
- Add solutions hub, by-concern, and by-oil directory pages
- Filter bundle products from solutions pages
- Add hideLangSwitcher prop to Header component
- Update translations for all languages
- Fix canonical URLs to include locale prefix
2026-04-08 13:29:42 +02:00
Unchained
261fd36579
Merge dev into master
...
Build and Deploy / build (push) Successful in 1s
Includes canonical URL fix and build workflow improvements
2026-04-06 15:42:50 +02:00
Unchained
09725c6b0d
Merge feature/canonical-url-fix into dev
...
Fix canonical URL redirect errors by always including locale prefix
2026-04-06 15:40:56 +02:00
Unchained
57bae7ed6f
fix: canonical URLs to always include locale prefix
...
Fixed Canonical Redirect Error in Google Search Console by ensuring
canonical URLs always include the locale prefix (/sr, /en, /de, /fr)
instead of omitting it for the default locale.
Changes:
- layout.tsx: Fixed canonical and hreflang URL generation
- page.tsx: Fixed homepage canonical URL
- contact/page.tsx: Fixed contact page canonical URL
- about/page.tsx: Fixed about page canonical URL
- products/page.tsx: Fixed products page canonical URL
- products/[slug]/page.tsx: Fixed product detail canonical URL
Before: /contact (when locale=sr)
After: /sr/contact (all locales)
Fixes: Canonical Redirect Error in Google Search Console
2026-04-06 15:32:24 +02:00
Flux CD
cca6f44139
Merge branch 'master' into feature/programmatic-seo
2026-04-05 11:25:22 +00:00
Unchained
2097280f20
fix: force no-cache build
Build and Deploy / build (push) Successful in 1s
2026-04-05 13:05:28 +02:00
Unchained
bea6aba014
fix: simplify workflow with proper build args
Build and Deploy / build (push) Successful in 0s
2026-04-05 13:02:05 +02:00
Unchained
8454ffc5b3
test: trigger build with args
Build and Deploy / build (push) Has been cancelled
2026-04-05 12:59:49 +02:00
Unchained
38defdfb9b
chore: remove test workflow
Build and Deploy / build (push) Has been cancelled
2026-04-05 12:59:13 +02:00
Flux CD
9c04dffa46
fix: add missing build args to workflow
2026-04-05 10:58:54 +00:00
Unchained
bd1fa0d96a
test: add no-cache build workflow
Build and Deploy / build (push) Successful in 59s
2026-04-05 12:53:44 +02:00
Unchained
826d1ebb46
trigger: rebuild with correct env vars
...
Build and Deploy / build (push) Successful in 59s
Previous build had localhost:8000 hardcoded.
This rebuild uses the fixed Dockerfile with build args.
2026-04-05 12:30:07 +02:00
Unchained
09b0614695
fix: remove kubectl annotate from build workflow
...
Build and Deploy / build (push) Successful in 59s
- Remove kubectl command that was causing build failures
- Flux will auto-detect new image within 5 minutes via polling
- Simpler, more reliable build process
2026-04-05 12:03:27 +02:00
Unchained
7c7611b723
fix: simplify build workflow YAML syntax
...
Build and Deploy / build (push) Successful in 10m0s
- Use 'command' and 'args' instead of multiline command
- Use quoted heredoc delimiter to prevent variable expansion
- Simplify clone and build scripts
2026-04-05 11:50:23 +02:00
Unchained
6563f0c966
fix: use full cluster DNS for gitea service
...
Build and Deploy / build (push) Has been cancelled
- Change gitea URL from http://gitea:3000 to http://gitea.gitea.svc.cluster.local:3000
- Add set -x for debugging
- Add explicit clone exit code checking
2026-04-05 11:43:57 +02:00
Unchained
cdbcd8424b
fix: improve git clone error handling in build workflow
Build and Deploy / build (push) Has been cancelled
2026-04-05 11:39:39 +02:00
Unchained
05b2c26634
fix: correct syntax errors in build workflow
...
Build and Deploy / build (push) Has been cancelled
- Fix unclosed quote on line 13
- Remove malformed git checkout command on line 39
2026-04-05 11:35:01 +02:00
Unchained
bdc35ff2b4
fix: remove quotes from date command in build workflow
Build and Deploy / build (push) Failing after 0s
2026-04-05 11:31:59 +02:00
Unchained
d53665d6da
build: pass env vars as build args to fix localhost:8000 error
...
Build and Deploy / build (push) Failing after 0s
- Add ARG and ENV directives to Dockerfile for NEXT_PUBLIC_* vars
- Pass build args in buildctl command with --opt build-arg
- Fixes ERR_BLOCKED_BY_CLIENT on localhost:8000/graphql
2026-04-05 11:24:01 +02:00
Flux CD
f6cdcd86df
merge: integrate latest master with Gitea Actions CI/CD
2026-04-05 06:20:16 +00:00
Flux CD
80da03504c
ci: add Gitea Actions workflow with BuildKit
2026-04-05 06:16:10 +00:00
Unchained
328bbbaaa2
ci: add Gitea Actions workflow with BuildKit
Build and Deploy / build (push) Failing after 23m52s
2026-04-05 08:13:55 +02:00
Unchained
6a05abc6de
ci: simplify Gitea Actions workflow to use BuildKit
2026-04-05 08:12:24 +02:00
Flux CD
9058002f8d
merge: integrate master deployment changes (keep BuildKit setup)
2026-04-05 05:49:31 +00:00
Flux CD
37d1894ad4
fix: remove image transformer, use deployment image directly
2026-04-05 05:10:32 +00:00
Flux CD
6236092d77
feat: add image policy setter marker for Flux automation
2026-04-05 05:07:17 +00:00
Flux CD
61b20beffa
feat: switch to pre-built GHCR image using BuildKit
2026-04-05 05:02:51 +00:00
Unchained
29894cd555
chore: trigger Gitea Actions build
Build and Push to GHCR / build (push) Failing after 4m0s
2026-04-05 06:32:05 +02:00
Unchained
c80970bcda
feat(ci): add Gitea Actions workflow for building and pushing to GHCR
...
Build and Push to GHCR / build (push) Has been cancelled
Add .gitea/workflows/build.yaml that:
- Builds Docker image on push to master
- Pushes to ghcr.io/unchainedio/manoon-headless
- Tags with commit SHA and 'latest'
- Updates k8s/kustomization.yaml with new image tag
- Commits and pushes the tag update back to repo
Requires Gitea Actions runner to be configured.
2026-04-05 06:24:36 +02:00
Unchained
1dec08f857
Revert to working deployment while GHCR image builds
...
Build and Deploy / build (push) Failing after 12m23s
Will re-apply pre-built image once GitHub Actions successfully
pushes image to ghcr.io/unchainedio/manoon-headless
2026-04-05 06:15:54 +02:00
Unchained
cc33d317ba
fix(k8s): use latest tag for manoon-headless image
...
Build and Deploy / build (push) Has been cancelled
Temporary fix until GitHub Actions builds and pushes the image.
Workflow will update to specific SHA on next push.
2026-04-05 06:12:44 +02:00
Unchained
3c495f48b7
refactor(k8s): use pre-built GHCR image instead of building in pod
...
Build and Deploy / build (push) Has been cancelled
- Remove init containers (clone, install, build)
- Use ghcr.io/unchainedio/manoon-headless:latest image
- Faster pod startup, less resource usage
- Image built by GitHub Actions on push to master
2026-04-05 06:09:55 +02:00
Unchained
590b6ca6ea
fix(k8s): handle existing workspace on pod restart
...
Apply same fix from master branch:
- Check if workspace exists before cloning
- Fetch and reset if .git directory exists
- Clean and clone fresh if not
Prevents CrashLoopBackOff on pod restarts.
2026-04-05 05:33:17 +02:00
Unchained
f6609f07d7
feat: implement programmatic SEO solutions hub
...
- Add /solutions hub page with 10 category cards
- Add /solutions/by-concern directory page
- Add /solutions/by-oil directory page
- Add Solutions section to Footer with navigation links
- Add Breadcrumb component for solution pages
- Add translations for all solution pages (sr, en, de, fr)
- Fix ExitIntentDetector JSON parsing error
- Update sitemap with solution pages
- Create 3 sample solution pages with data files
2026-04-05 05:21:57 +02:00
Unchained
a636d29f0b
fix(k8s): handle existing workspace on pod restart
...
Build and Deploy / build (push) Has been cancelled
The clone init container was failing with 'destination path already exists'
when the pod restarted. EmptyDir volumes persist across container restarts
but init containers run again.
Now checks if workspace exists:
- If .git directory exists: fetch and reset to latest master
- If not: clean and clone fresh
This fixes the CrashLoopBackOff caused by failed clone attempts.
2026-04-05 05:17:30 +02:00
Unchained
6caefb420a
docs: add OpenCode project memory for git workflow
Build and Deploy / build (push) Has been cancelled
2026-04-03 21:06:15 +02:00
Unchained
cbbcaace22
docs: add git workflow guidelines
Build and Deploy / build (push) Has been cancelled
2026-04-03 21:03:04 +02:00
Unchained
eb711fbf1a
feat(popup): add email capture popup with Mautic integration
...
Build and Deploy / build (push) Has been cancelled
- Email capture popup with scroll (10%) and exit intent triggers
- First name field and full tracking (UTM, device, time on page)
- Mautic API integration for contact creation
- GeoIP detection for country/region
- 4 locale support (sr, en, de, fr)
- Mautic tracking script in layout
2026-04-03 20:44:15 +02:00
Unchained
4e5481af1a
fix(layout): restore ExitIntentDetector and Mautic tracking
Build and Deploy / build (push) Has been cancelled
2026-04-03 20:27:25 +02:00
Unchained
618298b1b1
fix(layout): restore original structure, keep only Rybbit direct URL fix
...
Build and Deploy / build (push) Has been cancelled
Revert unintended changes from previous commit:
- Restore AnalyticsProvider (was accidentally removed)
- Remove ExitIntentDetector (feature branch code)
- Remove Mautic tracking script (feature branch code)
Keep only the intended Rybbit fix:
- Direct connection to Rybbit instead of server-side proxy
2026-04-03 20:14:07 +02:00