My personal site. theclashfruit.me
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: some docker stuff

+35 -22
+9 -22
Dockerfile
··· 1 - ARG NODE_VERSION=25.8.1-alpine 1 + ARG NODE_VERSION=lts-alpine 2 2 3 3 # Dependencies 4 4 FROM node:${NODE_VERSION} AS dependencies ··· 7 7 8 8 COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* .npmrc* ./ 9 9 10 - RUN --mount=type=cache,target=/root/.npm \ 11 - --mount=type=cache,target=/usr/local/share/.cache/yarn \ 12 - --mount=type=cache,target=/root/.local/share/pnpm/store \ 13 - if [ -f package-lock.json ]; then \ 14 - npm ci --no-audit --no-fund; \ 15 - elif [ -f yarn.lock ]; then \ 16 - corepack enable yarn && yarn install --frozen-lockfile --production=false; \ 17 - elif [ -f pnpm-lock.yaml ]; then \ 18 - corepack enable pnpm && pnpm install --frozen-lockfile; \ 19 - else \ 20 - echo "No lockfile found." && exit 1; \ 21 - fi 10 + RUN corepack enable pnpm 11 + RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ 12 + pnpm install --frozen-lockfile 22 13 23 14 # Build 24 15 FROM node:${NODE_VERSION} AS builder ··· 31 22 ENV NODE_ENV=production 32 23 ENV NEXT_TELEMETRY_DISABLED=1 33 24 34 - RUN if [ -f package-lock.json ]; then \ 35 - npm run build; \ 36 - elif [ -f yarn.lock ]; then \ 37 - corepack enable yarn && yarn build; \ 38 - elif [ -f pnpm-lock.yaml ]; then \ 39 - corepack enable pnpm && pnpm build; \ 40 - else \ 41 - echo "No lockfile found." && exit 1; \ 42 - fi 25 + RUN corepack enable pnpm 26 + RUN pnpm build 43 27 44 28 # Runner 45 29 FROM node:${NODE_VERSION} AS runner ··· 48 32 49 33 ENV NODE_ENV=production 50 34 ENV NEXT_TELEMETRY_DISABLED=1 35 + 36 + COPY --from=builder --chown=node:node /app/.drizzle ./.drizzle 37 + COPY --from=builder --chown=node:node /app/drizzle.config.ts ./ 51 38 52 39 COPY --from=builder --chown=node:node /app/public ./public 53 40
+3
app/(main)/blog/page.tsx
··· 1 1 import { db } from '@/lib/db/drizzle'; 2 2 import { postsTable } from '@/lib/db/schema'; 3 + 3 4 import Link from 'next/link'; 5 + 6 + export const dynamic = 'force-dynamic'; 4 7 5 8 export default async function Blog() { 6 9 const posts = await db
+21
app/(main)/links/page.tsx
··· 17 17 }; 18 18 19 19 export default function Links() { 20 + // TODO: no hotlinks! 20 21 const buttons: ButtonLink[] = [ 21 22 { 22 23 title: 'Volpeon', ··· 27 28 title: 'Pebble', 28 29 img: 'https://pebble.pet/button.gif', 29 30 href: 'https://pebble.pet/' 31 + }, 32 + { 33 + title: 'Hayden', 34 + img: 'https://hayden.moe/88x31/hayden.png', 35 + href: 'https://hayden.moe/' 36 + }, 37 + { 38 + title: 'notnite', 39 + img: 'https://notnite.com/buttons/notnite.png', 40 + href: 'https://notnite.com/' 41 + }, 42 + { 43 + title: 'essem', 44 + img: 'https://essem.space/images/sonabadge.png', 45 + href: 'https://essem.space/' 46 + }, 47 + { 48 + title: 'Ivory', 49 + img: 'https://ioletsgo.gay/assets/buttons/ivorybutton.gif', 50 + href: 'https://ioletsgo.gay/' 30 51 } 31 52 ]; 32 53
+2
docker-compose.yml
··· 3 3 build: 4 4 context: . 5 5 dockerfile: Dockerfile 6 + depends_on: 7 + - db 6 8 container_name: website 7 9 environment: 8 10 - NODE_ENV=production