diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f3def1f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20-alpine AS builder +WORKDIR /app +RUN corepack enable && corepack prepare pnpm@latest --activate +COPY package.json pnpm-lock.yaml* package-lock.json* ./ +RUN if [ -f pnpm-lock.yaml ]; then pnpm install --frozen-lockfile; elif [ -f package-lock.json ]; then npm ci; else npm install; fi +COPY . . +RUN if [ -f pnpm-lock.yaml ]; then pnpm build; else npm run build; fi + +FROM nginx:alpine +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY --from=builder /app/out /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/app/layout.tsx b/app/layout.tsx index b9bac46..051f99b 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -7,15 +7,34 @@ import { Suspense } from "react" import "./globals.css" export const metadata: Metadata = { + metadataBase: new URL("https://trippinballs.lol"), title: "TrippinBalls.lol - Post-Capitalist Alternatives", description: "Exploring mycoeconomics, permaculture currencies, and post-capitalist alternatives to neoliberalism. Society is trippin balls on extraction - let's find better ways.", generator: "v0.app", keywords: "mycoeconomics, permaculture, post-capitalism, alternative economics, mutual aid, degrowth, commons", openGraph: { + type: "website", + locale: "en_US", + url: "https://trippinballs.lol", title: "TrippinBalls.lol - Post-Capitalist Alternatives", description: "Exploring mycoeconomics and post-capitalist alternatives to neoliberalism", - type: "website", + siteName: "TrippinBalls.lol", + images: [ + { + url: "/og-image.jpg", + width: 1200, + height: 630, + alt: "TrippinBalls.lol - Post-Capitalist Alternatives", + }, + ], + }, + twitter: { + card: "summary_large_image", + title: "TrippinBalls.lol - Post-Capitalist Alternatives", + description: + "Exploring mycoeconomics, permaculture currencies, and post-capitalist alternatives to neoliberalism. Society is trippin balls on extraction - let's find better ways.", + images: ["/og-image.jpg"], }, icons: { icon: "data:image/svg+xml,🔮", diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..df4c15e --- /dev/null +++ b/nginx.conf @@ -0,0 +1,15 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html index.htm; + + location / { + try_files $uri $uri/ $uri.html =404; + } + + error_page 404 /404.html; + + gzip on; + gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript; +} diff --git a/public/og-image.jpg b/public/og-image.jpg new file mode 100644 index 0000000..cf25352 Binary files /dev/null and b/public/og-image.jpg differ