diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..288e979 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,55 @@ +# 1. Base image +FROM node:20-alpine AS base + +# 2. Dependencies +FROM base AS deps +RUN apk add --no-cache libc6-compat +WORKDIR /app + +# Install dependencies based on the preferred package manager +COPY package.json package-lock.json* ./ +RUN npm ci --legacy-peer-deps + + +# 3. Builder +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +# Environment variables must be present at build time for Next.js +# Coolify will provide these, but we can set defaults +ENV NEXT_TELEMETRY_DISABLED=1 + +RUN npm run build + +# 4. Runner +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 + +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs + +COPY --from=builder /app/public ./public + +# Set the correct permission for prerender cache +RUN mkdir .next +RUN chown nextjs:nodejs .next + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + +USER nextjs + +EXPOSE 3000 + +ENV PORT=3000 +# set hostname to localhost +ENV HOSTNAME="0.0.0.0" + +CMD ["node", "server.js"] diff --git a/app/[locale]/contact/page.tsx b/app/[locale]/contact/page.tsx new file mode 100644 index 0000000..62decc3 --- /dev/null +++ b/app/[locale]/contact/page.tsx @@ -0,0 +1,101 @@ +import { useTranslations } from 'next-intl'; + +export default function ContactPage() { + const t = useTranslations('Contact'); + return ( +
+ {t('hq_address1')}
+ {t('hq_address2')}
+
+90 (252) 316 12 34
+atelier@salmakis.com
+
+ * {t('apa_note')}
+ * {t('vat_note')}
+
+ {t('description')} +
++ {locale === 'tr' && yacht.description_tr ? yacht.description_tr : yacht.description} +
++ {t('description')} +
++ Explore the most exclusive bays and historical harbors of the Aegean and Mediterranean. + From the turquoise waters of Bodrum to the secluded islands of Greece. +
++ Since 1980 +
+ ++ Salmakis Yachting has been the benchmark for luxury charters in the Aegean for over four decades. + Our fleet represents the pinnacle of seafaring elegance, combining the charm of traditional + craftsmanship with the comforts of a 5-star floating hotel. +
++ {yacht.builder} — {yacht.year} {yacht.refitYear && `(${yacht.refitYear})`} +
+ + {/* Spec Grid */} ++ {t('from')} {yacht.weeklyPrice} {t('p_week')} +
+- Looking for a starting point or more instructions? Head over to{" "} - - Templates - {" "} - or the{" "} - - Learning - {" "} - center. -
-EXPERIENCE THE ART OF NAUTICAL LIVING. HANDCRAFTED VOYAGES ACROSS THE MEDITERRANEAN.
+ ++ Our fleet represents the pinnacle of naval engineering and interior design. Each vessel is a sanctuary of privacy, offering a bespoke environment tailored to the world's most discerning travelers. +
++ Defining grandeur with six palatial staterooms and an expansive sundeck featuring a jacuzzi and sky lounge. +
++ A contemporary masterpiece of glass and steel, offering panoramic views and a minimalist, zen-inspired interior. +
++ A royal gulet that marries centuries-old boatbuilding traditions with the uncompromising luxury of a modern resort. +
++ Experience 'La Dolce Vita' on the Turkish Riviera. An intimate vessel perfect for multi-generational family escapes. +
+Contact our concierge for a bespoke consultation.
+