Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,48 @@ out/
**/out/
dist/
**/dist/
# Logs
npm-debug.log*
pnpm-debug.log*
.pnpm-debug.log*
yarn-debug.log*
yarn-error.log*

# OS junk
.DS_Store
Thumbs.db

# Editor settings
.vscode
.idea

# Coverage and test output
coverage/
**/coverage/
*.lcov
.junit/
test-results/

# Caches and build artifacts
.cache/
**/.cache/
storybook-static/
*storybook.log
*.tsbuildinfo

# Local env and secrets
.env.local
.env.development.local
.env.test.local
.env.production.local
.secrets
tmp/
temp/

# Database/cache dumps
*.rdb
*.rdb.gz

# Misc
*.pem
*.key
11 changes: 7 additions & 4 deletions .github/workflows/pull-request-build-lint-web-apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,17 @@ jobs:
with:
node-version-file: ".nvmrc"

- name: Enable Corepack and pnpm
run: corepack enable pnpm

- name: Install dependencies
run: yarn install --frozen-lockfile
run: pnpm install --frozen-lockfile

- name: Lint web apps
run: yarn check:lint
run: pnpm run check:lint

- name: Check format
run: yarn check:format
run: pnpm run check:format

- name: Build apps
run: yarn build
run: pnpm run build
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ out/
.DS_Store
*.pem
.history
tsconfig.tsbuildinfo

# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-debug.log*

# Local env files
Expand Down Expand Up @@ -60,6 +62,7 @@ node_modules/
assets/dist/
npm-debug.log
yarn-error.log
pnpm-debug.log

# Editor directories and files
.idea
Expand All @@ -75,10 +78,9 @@ package-lock.json

# lock files
package-lock.json
pnpm-lock.yaml
pnpm-workspace.yaml

.npmrc


.secrets
tmp/

Expand Down
37 changes: 37 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Enforce pnpm workspace behavior and allow Turbo's lifecycle hooks if scripts are disabled
# This repo uses pnpm with workspaces.

# Prefer linking local workspace packages when available
prefer-workspace-packages=true
link-workspace-packages=true
shared-workspace-lockfile=true

# Make peer installs smoother across the monorepo
auto-install-peers=true
strict-peer-dependencies=false

# If scripts are disabled (e.g., CI with --ignore-scripts), allowlisted packages can still run their hooks
# Turbo occasionally performs postinstall tasks for optimal performance
# moved to pnpm-workspace.yaml: onlyBuiltDependencies (e.g., allow turbo)

public-hoist-pattern[]=eslint
public-hoist-pattern[]=prettier
public-hoist-pattern[]=typescript

# Enforce Node version for consistent installs
use-node-version=22.18.0

Comment on lines +21 to +23
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Align Node version across .npmrc and .nvmrc to avoid install-time mismatches

use-node-version=22.18.0 is strict. If .nvmrc differs, pnpm installs can fail. Ensure both match and CI uses the same Node.

Run to compare:


🏁 Script executed:

#!/bin/bash
echo "nvmrc: $(cat .nvmrc 2>/dev/null || echo missing)"
echo "npmrc use-node-version: $(rg -n '^use-node-version=' .npmrc | sed 's/.*=//')"

Length of output: 179


Align Node versions across .nvmrc and .npmrc

Our verification shows:

  • .nvmrc: lts/jod
  • .npmrc (use-node-version): 22.18.0

Since pnpm’s use-node-version check is strict, mismatched values will cause install failures in CI or on developers’ machines. Please update one of the following so both files specify the same version:

• Change .nvmrc → 22.18.0
• Or set use-node-version=lts/jod in .npmrc (if you intend to rely on the LTS alias)

After updating, ensure your CI pipeline uses this same Node version.

🤖 Prompt for AI Agents
In .npmrc around lines 23 to 25, the Node version set (use-node-version=22.18.0)
conflicts with .nvmrc (lts/jod); update one of them so both match — either
change .nvmrc to "22.18.0" or change .npmrc to "use-node-version=lts/jod" — then
verify and align the CI/node runtime configuration to use the same version
string you choose.

# Reproducible installs across CI and dev
prefer-frozen-lockfile=true

# Prefer resolving to highest versions in monorepo to reduce duplication
resolution-mode=highest

# Speed up native module builds by caching side effects
side-effects-cache=true

# Speed up local dev by reusing local store when possible
prefer-offline=true

# Ensure workspace protocol is used when adding internal deps
save-workspace-protocol=true
1 change: 0 additions & 1 deletion .yarnrc.yml

This file was deleted.

2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ docker compose -f docker-compose-local.yml up
4. Start web apps:

```bash
yarn dev
pnpm dev
```

5. Open your browser to http://localhost:3001/god-mode/ and register yourself as instance admin
Expand Down
19 changes: 14 additions & 5 deletions apps/admin/Dockerfile.admin
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
# syntax=docker/dockerfile:1.7
FROM node:22-alpine AS base

# Setup pnpm package manager with corepack and configure global bin directory for caching
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable

# *****************************************************************************
# STAGE 1: Build the project
# *****************************************************************************
FROM base AS builder
RUN apk add --no-cache libc6-compat
WORKDIR /app

RUN yarn global add turbo
ARG TURBO_VERSION=2.5.6
RUN corepack enable pnpm && pnpm add -g turbo@${TURBO_VERSION}
COPY . .

RUN turbo prune --scope=admin --docker
Expand All @@ -22,11 +29,13 @@ WORKDIR /app

COPY .gitignore .gitignore
COPY --from=builder /app/out/json/ .
COPY --from=builder /app/out/yarn.lock ./yarn.lock
RUN yarn install --network-timeout 500000
COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
RUN corepack enable pnpm
RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store pnpm fetch --store-dir=/pnpm/store

COPY --from=builder /app/out/full/ .
COPY turbo.json turbo.json
RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store pnpm install --offline --frozen-lockfile --store-dir=/pnpm/store

ARG NEXT_PUBLIC_API_BASE_URL=""
ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
Expand All @@ -49,7 +58,7 @@ ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL
ENV NEXT_TELEMETRY_DISABLED=1
ENV TURBO_TELEMETRY_DISABLED=1

RUN yarn turbo run build --filter=admin
RUN pnpm turbo run build --filter=admin

# *****************************************************************************
# STAGE 3: Copy the project and start it
Expand Down Expand Up @@ -91,4 +100,4 @@ ENV TURBO_TELEMETRY_DISABLED=1

EXPOSE 3000

CMD ["node", "apps/admin/server.js"]
CMD ["node", "apps/admin/server.js"]
6 changes: 3 additions & 3 deletions apps/admin/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ WORKDIR /app

COPY . .

RUN yarn global add turbo
RUN yarn install
RUN corepack enable pnpm && pnpm add -g turbo
RUN pnpm install

ENV NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode"

EXPOSE 3000

VOLUME [ "/app/node_modules", "/app/admin/node_modules" ]

CMD ["yarn", "dev", "--filter=admin"]
CMD ["pnpm", "dev", "--filter=admin"]
23 changes: 12 additions & 11 deletions apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,14 @@
},
"dependencies": {
"@headlessui/react": "^1.7.19",
"@plane/constants": "*",
"@plane/hooks": "*",
"@plane/propel": "*",
"@plane/services": "*",
"@plane/types": "*",
"@plane/ui": "*",
"@plane/utils": "*",
"@plane/constants": "workspace:*",
"@plane/hooks": "workspace:*",
"@plane/propel": "workspace:*",
"@plane/services": "workspace:*",
"@plane/types": "workspace:*",
"@plane/ui": "workspace:*",
"@plane/utils": "workspace:*",
"@tailwindcss/typography": "^0.5.9",
"@types/lodash": "^4.17.0",
"autoprefixer": "10.4.14",
"axios": "1.11.0",
"lodash": "^4.17.21",
Expand All @@ -39,13 +38,15 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hook-form": "7.51.5",
"sharp": "^0.33.5",
"swr": "^2.2.4",
"uuid": "^9.0.1"
},
"devDependencies": {
"@plane/eslint-config": "*",
"@plane/tailwind-config": "*",
"@plane/typescript-config": "*",
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@types/lodash": "^4.17.6",
"@types/node": "18.16.1",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.2.18",
Expand Down
6 changes: 3 additions & 3 deletions apps/live/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ RUN apk add --no-cache libc6-compat
WORKDIR /app

COPY . .
RUN yarn global add turbo
RUN yarn install
RUN corepack enable pnpm && pnpm add -g turbo
RUN pnpm install
EXPOSE 3003

ENV TURBO_TELEMETRY_DISABLED=1

VOLUME [ "/app/node_modules", "/app/live/node_modules"]

CMD ["yarn","dev", "--filter=live"]
CMD ["pnpm","dev", "--filter=live"]
21 changes: 15 additions & 6 deletions apps/live/Dockerfile.live
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# syntax=docker/dockerfile:1.7
FROM node:22-alpine AS base

# Setup pnpm package manager with corepack and configure global bin directory for caching
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable

# *****************************************************************************
# STAGE 1: Prune the project
# *****************************************************************************
Expand All @@ -9,9 +15,10 @@ RUN apk update
RUN apk add --no-cache libc6-compat
# Set working directory
WORKDIR /app
RUN yarn global add turbo
ARG TURBO_VERSION=2.5.6
RUN corepack enable pnpm && pnpm add -g turbo@${TURBO_VERSION}
COPY . .
RUN turbo prune live --docker
RUN turbo prune --scope=live --docker

# *****************************************************************************
# STAGE 2: Install dependencies & build the project
Expand All @@ -25,16 +32,18 @@ WORKDIR /app
# First install dependencies (as they change less often)
COPY .gitignore .gitignore
COPY --from=builder /app/out/json/ .
COPY --from=builder /app/out/yarn.lock ./yarn.lock
RUN yarn install
COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
RUN corepack enable pnpm
RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store pnpm fetch --store-dir=/pnpm/store

# Build the project and its dependencies
COPY --from=builder /app/out/full/ .
COPY turbo.json turbo.json
RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store pnpm install --offline --frozen-lockfile --store-dir=/pnpm/store

ENV TURBO_TELEMETRY_DISABLED=1

RUN yarn turbo build --filter=live
RUN pnpm turbo run build --filter=live

# *****************************************************************************
# STAGE 3: Run the project
Expand All @@ -51,4 +60,4 @@ ENV TURBO_TELEMETRY_DISABLED=1

EXPOSE 3000

CMD ["node", "live/server.js"]
CMD ["node", "live/server.js"]
10 changes: 5 additions & 5 deletions apps/live/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"@hocuspocus/extension-logger": "^2.15.0",
"@hocuspocus/extension-redis": "^2.15.0",
"@hocuspocus/server": "^2.15.0",
"@plane/editor": "*",
"@plane/types": "*",
"@plane/editor": "workspace:*",
"@plane/types": "workspace:*",
"@tiptap/core": "^2.22.3",
"@tiptap/html": "^2.22.3",
"axios": "1.11.0",
Expand All @@ -46,15 +46,15 @@
"yjs": "^13.6.20"
},
"devDependencies": {
"@plane/eslint-config": "*",
"@plane/typescript-config": "*",
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@types/compression": "1.8.1",
"@types/cors": "^2.8.17",
"@types/dotenv": "^8.2.0",
"@types/express": "^4.17.23",
"@types/express-ws": "^3.0.5",
"@types/node": "^20.14.9",
"@types/pino-http": "^5.8.4",
"@types/uuid": "^9.0.1",
"concurrently": "^9.0.1",
"nodemon": "^3.1.7",
"ts-node": "^10.9.2",
Expand Down
3 changes: 1 addition & 2 deletions apps/live/src/core/helpers/logger.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { pinoHttp } from "pino-http";
import { Logger } from "pino";

const transport = {
target: "pino-pretty",
Expand Down Expand Up @@ -37,4 +36,4 @@ export const logger = pinoHttp({
},
});

export const manualLogger: Logger = logger.logger;
export const manualLogger: typeof logger.logger = logger.logger;
2 changes: 0 additions & 2 deletions apps/space/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
Expand Down
Loading
Loading