Compare commits

..

2 Commits

Author SHA1 Message Date
Unchained f4f23aa7f3 fix(k8s): add HTTP to HTTPS redirect for manoonoils.com
- Create redirect-https middleware for permanent redirect (301)
- Split IngressRoute: HTTP route redirects to HTTPS, HTTPS route serves app
- Fixes Google Search Console 404 error on HTTP version
- No application code changes, only routing configuration
2026-04-02 22:49:26 +02:00
Unchained 9124eeedc1 fix: add ts-ignore for request.ip runtime property
Build and Deploy / build (push) Has been cancelled
2026-04-01 10:47:09 +02:00
4 changed files with 35 additions and 8 deletions
+23 -7
View File
@@ -5,13 +5,29 @@ metadata:
namespace: manoonoils namespace: manoonoils
spec: spec:
entryPoints: entryPoints:
- web - web
- websecure
routes: routes:
- match: Host(`manoonoils.com`) || Host(`www.manoonoils.com`) - kind: Rule
kind: Rule match: Host(`manoonoils.com`) || Host(`www.manoonoils.com`)
services: middlewares:
- name: storefront - name: redirect-https
port: 3000 services:
- name: storefront
port: 3000
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: storefront-secure
namespace: manoonoils
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`manoonoils.com`) || Host(`www.manoonoils.com`)
services:
- name: storefront
port: 3000
tls: tls:
certResolver: letsencrypt certResolver: letsencrypt
+1
View File
@@ -3,6 +3,7 @@ kind: Kustomization
resources: resources:
- deployment.yaml - deployment.yaml
- service.yaml - service.yaml
- middleware.yaml
- ingress.yaml - ingress.yaml
images: images:
- name: ghcr.io/unchainedio/manoon-headless - name: ghcr.io/unchainedio/manoon-headless
+9
View File
@@ -0,0 +1,9 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: redirect-https
namespace: manoonoils
spec:
redirectScheme:
scheme: https
permanent: true
+2 -1
View File
@@ -10,7 +10,8 @@ export async function POST(request: NextRequest) {
const cfConnectingIp = request.headers.get("cf-connecting-ip"); const cfConnectingIp = request.headers.get("cf-connecting-ip");
const xForwardedFor = request.headers.get("x-forwarded-for"); const xForwardedFor = request.headers.get("x-forwarded-for");
const xRealIp = request.headers.get("x-real-ip"); const xRealIp = request.headers.get("x-real-ip");
const nextJsIp = request.ip; // @ts-ignore - ip exists at runtime but not in types
const nextJsIp = (request as any).ip;
// Use the first available IP in priority order // Use the first available IP in priority order
const clientIp = const clientIp =