Compare commits

..

No commits in common. "615361ece32ed12200bb602f1d113757449dbc52" and "81f76306789741737b9a917b79dea05bf7af54de" have entirely different histories.

8 changed files with 26 additions and 97 deletions

2
.gitignore vendored
View File

@ -1,7 +1,5 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
pgdata
# dependencies
/node_modules
/.pnp

View File

@ -1,28 +0,0 @@
FROM node:22-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
# Stage 1: Install dependencies
FROM base AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
# Stage 2: Build the application
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN pnpm run build
# Stage 3: Production server
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["pnpm", "run", "server.js"]

View File

@ -1,45 +1,16 @@
---
services:
web:
build: .
postgres:
image: postgres:12.18
restart: always
ports:
- "3000:3000"
- "5432:5432"
environment:
- NODE_ENV=production
depends_on:
- db
networks:
- my_network
db:
image: postgres:latest
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
# ports:
# this exposes the database to the public ... do we want that??
# - "5432:5432"
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=website
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- my_network
cron:
image: alpine/curl
command: >
sh -c "
echo '*/10 * * * * curl -X POST http://web:3000/db/clear' > /etc/crontabs/root && \
crond -f -l 2
"
depends_on:
- web
networks:
- my_network
- ial-website-data:/var/lib/postgresql/data
volumes:
postgres_data:
networks:
my_network:
name: my_network
driver: bridge
ial-website-data:

View File

@ -3,8 +3,6 @@ import {withPayload} from "@payloadcms/next/withPayload";
const nextConfig: NextConfig = {
/* config options here */
output: "standalone",
compress: false,
};
export default withPayload(nextConfig);

View File

@ -3,9 +3,9 @@
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"dev": "next dev --turbo",
"build": "next build",
"start": "node .next/standalone/server.js",
"start": "next start",
"lint": "next lint",
"payload": "cross-env PAYLOAD_CONFIG_PATH=./payload.config.ts payload"
},
@ -16,7 +16,6 @@
"@payloadcms/next": "^3.35.1",
"@payloadcms/richtext-lexical": "^3.35.1",
"cross-env": "^7.0.3",
"dayjs": "^1.11.13",
"graphql": "^16.10.0",
"motion": "^12.7.4",
"next": "15.2.4",

8
pnpm-lock.yaml generated
View File

@ -23,9 +23,6 @@ importers:
cross-env:
specifier: ^7.0.3
version: 7.0.3
dayjs:
specifier: ^1.11.13
version: 1.11.13
graphql:
specifier: ^16.10.0
version: 16.10.0
@ -1312,9 +1309,6 @@ packages:
dateformat@4.6.3:
resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
@ -3716,8 +3710,6 @@ snapshots:
dateformat@4.6.3: {}
dayjs@1.11.13: {}
debug@4.4.0:
dependencies:
ms: 2.1.3

View File

@ -1,7 +1,7 @@
import Button from "~/components/ui/Button";
import Button from "@/components/ui/button";
import prisma from "@/lib/prisma";
import { ChevronRightIcon } from "@heroicons/react/20/solid";
// import dayjs from "dayjs";
import dayjs from "dayjs";
export default function News() {
return (
@ -26,20 +26,20 @@ export default function News() {
}
async function Gallery() {
// const news = await prisma.news.findMany({
// where: {
// draft: false,
// },
// orderBy: {
// date: "desc",
// },
// take: 3,
// });
const news = await prisma.news.findMany({
where: {
draft: false,
},
orderBy: {
date: "desc",
},
take: 3,
});
// TODO: parse markdown
return (
<div className="flex flex-col lg:grid lg:grid-cols-3 place-items-start gap-10 lg:gap-20">
{/* {news.map((item) => (
{news.map((item) => (
<div key={item.id} className="space-y-2 lg:space-y-4">
<div className="text-sm text-accent-700">
{dayjs(item.date).format("DD/MM/YYYY")}
@ -53,7 +53,7 @@ async function Gallery() {
Read more <ChevronRightIcon className="h-5 w-5 ml-2" />
</Button>
</div>
))} */}
))}
</div>
);
}

View File

@ -20,7 +20,6 @@
],
"paths": {
"@/*": ["./src/*"],
"~/*": ["./src/app/(frontend)/*"],
"@payload-config": ["./payload.config.ts"]
}
},