From e35559156a451219362e90a45e606721d3a866ab Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 27 Oct 2024 21:47:19 -0600 Subject: [PATCH] feat: add website --- .github/CODEOWNERS | 2 - .github/workflows/pull-request.yml | 25 - README.md | 13 + app/[locale]/[...rest]/page.tsx | 5 + app/[locale]/layout.tsx | 106 + app/[locale]/not-found.tsx | 5 + app/[locale]/page.tsx | 20 + app/[locale]/pricing/page.tsx | 9 + app/[locale]/privacy/page.tsx | 111 + app/[locale]/terms/page.tsx | 205 + app/layout.tsx | 101 +- app/not-found.tsx | 28 +- app/page.tsx | 25 - components.json | 32 +- components/CallToAction.tsx | 23 +- components/Faqs.tsx | 59 +- components/Footer.tsx | 85 +- components/Header.tsx | 100 +- components/Hero.tsx | 262 +- components/NavLink.tsx | 2 +- components/Pricing.tsx | 514 ++- components/PrimaryFeatures.tsx | 57 +- components/SecondaryFeatures.tsx | 63 +- components/SlimLayout.tsx | 26 +- components/ui/animated-shiny-text.tsx | 40 + components/ui/badge.tsx | 36 + components/ui/button.tsx | 5 +- components/ui/hover-border-gradient.tsx | 100 + components/ui/input.tsx | 69 + components/ui/select.tsx | 160 + components/ui/switch.tsx | 29 + components/ui/tabs.tsx | 53 + i18n/request.tsx | 12 + i18n/routing.ts | 16 + locales/en.json | 176 + locales/zh-Hans.json | 176 + middleware.ts | 9 + next.config.js | 17 +- package-lock.json | 4888 ----------------------- package.json | 81 +- pnpm-lock.yaml | 4272 ++++++++------------ postcss.config.js | 10 +- prettier.config.js | 10 +- public/canary.sh | 201 +- public/feature.sh | 202 +- public/install.sh | 222 +- public/og.png | Bin 24940 -> 453494 bytes tailwind.config.ts | 31 +- tsconfig.json | 52 +- yarn.lock | 2772 ------------- 50 files changed, 4461 insertions(+), 11056 deletions(-) delete mode 100644 .github/CODEOWNERS delete mode 100644 .github/workflows/pull-request.yml create mode 100644 app/[locale]/[...rest]/page.tsx create mode 100644 app/[locale]/layout.tsx create mode 100644 app/[locale]/not-found.tsx create mode 100644 app/[locale]/page.tsx create mode 100644 app/[locale]/pricing/page.tsx create mode 100644 app/[locale]/privacy/page.tsx create mode 100644 app/[locale]/terms/page.tsx delete mode 100644 app/page.tsx create mode 100644 components/ui/animated-shiny-text.tsx create mode 100644 components/ui/badge.tsx create mode 100644 components/ui/hover-border-gradient.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/select.tsx create mode 100644 components/ui/switch.tsx create mode 100644 components/ui/tabs.tsx create mode 100644 i18n/request.tsx create mode 100644 i18n/routing.ts create mode 100644 locales/en.json create mode 100644 locales/zh-Hans.json create mode 100644 middleware.ts delete mode 100644 package-lock.json delete mode 100644 yarn.lock diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 2d3b039..0000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# These owners will be the default owners for everything in -* @siumauricio diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml deleted file mode 100644 index d906938..0000000 --- a/.github/workflows/pull-request.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Pull request -on: - pull_request: - branches: - - main -jobs: - build: - runs-on: ubuntu-20.04 - strategy: - matrix: - node-version: [18.18.0] - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'pnpm' - - name: Install dependencies - run: pnpm install - - name: Run Build - run: pnpm build \ No newline at end of file diff --git a/README.md b/README.md index ddcd17e..5756291 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,15 @@ # Dokploy Website +Main Landing Page of Dokploy + +Run development server: + +```bash +npm run dev +# or +pnpm dev +# or +yarn dev +``` + +Open http://localhost:3000 with your browser to see the result. diff --git a/app/[locale]/[...rest]/page.tsx b/app/[locale]/[...rest]/page.tsx new file mode 100644 index 0000000..4583936 --- /dev/null +++ b/app/[locale]/[...rest]/page.tsx @@ -0,0 +1,5 @@ +import { notFound } from "next/navigation"; + +export default function CatchAll() { + notFound(); +} diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx new file mode 100644 index 0000000..26a161b --- /dev/null +++ b/app/[locale]/layout.tsx @@ -0,0 +1,106 @@ +import clsx from "clsx"; +import { Inter, Lexend } from "next/font/google"; +import "@/styles/tailwind.css"; +import { NextIntlClientProvider } from "next-intl"; +import { getMessages } from "next-intl/server"; + +import { Footer } from "@/components/Footer"; +import { Header } from "@/components/Header"; +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: { + default: "Dokploy - Effortless Deployment Solutions", + template: "%s | Simplify Your DevOps", + }, + alternates: { + canonical: "https://dokploy.com", + languages: { + en: "https://dokploy.com", + }, + }, + description: + "Streamline your deployment process with Dokploy. Effortlessly manage applications and databases on any VPS using Docker and Traefik for improved performance and security.", + applicationName: "Dokploy", + keywords: [ + "Dokploy", + "Docker", + "Traefik", + "deployment", + "VPS", + "application management", + "database management", + "DevOps", + "cloud infrastructure", + "UI Self hosted", + ], + referrer: "origin", + robots: "index, follow", + openGraph: { + type: "website", + url: "https://dokploy.com", + title: "Dokploy - Effortless Deployment Solutions", + description: + "Simplify your DevOps with Dokploy. Deploy applications and manage databases efficiently on any VPS.", + siteName: "Dokploy", + images: [ + { + url: "http://dokploy.com/og.png", + }, + ], + }, + twitter: { + card: "summary_large_image", + site: "@Dokploy", + creator: "@Dokploy", + title: "Dokploy - Simplify Your DevOps", + description: + "Deploy applications and manage databases with ease using Dokploy. Learn how our platform can elevate your infrastructure management.", + images: "https://dokploy.com/og.png", + }, +}; + +const inter = Inter({ + subsets: ["latin"], + display: "swap", + variable: "--font-inter", +}); + +const lexend = Lexend({ + subsets: ["latin"], + display: "swap", + variable: "--font-lexend", +}); + +export default async function RootLayout({ + children, + params, +}: { + children: React.ReactNode; + params: { locale: string }; +}) { + const { locale } = params; + const messages = await getMessages(); + return ( + + +