All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 2m20s
Build & Deploy / 🏗️ Build (push) Successful in 4m22s
Build & Deploy / 🚀 Deploy (push) Successful in 23s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 5m16s
Build & Deploy / 🔔 Notify (push) Successful in 1s
- Fix PayloadRichText: migrate custom JSX converters to Lexical v3 nodesToJSX API - paragraph, heading, list, listitem, quote, link converters now use nodesToJSX - Resolves missing product texts since PayloadCMS migration - Fix mobile navigation: move overlay outside <header> to prevent fixed-position clipping - Header transform/backdrop-filter was containing the fixed overlay - Use bg-primary/95 backdrop-blur-3xl for premium blue background - Fix product image mobile layout: use md:-mt-32 responsive prefix - Negative margin only applies on md+ to avoid overlap on mobile - Improve mobile product page UX: - Breadcrumbs: flex-wrap, truncate, reduced separator spacing - Hero: reduced top padding pt-28 on mobile - Product image card: 4/3 aspect ratio and smaller padding on mobile - Section spacing: use responsive md: prefixes throughout - Data tables: 2-col grid on mobile, smaller card padding/radius - Tables: add right-edge scroll hint gradient on mobile
91 lines
2.5 KiB
YAML
91 lines
2.5 KiB
YAML
services:
|
|
# Lightweight proxy: gives Caddy the labels to route klz.localhost → host Mac
|
|
klz-proxy:
|
|
image: alpine:latest
|
|
command: sleep infinity
|
|
restart: unless-stopped
|
|
networks:
|
|
- infra
|
|
labels:
|
|
- "caddy=http://${TRAEFIK_HOST:-klz.localhost}"
|
|
- "caddy.reverse_proxy=host.docker.internal:3100"
|
|
|
|
# Full Docker dev (use with `pnpm run dev:docker`)
|
|
klz-app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
working_dir: /app
|
|
restart: unless-stopped
|
|
networks:
|
|
default:
|
|
infra:
|
|
aliases:
|
|
- klz.localhost
|
|
env_file:
|
|
- ${ENV_FILE:-.env}
|
|
environment:
|
|
NODE_ENV: development
|
|
NEXT_TELEMETRY_DISABLED: "1"
|
|
POSTGRES_URI: postgres://${PAYLOAD_DB_USER:-payload}:${PAYLOAD_DB_PASSWORD:-120in09oenaoinsd9iaidon}@klz-db:5432/${PAYLOAD_DB_NAME:-payload}
|
|
PAYLOAD_SECRET: ${PAYLOAD_SECRET:-fallback-secret-for-dev}
|
|
NODE_OPTIONS: "--max-old-space-size=8192"
|
|
UV_THREADPOOL_SIZE: "4"
|
|
NPM_TOKEN: ${NPM_TOKEN:-}
|
|
CI: "true"
|
|
volumes:
|
|
- .:/app
|
|
- klz_node_modules:/app/node_modules
|
|
- klz_next_cache:/app/.next
|
|
- klz_turbo_cache:/app/.turbo
|
|
- klz_pnpm_store:/pnpm
|
|
- /app/.git
|
|
- /app/reference
|
|
- /app/data
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '4'
|
|
memory: 8G
|
|
command: >
|
|
sh -c "pnpm install && pnpm next dev --webpack --hostname 0.0.0.0"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.services.${PROJECT_NAME:-klz}-app-svc.loadbalancer.server.port=3000"
|
|
- "traefik.docker.network=infra"
|
|
- "caddy=http://${TRAEFIK_HOST:-klz.localhost}"
|
|
- "caddy.reverse_proxy={{upstreams 3000}}"
|
|
|
|
klz-db:
|
|
image: postgres:15-alpine
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ${ENV_FILE:-.env}
|
|
environment:
|
|
POSTGRES_DB: ${PAYLOAD_DB_NAME:-payload}
|
|
POSTGRES_USER: ${PAYLOAD_DB_USER:-payload}
|
|
POSTGRES_PASSWORD: ${PAYLOAD_DB_PASSWORD:-120in09oenaoinsd9iaidon}
|
|
# Docker Desktop on Mac routes host connections via external IP, not 127.0.0.1.
|
|
# Without this, pg_hba.conf rejects the connection as "no encryption".
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
volumes:
|
|
- klz_db_data:/var/lib/postgresql/data
|
|
networks:
|
|
- default
|
|
ports:
|
|
- "54322:5432"
|
|
|
|
networks:
|
|
default:
|
|
name: ${PROJECT_NAME:-klz-cables}-internal
|
|
infra:
|
|
external: true
|
|
|
|
volumes:
|
|
klz_db_data:
|
|
external: false
|
|
klz_node_modules:
|
|
klz_next_cache:
|
|
klz_turbo_cache:
|
|
klz_pnpm_store:
|