Skip to content

draft next #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 177 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
0748cd7
feat: migrate to nuxt ui pro dashboard
imrim12 Dec 13, 2024
392f0c0
feat: add logto as user management
imrim12 Dec 14, 2024
3ee4c55
feat: auto sidebar navigation items
Dec 15, 2024
413e4df
feat: prepare mock data to codebase
imrim12 Dec 15, 2024
ebcd184
wip: nuxt content
imrim12 Dec 16, 2024
a560245
fix: prerender is broken
imrim12 Dec 18, 2024
0de34b5
fix: use external link for authentication redirection
imrim12 Dec 18, 2024
832600f
feat: change content
imrim12 Dec 18, 2024
f071ddc
feat: add @nuxthub/core
imrim12 Dec 18, 2024
676aa8d
fix: build
imrim12 Dec 18, 2024
d28e8d8
chore: deploy with github
imrim12 Dec 18, 2024
93c5cd0
chore: deploy with github
imrim12 Dec 18, 2024
01ef70d
fix: deployment
imrim12 Dec 18, 2024
698b182
fix: deployment
imrim12 Dec 18, 2024
67af777
fix: deployment
imrim12 Dec 18, 2024
d4fdf40
fix: deployment
imrim12 Dec 18, 2024
c89e10f
fix: nitro warning
imrim12 Dec 18, 2024
a5c0032
fix: deployment
imrim12 Dec 18, 2024
91a7a37
fix: deployment
imrim12 Dec 18, 2024
8787e07
fix: deployment
imrim12 Dec 18, 2024
0b5b237
fix: deployment
imrim12 Dec 18, 2024
33a01f0
fix: deployment
imrim12 Dec 18, 2024
6fda1b1
feat: sync assets to s3
imrim12 Dec 19, 2024
cf88725
fix: cors cloudfront handling
imrim12 Dec 20, 2024
09f4eb6
fix: cors cloudfront handling
imrim12 Dec 20, 2024
d49a87f
feat: add csrf token
imrim12 Dec 20, 2024
3e2ddbe
docs: add installation
imrim12 Dec 25, 2024
6123a41
docs: add blog 2
imrim12 Dec 25, 2024
7c18853
docs: add blog 3
imrim12 Dec 25, 2024
5987ed6
docs: add blog 4
imrim12 Dec 25, 2024
8d627a6
docs: add blog 5
imrim12 Dec 25, 2024
81ea99f
docs: add blog 6
imrim12 Dec 25, 2024
e2ff415
docs: add blog 6
imrim12 Dec 25, 2024
0ab7de7
fix: disable crawl links
imrim12 Dec 25, 2024
8fc4b13
fix: md lint
imrim12 Dec 25, 2024
5a5d7e9
feat: bump packages and publish to npm
imrim12 Dec 26, 2024
b80985f
fix: github workflow
imrim12 Dec 27, 2024
f6dc8e3
feat: upgrade packages and restruct payment utils folder
imrim12 Dec 28, 2024
667a6cc
chore: update registry
imrim12 Dec 28, 2024
4344e00
chore: remove auto release
imrim12 Dec 28, 2024
62c297d
fix: page path
imrim12 Dec 28, 2024
2d91ec6
chore: publish fix page path
imrim12 Dec 29, 2024
66e4bc7
fix: import from alias
imrim12 Dec 29, 2024
f995df5
fix: create payment based on logto
minhcu Dec 30, 2024
cf77d6c
fix: theme color
imrim12 Jan 2, 2025
e355a34
chore: remove hqstudio
imrim12 Jan 2, 2025
0c53e67
fix: disable sentry when token not available
imrim12 Jan 2, 2025
bc4b2ea
fix: remove nuxt schema
imrim12 Jan 2, 2025
907596a
fix: cannot authorize user scopes
imrim12 Jan 6, 2025
058cd46
feat: update user profile
imrim12 Jan 8, 2025
efd2d9c
feat: add authentication to update profile api
imrim12 Jan 12, 2025
dc13e3c
chore: cleanup opiniated pages
imrim12 Jan 15, 2025
6db10ec
feat: add subscription page
prd-y-nguyen Feb 10, 2025
f6b1757
fix: change 3rd clients getter to runtime
prd-y-nguyen Feb 10, 2025
cbb2450
feat: migrate subscription management page
huynamboz Feb 10, 2025
46d1094
feat: migrate billing & plan page
huynamboz Feb 14, 2025
77d3fa8
chore: sort prices asc
huynamboz Feb 14, 2025
53572c8
chore: refactor PricingPlan components
huynamboz Feb 16, 2025
8d97593
fix: payment error handling
minhcu Feb 11, 2025
8630e9b
fix: wrong col name
minhcu Feb 11, 2025
db638e2
feat: credit topup
minhcu Feb 13, 2025
8d3bd39
chore: add typesafe for url processing
imrim12 Feb 20, 2025
4675c0d
feat: feature notification
NguyenDucTruyen Jan 19, 2025
d0ae229
feat: feature notification change
NguyenDucTruyen Jan 21, 2025
bbe6de1
feat: feature notification change
NguyenDucTruyen Jan 21, 2025
de72418
fix: resolve pr's comment
NguyenDucTruyen Feb 17, 2025
d88b0ad
chore: minimize env credentials
imrim12 Feb 20, 2025
71aa269
fix: update account
imrim12 Feb 20, 2025
aeadf6f
chore: refactor stripe product id
huynamboz Feb 21, 2025
cf297d1
fix: products and prices api
imrim12 Feb 21, 2025
f04f719
chore: use store signin method
imrim12 Feb 22, 2025
3dada28
feat: add features to the credit packages
imrim12 Feb 22, 2025
dc49fd9
fix: add eslint config package
imrim12 Feb 22, 2025
3636c63
feat: add currency to credit_packages
imrim12 Feb 22, 2025
85da4d0
feat: add title and desc to the credit package
imrim12 Feb 22, 2025
5f77b8e
fix: credit issues
imrim12 Feb 23, 2025
0053816
chore: remove redundant package
imrim12 Feb 23, 2025
8d73ec6
feat: add feature flag to navbar
imrim12 Feb 23, 2025
05f65ca
fix: avoid duplicate db client import
imrim12 Feb 23, 2025
3ac1c6d
fix: oh no it does not work, fallback
imrim12 Feb 23, 2025
ff8dd52
fix: feature flag env not working
imrim12 Feb 23, 2025
65adb96
fix: app-header
imrim12 Mar 2, 2025
ed4e4b5
feat: remove hard coded cdn url
imrim12 Mar 9, 2025
4d9db34
feat: add healthcheck
imrim12 Mar 10, 2025
f6aedd9
fix: use logto composable instead of store
imrim12 Mar 12, 2025
ff9ee24
fix: remember, do not enable cache for all route, like wtf
imrim12 Mar 12, 2025
6fbb83c
chore: bump version
imrim12 Mar 12, 2025
61b11bc
fix: app redirection after login callback
imrim12 Mar 12, 2025
c569216
chore: add deployment id
imrim12 Mar 12, 2025
f3be245
chore: add seo title
imrim12 Mar 12, 2025
cec179d
chore: disable crsf for payment webhook
imrim12 Mar 12, 2025
3e4f342
fix: payos
imrim12 Mar 13, 2025
e5ced7f
fix: clean url double slashes
imrim12 Mar 13, 2025
f7e2b0c
fix: error handling and package order
imrim12 Mar 13, 2025
8c1b87b
feat: update credit
imrim12 Mar 13, 2025
d82edc3
feat: add order relationship
imrim12 Mar 14, 2025
fc60ee1
fix: add credit on webhook receive
imrim12 Mar 14, 2025
38aa918
chore: add webhook log
imrim12 Mar 14, 2025
f72e7e6
feat: add payos return url
imrim12 Mar 14, 2025
c00abd4
fix: column on database doesnot have default value
imrim12 Mar 14, 2025
f743b4b
chore: add payos runtime env
imrim12 Mar 14, 2025
e39f1c7
feat: nuxt ui 3 stable
imrim12 Mar 15, 2025
c7c7e65
feat: nuxt ui 3 stable
imrim12 Mar 17, 2025
2f6743d
chore: optimize store usage
imrim12 Mar 18, 2025
d86f8fa
chore: cleanup notificaiton
imrim12 Mar 18, 2025
5a27b38
chore: cleanup redundant components
imrim12 Mar 18, 2025
4c66e48
feat: releasing version 2 with nuxt ui
imrim12 Mar 18, 2025
21dee86
feat: add app event bus for credit and layout quick action
imrim12 Mar 18, 2025
f11a0ba
fix: check for empty notifications
imrim12 Mar 20, 2025
b625339
fix: drop team support for the theme
imrim12 Mar 20, 2025
ba86f1d
chore: refactor notifications wip
imrim12 Mar 23, 2025
58491a7
feat: add credit topup experience
imrim12 Mar 24, 2025
7ff16ac
fix: currency code
imrim12 Mar 25, 2025
6ac11e0
fix: topup modal width
imrim12 Mar 25, 2025
ca24658
chore: remove built dependencies
imrim12 Mar 26, 2025
9533ad3
fix: redis max retry per request
imrim12 Mar 26, 2025
f5a7b7a
chore: disable ratelimiter
imrim12 Mar 26, 2025
560666c
chore: prioritize upstash storage
imrim12 Mar 26, 2025
ad4788d
fix: pricing content
imrim12 Mar 27, 2025
228452f
chore: remove default og meta
imrim12 Mar 29, 2025
2651550
fix: nuxt security
imrim12 Mar 29, 2025
889fc23
chore: cleanup prepare script
imrim12 Apr 1, 2025
40dc3a3
fix: topup dialog style
imrim12 Apr 2, 2025
e67a75a
fix: allow negative credit number
imrim12 Apr 2, 2025
309b165
chore: add more logging to payment webhook
imrim12 Apr 7, 2025
4209bd8
fix: duplicate return url
imrim12 Apr 7, 2025
c69b5a2
feat: add logger
imrim12 Apr 8, 2025
3ac0ca5
chore: refactor logger and webhook
imrim12 Apr 8, 2025
ae2c860
feat: add user_profiles schema
imrim12 Apr 9, 2025
e21eca1
fix: payment works like shit
imrim12 Apr 10, 2025
b12ea91
feat: wrap all text in function
huynam-dana Apr 10, 2025
ee2a0ee
feat: add logger to error catching
imrim12 Apr 10, 2025
070228f
fix: number casting
imrim12 Apr 10, 2025
facb090
fix: add missing translations
imrim12 Apr 13, 2025
0aaa583
chore: auto-import server composables
imrim12 Apr 13, 2025
50dae7e
chore: update logger format
imrim12 Apr 13, 2025
3f9f824
feat: get logto user by id
imrim12 Apr 13, 2025
a89842b
chore: bump version
imrim12 Apr 13, 2025
7d89d84
fix: nodemailer config
imrim12 Apr 14, 2025
6de60ba
chore: improve topup dialog UX
imrim12 Apr 15, 2025
66f9112
chore: rename drizzle schemas
imrim12 Apr 15, 2025
7b2c334
chore: logto less dependent
imrim12 Apr 15, 2025
cb9f525
feat: logto webhook sync
imrim12 Apr 16, 2025
583f30f
chore: verify webhook
imrim12 Apr 17, 2025
030d96c
chore: error handling
imrim12 Apr 17, 2025
5b6192b
chore: reduce logto call in UI, fix webhook
imrim12 Apr 17, 2025
fa42c8a
chore: resolve userId in APIs
imrim12 Apr 17, 2025
475999e
chore: bump package version
imrim12 Apr 17, 2025
14a2738
fix: get session from database
imrim12 Apr 19, 2025
e7b9d0f
fix: add translation
imrim12 Apr 20, 2025
9e340b4
chore: update user_id fk back to uuid
imrim12 Apr 20, 2025
e301d37
fix: lose credit on postsignin
imrim12 Apr 21, 2025
9696a5e
fix: cannot update credit
imrim12 Apr 22, 2025
b052b5e
feat: support discount
imrim12 Apr 23, 2025
a73d332
feat: add product status
imrim12 Apr 23, 2025
b57c92c
fix: transaction mismatch
imrim12 Apr 27, 2025
22c19d3
fix: cannot get device token
imrim12 Apr 27, 2025
27d4147
chore: update numeric column to integer
imrim12 May 7, 2025
651bfdb
chore: update price discount
h-vien May 8, 2025
373719b
chore: handle price discount
h-vien May 8, 2025
ede307e
feat: improve logging with winston
imrim12 May 13, 2025
0f313bd
feat: add database backup task
imrim12 May 13, 2025
3c613f4
fix: exclude request logging for healthcheck api
imrim12 May 13, 2025
f1f8692
fix: some translations missing
imrim12 May 20, 2025
f1eb507
fix: some missing translations
imrim12 May 20, 2025
2357a94
fix: setting max width
imrim12 May 20, 2025
e11e859
fix: add notification messages
imrim12 May 20, 2025
596890d
feat: wip sepay
imrim12 May 24, 2025
dbb62f1
feat: checkout page
imrim12 May 24, 2025
948b161
fix: order code and i18n context
imrim12 May 25, 2025
eb344ab
feat: finalize sepay
imrim12 May 25, 2025
8587ba9
fix: checkout page not found
imrim12 May 25, 2025
bdefed6
fix: missing sepay logic in popup
imrim12 May 25, 2025
9ebd436
fix: cannot redirect to app
imrim12 May 25, 2025
f6a3018
feat: add reference system
imrim12 May 28, 2025
ce8204b
fix: cannot send email
imrim12 Jun 4, 2025
554cbaf
feat: add payment success hook
imrim12 Aug 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/node_modules/*
73 changes: 34 additions & 39 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,75 +1,59 @@
FEATURE_CREDIT=
FEATURE_SUBSCRIPTION=1
FEATURE_AUTHORIZATION=1
NUXT_APP_CDN_URL=

AUTH_MAX_AGE="2592000"
AUTH_SECRET=
NUXT_APP_FEEDBACK_URL=
NUXT_APP_SUPPORT_URL=

NUXT_PUBLIC_API_BASE_URL="https://thecodeorigin-nuxt.vercel.app"
NUXT_PUBLIC_APP_BASE_URL="https://thecodeorigin-nuxt.vercel.app"
NUXT_PUBLIC_APP_NAME="nuxt-template"

AWS_CLOUDFRONT_DOMAIN=

AWS_S3_ACCESS_KEY=
AWS_S3_BUCKET="nuxt-template"
AWS_S3_REGION=
AWS_S3_SECRET_ACCESS_KEY=

DOPPLER_CONFIG="dev_personal"
DOPPLER_ENVIRONMENT="dev"
DOPPLER_PROJECT="nuxt-template"

FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
FEATURE_AUTHORIZATION="1"
FEATURE_CREDIT="1"
FEATURE_SUBSCRIPTION="1"

FIREBASE_API_KEY=
FIREBASE_APP_ID=
FIREBASE_AUTH_DOMAIN=
FIREBASE_AUTH_PROVIDER_X509_CERT_URL="https://www.googleapis.com/oauth2/v1/certs"
FIREBASE_AUTH_URI="https://accounts.google.com/o/oauth2/auth"
FIREBASE_CLIENT_EMAIL=
FIREBASE_CLIENT_ID=
FIREBASE_CLIENT_X509_CERT_URL=
FIREBASE_DB_URL=
FIREBASE_KEY_PAIR=
FIREBASE_MEASUREMENT_ID=
FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_PRIVATE_KEY=
FIREBASE_PRIVATE_KEY_ID=
FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKET=
FIREBASE_TOKEN_URI="https://oauth2.googleapis.com/token"
FIREBASE_TYPE="service_account"
FIREBASE_UNIVERSE_DOMAIN="googleapis.com"

GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_TOKEN=
LOGTO_APP_ID=
LOGTO_APP_SECRET=
LOGTO_COOKIE_ENCRYPTION_KEY=
LOGTO_ENDPOINT=""

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
LOGTO_ADMIN_APP_ID=""
LOGTO_ADMIN_APP_SECRET=""

MONGODB_COLLECTION_NAME="nuxt-template-cache"
MONGODB_CONNECTION_STRING=
MONGODB_CONNECTION_STRING="mongodb://root:password@localhost:27017/nuxt-template?authSource=admin"
MONGODB_DATABASE_NAME="nuxt-template"

NODE_AUTH_TOKEN=

NUXT_PUBLIC_API_BASE_URL="/api"
NUXT_PUBLIC_APP_BASE_URL="http://localhost:3000"
NUXT_PUBLIC_APP_NAME="nuxt-template"
NUXT_PUBLIC_THEME_PRIMARY_COLOR="#e87f23"
NUXT_PUBLIC_THEME_PRIMARY_DARKEN_COLOR="#d97721"

POSTGRES_DB="postgres"
POSTGRES_HOST="localhost"
POSTGRES_HOSTNAME="nuxt-pg"
POSTGRES_PASSWORD="postgres"
POSTGRES_PORT="54321"
POSTGRES_USER="postgres"

REDIS_HOST=
REDIS_PASSWORD=
REDIS_PORT="14381"
REDIS_HOST="localhost"
REDIS_PASSWORD="secret"
REDIS_PORT="6379"
REDIS_USER="default"

SMTP_FROM="noreply@example.com"
SMTP_FROM="noreply@thecodeorigin.com"
SMTP_PASS=""
SMTP_PORT="1025"
SMTP_SERVER="localhost"
Expand All @@ -81,4 +65,15 @@ STRIPE_PRODUCT_LOOKUP_KEY=
STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
HOTJAR_ID=

VERCEL_ORG_ID=
VERCEL_PROJECT_ID=
VERCEL_TOKEN=

VNPAY_DISABLE_TEST_MODE=
VNPAY_HASHSECRET=
VNPAY_TMNCODE=

PAYOS_CLIENT_ID=
PAYOS_API_KEY=
PAYOS_CHECKSUM_KEY=
51 changes: 51 additions & 0 deletions .github/workflows/deploy-next.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Vercel Preview Deployment
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

on:
push:
branches:
- next

jobs:
Deploy-Next:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Corepack
shell: bash
run: corepack enable

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm

- name: Install dependencies
run: pnpm install

- name: Link Vercel Project
run: npx vercel link --yes --scope=${{ secrets.VERCEL_ORG_ID }} --project=${{ secrets.VERCEL_PROJECT_ID }} --token=${{ secrets.VERCEL_TOKEN }}

- name: Pull Vercel Environment Information
run: npx vercel env pull .env --yes --environment=preview --git-branch=next --token=${{ secrets.VERCEL_TOKEN }}

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_S3_REGION }}

- name: Build Project Artifacts
run: npx vercel build --yes --token=${{ secrets.VERCEL_TOKEN }}

- name: Upload assets to S3
run: aws s3 sync ./.vercel/output/static s3://${{ secrets.AWS_S3_BUCKET }}/assets --delete

- name: Deploy Project Artifacts to Vercel
run: npx vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
50 changes: 50 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Vercel Production Deployment
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
on:
push:
branches:
- main
jobs:
Deploy-Preview:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Corepack
shell: bash
run: corepack enable

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
registry-url: 'https://npm.pkg.github.com'
scope: '@thecodeorigin'

- name: Install dependencies
run: pnpm install

- name: Link Vercel Project
run: npx vercel link --yes --scope=${{ secrets.VERCEL_ORG_ID }} --project=${{ secrets.VERCEL_PROJECT_ID }} --token=${{ secrets.VERCEL_TOKEN }}

- name: Pull Vercel Environment Information
run: npx vercel pull .env --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_S3_REGION }}

- name: Build Project Artifacts
run: npx vercel build --yes --prod --token=${{ secrets.VERCEL_TOKEN }}

- name: Upload assets to S3
run: aws s3 sync ./.vercel/output/static s3://${{ secrets.AWS_S3_BUCKET }}/assets --delete

- name: Deploy Project Artifacts to Vercel
run: npx vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
39 changes: 0 additions & 39 deletions .github/workflows/release.yml

This file was deleted.

11 changes: 5 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ logs
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
!.vscode/app/settings.json
!.vscode/*.code-snippets
!.vscode/tours
.idea
Expand All @@ -53,12 +53,11 @@ public/mockServiceWorker.js
# Ignore the build directory
public/firebase-config.json

docker/postgres
docker/pgadmin

server/db/schemas/cjs
server/db/schemas/mjs
docker/*
!docker/.gitkeep

server/db/migrations

areas

.nx
5 changes: 4 additions & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ logs
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
!.vscode/app/settings.json
!.vscode/*.code-snippets
!.vscode/tours
.idea
Expand All @@ -55,5 +55,8 @@ public/firebase-config.json

docker/postgres
docker/pgadmin
docker/redis

areas

drizzle.config.ts
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
@thecodeorigin:registry=https://npm.pkg.github.com/
auto-install-peers=true
shamefully-hoist=true
package-manager-strict=false
14 changes: 0 additions & 14 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,6 @@
"plugins": [
"@stylistic/stylelint-plugin"
],
"overrides": [
{
"files": [
"**/*.scss"
],
"customSyntax": "postcss-scss"
},
{
"files": [
"**/*.vue"
],
"customSyntax": "postcss-html"
}
],
"rules": {
"@stylistic/max-line-length": [
220,
Expand Down
1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
"stylelint",
"touchless",
"triggerer",
"vuetify",
"nuxt"
],
"commentAnchors.tags.anchors": {
Expand Down
48 changes: 48 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Dockerfile
# Production-grade Dockerfile for Nuxt 3 with PNPM and Node 22 Alpine, multi-stage build
# --- Stage 1: Base Image Setup ---
FROM node:22-alpine AS base

# Set working directory
WORKDIR /app

# --- Stage 2: Dependencies Installation ---
FROM base AS builder

# Install pnpm globally
RUN npm install -g pnpm@latest

COPY patches ./
COPY scripts/ ./scripts
COPY .npmrc ./
COPY .nuxtignore ./
COPY package*.json ./
COPY pnpm-*.yaml ./
COPY *.config.ts ./
COPY tsconfig.json ./
COPY public/ ./public
COPY . .

# Install dependencies
RUN pnpm install
RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm build

FROM node:22-alpine AS production

# Set working directory
WORKDIR /app

RUN apk add --no-cache curl

# Copy the .output directory from the builder stage
COPY --from=builder /app/.output ./.output

COPY --from=builder /app/.env ./.env

ENV NITRO_HOST=0.0.0.0
ENV NITRO_PORT=3000

EXPOSE 3000

# Command to run the Nuxt application
CMD ["node", ".output/server/index.mjs"]
Loading
Loading