diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a73cfb5..2ada274 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -80,6 +80,9 @@ jobs: docker buildx build \ --pull \ --platform linux/arm64 \ + --build-arg NEXT_PUBLIC_BASE_URL="${{ secrets.NEXT_PUBLIC_BASE_URL }}" \ + --build-arg NEXT_PUBLIC_UMAMI_WEBSITE_ID="${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}" \ + --build-arg NEXT_PUBLIC_UMAMI_SCRIPT_URL="${{ secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL }}" \ -t registry.infra.mintel.me/mintel/mb-grid-solutions:latest \ --push . @@ -166,6 +169,10 @@ jobs: SMTP_PORT='${{ secrets.SMTP_PORT }}' \ SMTP_SECURE='${{ secrets.SMTP_SECURE }}' \ SMTP_USER='${{ secrets.SMTP_USER }}' \ + NEXT_PUBLIC_BASE_URL='${{ secrets.NEXT_PUBLIC_BASE_URL }}' \ + NEXT_PUBLIC_UMAMI_WEBSITE_ID='${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}' \ + NEXT_PUBLIC_UMAMI_SCRIPT_URL='${{ secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL }}' \ + SENTRY_DSN='${{ secrets.SENTRY_DSN }}' \ SITE_NAME='mb-grid-solutions.com' \ sudo -u deploy -E HOME=/home/deploy /home/deploy/deploy.sh --zero-downtime" @@ -218,3 +225,56 @@ jobs: echo "║ ❌ DEPLOYMENT FAILED ║" fi echo "╚══════════════════════════════════════════════════════════════════════════════╝" + + # ═══════════════════════════════════════════════════════════════════════════════ + # NOTIFICATION: Gotify + # ═══════════════════════════════════════════════════════════════════════════════ + - name: 🔔 Gotify Notification (Success) + if: success() + run: | + echo "Sending success notification to Gotify..." + RESPONSE=$(curl -k -s -w "\n%{http_code}" -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \ + -F "title=✅ Deployment Success: ${{ github.repository }}" \ + -F "message=The deployment of ${{ github.repository }} (branch: ${{ github.ref }}) was successful. + + Commit: ${{ github.sha }} + Actor: ${{ github.actor }} + Run ID: ${{ github.run_id }}" \ + -F "priority=5") + + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + BODY=$(echo "$RESPONSE" | sed '$d') + + echo "HTTP Status: $HTTP_CODE" + echo "Response Body: $BODY" + + if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then + echo "Failed to send Gotify notification" + exit 0 # Don't fail the workflow because of notification failure + fi + + - name: 🔔 Gotify Notification (Failure) + if: failure() + run: | + echo "Sending failure notification to Gotify..." + RESPONSE=$(curl -k -s -w "\n%{http_code}" -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \ + -F "title=❌ Deployment Failed: ${{ github.repository }}" \ + -F "message=The deployment of ${{ github.repository }} (branch: ${{ github.ref }}) failed! + + Commit: ${{ github.sha }} + Actor: ${{ github.actor }} + Run ID: ${{ github.run_id }} + + Please check the logs for details." \ + -F "priority=8") + + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + BODY=$(echo "$RESPONSE" | sed '$d') + + echo "HTTP Status: $HTTP_CODE" + echo "Response Body: $BODY" + + if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then + echo "Failed to send Gotify notification" + exit 0 # Don't fail the workflow because of notification failure + fi diff --git a/app/layout.tsx b/app/layout.tsx index 9d1d554..824c1a2 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,7 +1,7 @@ +import Layout from "@/components/Layout"; import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; -import Layout from "@/components/Layout"; const inter = Inter({ subsets: ["latin"], @@ -16,9 +16,9 @@ export const metadata: Metadata = { }, description: "Ihr spezialisierter Partner für herstellerneutrale technische Beratung und Projektbegleitung bei Energiekabelprojekten bis 110 kV. Expertise in Mittel- und Hochspannungsnetzen.", keywords: ["Energiekabel", "Hochspannung", "Mittelspannung", "Kabelprojekte", "Technische Beratung", "Engineering", "Energiewende", "110 kV"], - authors: [{ name: "MB Grid Solutions GmbH" }], - creator: "MB Grid Solutions GmbH", - publisher: "MB Grid Solutions GmbH", + authors: [{ name: "MB Grid Solutions & Services GmbH" }], + creator: "MB Grid Solutions & Services GmbH", + publisher: "MB Grid Solutions & Services GmbH", formatDetection: { email: false, address: false, @@ -67,7 +67,7 @@ export default function RootLayout({ const jsonLd = { "@context": "https://schema.org", "@type": "Organization", - "name": "MB Grid Solutions GmbH", + "name": "MB Grid Solutions & Services GmbH", "url": "https://www.mb-grid-solutions.com", "logo": "https://www.mb-grid-solutions.com/assets/logo.png", "description": "Ihr spezialisierter Partner für herstellerneutrale technische Beratung und Projektbegleitung bei Energiekabelprojekten bis 110 kV.", diff --git a/components/ContactContent.tsx b/components/ContactContent.tsx index f2a4513..a308b1b 100644 --- a/components/ContactContent.tsx +++ b/components/ContactContent.tsx @@ -1,11 +1,10 @@ 'use client'; -import { CheckCircle, Mail, MapPin, Send } from 'lucide-react'; import React, { useState } from 'react'; +import { Button } from './Button'; +import { Counter } from './Counter'; import { Reveal } from './Reveal'; import { TechBackground } from './TechBackground'; -import { Counter } from './Counter'; -import { Button } from './Button'; export default function Contact() { const [submitted, setSubmitted] = useState(false); @@ -97,7 +96,7 @@ export default function Contact() {
- MB Grid Solutions GmbH
+ MB Grid Solutions & Services GmbH
Raiffeisenstraße 22
73630 Remshalden
© {new Date().getFullYear()} MB Grid Solutions GmbH. Alle Rechte vorbehalten.
+© {new Date().getFullYear()} MB Grid Solutions & Services GmbH. Alle Rechte vorbehalten.