diff --git a/Dockerfile b/Dockerfile index ff40406..73bdedb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,6 +33,8 @@ RUN npm run build FROM node:20-slim AS runner WORKDIR /app +RUN apt-get update && apt-get install -y tzdata && rm -rf /var/lib/apt/lists/* + ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV TZ=Australia/Perth diff --git a/docker-compose.yml b/docker-compose.yml index 6669534..f4b133c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,7 +18,7 @@ services: # Push notification VAPID keys - NEXT_PUBLIC_VAPID_PUBLIC_KEY=BEFs_VtoxY7SpNnd-ubz1ioliESlRI4sY6ny7Qp3rm7V1cm0gqyZX8TAHp4AaQ81yKC4LfWtJFQz_aHc25G-Tww - VAPID_PRIVATE_KEY=KgVQVO7XhfCklrJ3o9wowzK90AxI6Exg9pXPq76Qx4A - - VAPID_EMAIL=mailto:admin@nextstep.local + - VAPID_EMAIL=mailto:admin@example.com depends_on: db: condition: service_healthy diff --git a/src/components/notifications/NotificationPermission.tsx b/src/components/notifications/NotificationPermission.tsx index f4358d5..b6c1fba 100644 --- a/src/components/notifications/NotificationPermission.tsx +++ b/src/components/notifications/NotificationPermission.tsx @@ -52,6 +52,18 @@ export function NotificationPermission({ workspaceId }: NotificationPermissionPr if (registration.pushManager) { const subscription = await registration.pushManager.getSubscription() setIsSubscribed(!!subscription) + + // Auto-sync subscription to server to ensure it exists + if (subscription) { + fetch('/api/notifications/subscribe', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + subscription: subscription.toJSON(), + workspaceId, + }), + }).catch(console.error) + } } } catch (err) { console.error('Failed to check subscription:', err)