diff --git a/docker-compose.yml b/docker-compose.yml
index b7ed86c..58d905e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -65,6 +65,7 @@ services:
- ./public/news:/app/public/news
- ./public/parts:/app/public/parts
- ./public/operations-inbox:/app/public/operations-inbox
+ - ./public/branding:/app/public/branding
networks:
- flux-net
expose:
@@ -88,6 +89,7 @@ services:
- ./public/parts:/srv/parts:ro
- ./public/footage:/srv/footage:ro
- ./public/operations-inbox:/srv/operations-inbox:ro
+ - ./public/branding:/srv/branding:ro
depends_on:
- app
networks:
diff --git a/nginx/conf.d/flux.conf b/nginx/conf.d/flux.conf
index 83bf6c7..a5ad8fd 100644
--- a/nginx/conf.d/flux.conf
+++ b/nginx/conf.d/flux.conf
@@ -163,6 +163,12 @@ server {
access_log off;
}
+ location /branding/ {
+ alias /srv/branding/;
+ add_header Cache-Control "public, max-age=300, must-revalidate" always;
+ access_log off;
+ }
+
location / {
proxy_pass http://nextjs;
proxy_set_header Host $host;
diff --git a/src/app/hq-command/dashboard/settings/page.tsx b/src/app/hq-command/dashboard/settings/page.tsx
index ea79ac8..478a391 100644
--- a/src/app/hq-command/dashboard/settings/page.tsx
+++ b/src/app/hq-command/dashboard/settings/page.tsx
@@ -275,6 +275,21 @@ function FooterTab({
onChange({ ...value, hqCountry: v })} />
+
+ onChange({ ...value, hqEmail: v })}
+ placeholder="sales@lethepowerflux.com"
+ />
+ onChange({ ...value, hqPhone: v })}
+ placeholder="+39 0424 287 492"
+ />
+
+
onChange({ ...value, copyrightHolder: v })} />
onChange({ ...value, privacyUrl: v })} />
diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx
index 2442f68..02f15bc 100644
--- a/src/components/layout/Footer.tsx
+++ b/src/components/layout/Footer.tsx
@@ -1,5 +1,5 @@
import { Link } from "@/i18n/routing";
-import { Linkedin, Instagram, Youtube, Mail } from "lucide-react";
+import { Linkedin, Instagram, Youtube, Mail, Phone } from "lucide-react";
import { prisma } from "@/lib/prisma";
import { getLocalizedData } from "@/lib/i18nHelper";
import { getTranslations, getLocale } from "next-intl/server";
@@ -97,6 +97,29 @@ export default async function Footer() {
{footer.hqRegion}, {footer.hqCountry}
+ {(footer.hqEmail || footer.hqPhone) && (
+
+ )}
+
{socialLinks.length > 0 && (
{socialLinks.map(({ url, icon: Icon, label }) => (
diff --git a/src/lib/siteSettingsTypes.ts b/src/lib/siteSettingsTypes.ts
index b2afab3..81ba65a 100644
--- a/src/lib/siteSettingsTypes.ts
+++ b/src/lib/siteSettingsTypes.ts
@@ -21,6 +21,8 @@ export interface FooterSettings {
hqCity: string;
hqRegion: string;
hqCountry: string;
+ hqEmail: string; // e.g. sales@lethepowerflux.com
+ hqPhone: string; // e.g. +39 0424 287 492
copyrightHolder: string;
privacyUrl: string;
termsUrl: string;
@@ -51,6 +53,8 @@ export const DEFAULT_FOOTER: FooterSettings = {
hqCity: "36060 Romano d'Ezzelino",
hqRegion: "Vicenza",
hqCountry: "Italy",
+ hqEmail: "sales@lethepowerflux.com",
+ hqPhone: "+39 0424 287 492",
copyrightHolder: "FLUX Srl",
privacyUrl: "/privacy",
termsUrl: "/terms",