Sitelet https://github.com/NodeOps-app/paperclip/commit/481b3a46db404d039dbf1ea5f884600a8869b7bc
Skip to content

Commit 481b3a4

Browse files
forgottendevclaude
andcommitted
Add project scaffolding and infrastructure config
pnpm monorepo with shared packages, server, and UI workspaces. Includes Docker multi-stage build, Postgres compose, and root TypeScript/Vitest config. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0 parents  commit 481b3a4

10 files changed

Lines changed: 3973 additions & 0 deletions

‎.env.example‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
DATABASE_URL=postgres://paperclip:paperclip@localhost:5432/paperclip
2+
PORT=3100
3+
SERVE_UI=false

‎.gitignore‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
node_modules/
2+
dist/
3+
.env
4+
*.tsbuildinfo
5+
drizzle/meta/
6+
.vite/
7+
coverage/
8+
.DS_Store

‎.npmrc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
auto-install-peers=true

‎Dockerfile‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
FROM node:20-alpine AS base
2+
RUN corepack enable
3+
4+
FROM base AS deps
5+
WORKDIR /app
6+
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml .npmrc ./
7+
COPY packages/shared/package.json packages/shared/
8+
COPY packages/db/package.json packages/db/
9+
COPY server/package.json server/
10+
COPY ui/package.json ui/
11+
RUN pnpm install --frozen-lockfile
12+
13+
FROM base AS build
14+
WORKDIR /app
15+
COPY --from=deps /app/node_modules node_modules
16+
COPY --from=deps /app/packages/shared/node_modules packages/shared/node_modules
17+
COPY --from=deps /app/packages/db/node_modules packages/db/node_modules
18+
COPY --from=deps /app/server/node_modules server/node_modules
19+
COPY --from=deps /app/ui/node_modules ui/node_modules
20+
COPY . .
21+
RUN pnpm --filter @paperclip/ui build
22+
RUN pnpm --filter @paperclip/server build
23+
24+
FROM base AS production
25+
WORKDIR /app
26+
COPY --from=deps /app/node_modules node_modules
27+
COPY --from=deps /app/packages/shared/node_modules packages/shared/node_modules
28+
COPY --from=deps /app/packages/db/node_modules packages/db/node_modules
29+
COPY --from=deps /app/server/node_modules server/node_modules
30+
COPY --from=build /app/packages/shared packages/shared
31+
COPY --from=build /app/packages/db packages/db
32+
COPY --from=build /app/server/dist server/dist
33+
COPY --from=build /app/server/package.json server/package.json
34+
COPY --from=build /app/ui/dist ui/dist
35+
COPY package.json pnpm-workspace.yaml ./
36+
37+
EXPOSE 3100
38+
CMD ["node", "server/dist/index.js"]

‎docker-compose.yml‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
services:
2+
db:
3+
image: postgres:17-alpine
4+
environment:
5+
POSTGRES_USER: paperclip
6+
POSTGRES_PASSWORD: paperclip
7+
POSTGRES_DB: paperclip
8+
ports:
9+
- "5432:5432"
10+
volumes:
11+
- pgdata:/var/lib/postgresql/data
12+
13+
server:
14+
build: .
15+
ports:
16+
- "3100:3100"
17+
environment:
18+
DATABASE_URL: postgres://paperclip:paperclip@db:5432/paperclip
19+
PORT: "3100"
20+
SERVE_UI: "true"
21+
depends_on:
22+
- db
23+
24+
volumes:
25+
pgdata:

‎package.json‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "paperclip",
3+
"private": true,
4+
"type": "module",
5+
"scripts": {
6+
"dev": "pnpm run --parallel dev:server dev:ui",
7+
"dev:server": "pnpm --filter @paperclip/server dev",
8+
"dev:ui": "pnpm --filter @paperclip/ui dev",
9+
"build": "pnpm -r build",
10+
"typecheck": "pnpm -r typecheck",
11+
"test": "vitest",
12+
"test:run": "vitest run",
13+
"db:generate": "pnpm --filter @paperclip/db generate",
14+
"db:migrate": "pnpm --filter @paperclip/db migrate"
15+
},
16+
"devDependencies": {
17+
"typescript": "^5.7.3",
18+
"vitest": "^3.0.5"
19+
},
20+
"engines": {
21+
"node": ">=20"
22+
},
23+
"packageManager": "pnpm@9.15.4"
24+
}

0 commit comments

Comments
 (0)