diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bc8cd98 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,61 @@ +# 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 +ARG NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME +ARG CLOUDINARY_API_KEY +ARG CLOUDINARY_API_SECRET + +ENV NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=$NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME +ENV CLOUDINARY_API_KEY=$CLOUDINARY_API_KEY +ENV CLOUDINARY_API_SECRET=$CLOUDINARY_API_SECRET +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]/about/page.tsx b/app/[locale]/about/page.tsx new file mode 100644 index 0000000..5c51c65 --- /dev/null +++ b/app/[locale]/about/page.tsx @@ -0,0 +1,82 @@ +import { useTranslations } from 'next-intl'; +import Navbar from '@/components/Navbar'; +import Footer from '@/components/Footer'; +import Image from 'next/image'; + +export default function AboutPage() { + const t = useTranslations('About'); + + return ( +
+ + + {/* Hero Section */} +
+
+ + Salmakis Villas + +

+ {t('title')} +

+
+
+ +
+
+

+ {t('paragraph1')} +

+

+ {t('paragraph2')} +

+

+ {t('paragraph3')} +

+

+ {t('paragraph4')} +

+
+ +
+ Dereköy Villas +
+
+
+ + {/* Location Details Section */} +
+
+
+
01
+

{t('location_title')}

+

+ Ortakent, Turgutreis ve Gümüşlük üçgeninin tam merkezinde huzurlu bir konum. +

+
+
+
02
+

{t('tradition_title')}

+

+ Geleneksel Bodrum mimarisi ile modern konforun buluştuğu taş yapılar. +

+
+
+
03
+

{t('service_title')}

+

+ Aynı arazide ikamet eden villa görevlisi ile 24 saat kesintisiz hizmet. +

+
+
+
+ +
+ ); +} diff --git a/app/[locale]/contact/page.tsx b/app/[locale]/contact/page.tsx new file mode 100644 index 0000000..1a486a8 --- /dev/null +++ b/app/[locale]/contact/page.tsx @@ -0,0 +1,143 @@ +'use client'; + +import { useTranslations } from 'next-intl'; +import Navbar from '@/components/Navbar'; +import Footer from '@/components/Footer'; +import { MapPin, Phone, Mail, Fax, Smartphone, Send } from 'lucide-react'; + +export default function ContactPage() { + const t = useTranslations('Contact'); + + return ( +
+ + + {/* Hero Header */} +
+ + Salmakis Villas + +

+ {t('title')} +

+

+ {t('description')} +

+
+
+ + {/* Contact Content */} +
+ {/* Contact info cards */} +
+
+
+
+ +
+

{t('address')}

+

+ Dereköy yolu, Bademlik Mevkii Küme evleri No:24 Gürece Ortakent Bodrum/Muğla Türkiye +

+
+ +
+
+ +
+

{t('phone')}

+
+

+90 252 316 28 77

+

+90 252 316 27 38

+

+90 252 316 65 09

+
+
+ +
+
+ +
+

{t('mobile')}

+

+ +90 532 731 78 04 +

+
+ +
+
+ +
+

{t('email')}

+

+ info@salmakisvillas.com +

+
+
+ +
+
+

{t('fax')}

+

+90 252 316 27 37

+
+ +
+
+ + {/* Contact Form */} +
+

Bize Mesaj Gönderin

+
+
+ + +
+
+ + +
+
+ +