diff --git a/compose.yml b/compose.yml index f548507..3929dd1 100644 --- a/compose.yml +++ b/compose.yml @@ -30,6 +30,7 @@ services: command: bun run dev --host environment: - ORIGIN=http://localhost + - DATABASE_URL=${DATABASE_URL} labels: - "traefik.enable=true" - "traefik.http.routers.localhost.rule=Host(`localhost`)" diff --git a/packages/web/Dockerfile b/packages/web/Dockerfile index 96e24e4..7cc898f 100644 --- a/packages/web/Dockerfile +++ b/packages/web/Dockerfile @@ -1,22 +1,24 @@ -FROM node:18 AS build +FROM oven/bun AS builder WORKDIR /app +COPY package.json bun.lockb ./ -COPY package*.json . - -RUN npm ci - +RUN bun install COPY . . -RUN npm run build -RUN npm prune --production -FROM node:18 AS run +RUN bun run build + +RUN bunx drizzle-kit push + + + +FROM oven/bun + +WORKDIR /app +COPY --from=builder /app ./ + +EXPOSE 90 ENV NODE_ENV=production -WORKDIR /app -COPY --from=build /app/build ./build -COPY --from=build /app/package.json ./package.json -COPY --from=build /app/node_modules ./node_modules -RUN ulimit -c unlimited -ENTRYPOINT ["node", "build"] +CMD ["bun", "run", "preview", "--host", "--port=80"] diff --git a/packages/web/bun.lockb b/packages/web/bun.lockb index ee1c03f..1e7fd75 100755 Binary files a/packages/web/bun.lockb and b/packages/web/bun.lockb differ diff --git a/packages/web/drizzle.config.ts b/packages/web/drizzle.config.ts index 68c7c1c..af245bf 100644 --- a/packages/web/drizzle.config.ts +++ b/packages/web/drizzle.config.ts @@ -7,6 +7,10 @@ export default defineConfig({ verbose: true, strict: true, dbCredentials: { - url: 'postgresql://postgres:postgres@localhost:5432/db' + host: 'vash-db.c0n0e8svjact.eu-west-1.rds.amazonaws.com', + user: 'vash', + password: '-Gl(WO[45ISyqW6R7vy3DMY2x1a|', + database: 'personal-website-db', + port: 5432, } }); diff --git a/packages/web/package.json b/packages/web/package.json index 4b1d3e9..785f74b 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -23,6 +23,7 @@ "@sveltejs/kit": "^2.15.2", "@sveltejs/vite-plugin-svelte": "^5.0.3", "@types/eslint": "9.6.1", + "@types/pg": "^8.11.10", "autoprefixer": "^10.4.20", "drizzle-kit": "^0.30.1", "eslint": "9.17.0", @@ -44,6 +45,6 @@ "dependencies": { "@sveltejs/adapter-node": "^5.2.11", "drizzle-orm": "^0.38.3", - "postgres": "^3.4.5" + "pg": "^8.13.1" } } diff --git a/packages/web/src/lib/db/index.ts b/packages/web/src/lib/db/index.ts index d386632..f7707fa 100644 --- a/packages/web/src/lib/db/index.ts +++ b/packages/web/src/lib/db/index.ts @@ -1,8 +1,19 @@ import * as schema from './schema' -import { drizzle } from 'drizzle-orm/postgres-js'; -import postgres from 'postgres'; +import { drizzle } from 'drizzle-orm/node-postgres'; +import { DB_HOST, DB_USER, DB_PASSWORD } from '$env/static/private'; -const client = postgres(process.env.DATABASE_URL!); -export const db = drizzle(client, { schema }); +export const db = drizzle({ + schema, + connection: { + host: DB_HOST, + user: DB_USER, + password: DB_PASSWORD, + database: 'personal-website-db', + port: 5432, + ssl: { + rejectUnauthorized: false + } + } +});