config: add dockerfile (#214)

* config: add dockerfile

* feat: add working dockerfile for nest and next app with sqlite migration

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
This commit is contained in:
Manuel
2024-03-16 15:51:34 +01:00
committed by GitHub
parent a4951037e3
commit 98c353349a
13 changed files with 217 additions and 147 deletions

7
.dockerignore Normal file
View File

@@ -0,0 +1,7 @@
Dockerfile
.dockerignore
node_modules
npm-debug.log
README.md
.next
.git

3
.gitignore vendored
View File

@@ -14,6 +14,9 @@ coverage
out/
next-env.d.ts
# nest.js
apps/nestjs/dist
# nitro
.nitro/
.output/

73
Dockerfile Normal file
View File

@@ -0,0 +1,73 @@
FROM node:18-alpine AS base
FROM base AS builder
RUN apk add --no-cache libc6-compat
RUN apk update
# Set working directory
WORKDIR /app
COPY . .
RUN npm i -g turbo
RUN turbo prune @homarr/nextjs --docker --out-dir ./next-out
RUN turbo prune @homarr/nest --docker --out-dir ./nest-out
# Add lockfile and package.json's of isolated subworkspace
FROM base AS installer
RUN apk add --no-cache libc6-compat curl bash
RUN apk update
WORKDIR /app
# First install the dependencies (as they change less often)
COPY .gitignore .gitignore
COPY --from=builder /app/nest-out/json/ .
COPY --from=builder /app/nest-out/pnpm-lock.yaml ./pnpm-lock.yaml
RUN corepack enable pnpm && pnpm install --prod
RUN rm -rf node_modules/next
RUN rm -rf node_modules/typescript
RUN rm -rf node_modules/@babel
RUN rm -rf node_modules/esbuild
RUN rm -rf node_modules/@esbuild
RUN rm -rf node_modules/@typescript-eslint
RUN rm -rf node_modules/prettier
RUN rm -rf node_modules/webpack
RUN rm -rf node_modules/eslint
RUN rm -rf node_modules/@swc
RUN mv node_modules ./temp_node_modules
COPY --from=builder /app/next-out/json/ .
COPY --from=builder /app/next-out/pnpm-lock.yaml ./pnpm-lock.yaml
RUN corepack enable pnpm && pnpm install
# Build the project
COPY --from=builder /app/nest-out/full/ .
COPY --from=builder /app/next-out/full/ .
ARG SKIP_ENV_VALIDATION=true
RUN corepack enable pnpm && pnpm turbo run build
FROM base AS runner
WORKDIR /app
# Don't run production as root
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
USER nextjs
COPY --from=installer /app/apps/nextjs/next.config.mjs .
COPY --from=installer /app/apps/nextjs/package.json .
COPY --from=installer /app/temp_node_modules ./node_modules
COPY --from=installer --chown=nextjs:nodejs /app/apps/nestjs/dist ./apps/nestjs/dist
# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/.next/standalone ./
COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/.next/static ./apps/nextjs/.next/static
COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/public ./apps/nextjs/public
COPY --chown=nextjs:nodejs scripts/run.sh ./run.sh
COPY --chown=nextjs:nodejs packages/db/migrations ./db/migrations
COPY --chown=nextjs:nodejs packages/db/migrate.mjs ./db/migrate.mjs
ENV DB_URL='/app/db/db.sqlite'
CMD ["sh", "run.sh"]

View File

@@ -26,7 +26,9 @@
"nest-winston": "^1.9.4",
"reflect-metadata": "^0.2.1",
"rimraf": "^5.0.5",
"rxjs": "^7.8.1"
"rxjs": "^7.8.1",
"vite": "^5.1.6",
"vite-plugin-node": "^3.1.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
@@ -44,9 +46,7 @@
"supertest": "^6.3.4",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.4.2",
"vite": "^5.1.6",
"vite-plugin-node": "^3.1.0"
"typescript": "^5.4.2"
},
"eslintConfig": {
"root": true,

View File

@@ -4,6 +4,7 @@ import "@homarr/auth/env.mjs";
/** @type {import("next").NextConfig} */
const config = {
output: "standalone",
reactStrictMode: true,
/** Enables hot reloading for local packages without a build step */
transpilePackages: [

View File

@@ -53,7 +53,8 @@
"react-dom": "18.2.0",
"sass": "^1.72.0",
"superjson": "2.2.1",
"use-deep-compare-effect": "^1.8.1"
"use-deep-compare-effect": "^1.8.1",
"dotenv": "^16.4.5"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",

View File

@@ -13,6 +13,7 @@
"db:push": "pnpm -F db push",
"db:studio": "pnpm -F db studio",
"db:migration:generate": "pnpm -F db migration:generate",
"db:migration:run": "pnpm -F db migration:run",
"dev": "turbo dev --parallel",
"format": "turbo format --continue -- --cache --cache-location node_modules/.cache/.prettiercache",
"format:fix": "turbo format --continue -- --write --cache --cache-location node_modules/.cache/.prettiercache",

11
packages/db/migrate.mjs Normal file
View File

@@ -0,0 +1,11 @@
import Database from "better-sqlite3";
import { drizzle } from "drizzle-orm/better-sqlite3";
import { migrate } from "drizzle-orm/better-sqlite3/migrator";
const migrationsFolder = process.argv[2] ?? "./migrations";
const sqlite = new Database(process.env.DB_URL.replace("file:", ""));
const db = drizzle(sqlite);
migrate(db, { migrationsFolder });

View File

@@ -17,6 +17,7 @@
"lint": "eslint .",
"format": "prettier --check . --ignore-path ../../.gitignore",
"migration:generate": "drizzle-kit generate:sqlite",
"migration:run": "node ./migrate.mjs",
"push": "drizzle-kit push:sqlite",
"studio": "drizzle-kit studio",
"typecheck": "tsc --noEmit"
@@ -27,7 +28,8 @@
"@paralleldrive/cuid2": "^2.2.2",
"better-sqlite3": "^9.4.3",
"drizzle-orm": "^0.30.2",
"mysql2": "^3.9.2"
"mysql2": "^3.9.2",
"drizzle-kit": "^0.20.14"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
@@ -35,7 +37,6 @@
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/better-sqlite3": "7.6.9",
"dotenv-cli": "^7.4.1",
"drizzle-kit": "^0.20.14",
"eslint": "^8.57.0",
"prettier": "^3.2.5",
"typescript": "^5.4.2"

209
pnpm-lock.yaml generated
View File

@@ -77,6 +77,12 @@ importers:
rxjs:
specifier: ^7.8.1
version: 7.8.1
vite:
specifier: ^5.1.6
version: 5.1.6(@types/node@20.11.27)
vite-plugin-node:
specifier: ^3.1.0
version: 3.1.0(@swc/core@1.4.8)(vite@5.1.6)
devDependencies:
'@homarr/eslint-config':
specifier: workspace:^0.2.0
@@ -126,12 +132,6 @@ importers:
typescript:
specifier: ^5.4.2
version: 5.4.2
vite:
specifier: ^5.1.6
version: 5.1.6(@types/node@20.11.27)
vite-plugin-node:
specifier: ^3.1.0
version: 3.1.0(@swc/core@1.4.8)(vite@5.1.6)
apps/nextjs:
dependencies:
@@ -228,6 +228,9 @@ importers:
dayjs:
specifier: ^1.11.10
version: 1.11.10
dotenv:
specifier: ^16.4.5
version: 16.4.5
jotai:
specifier: ^2.7.0
version: 2.7.0(@types/react@18.2.66)(react@18.2.0)
@@ -441,6 +444,9 @@ importers:
better-sqlite3:
specifier: ^9.4.3
version: 9.4.3
drizzle-kit:
specifier: ^0.20.14
version: 0.20.14
drizzle-orm:
specifier: ^0.30.2
version: 0.30.2(@types/better-sqlite3@7.6.9)(better-sqlite3@9.4.3)(mysql2@3.9.2)(react@17.0.2)
@@ -463,9 +469,6 @@ importers:
dotenv-cli:
specifier: ^7.4.1
version: 7.4.1
drizzle-kit:
specifier: ^0.20.14
version: 0.20.14
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -1213,21 +1216,21 @@ packages:
resolution: {integrity: sha512-c5Hkm7MmQC2n5qAsKShjQrHoqlfGslB8+qWzsGGZ+2dHMRTNG60UuzalF0h0rvBax5uzPXuGkYLGaQ+TUX3yMw==}
dependencies:
superjson: 2.2.1
dev: true
dev: false
/@esbuild-kit/core-utils@3.3.2:
resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
dependencies:
esbuild: 0.18.20
source-map-support: 0.5.21
dev: true
dev: false
/@esbuild-kit/esm-loader@2.6.5:
resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
dependencies:
'@esbuild-kit/core-utils': 3.3.2
get-tsconfig: 4.7.2
dev: true
dev: false
/@esbuild/aix-ppc64@0.19.12:
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
@@ -1235,7 +1238,6 @@ packages:
cpu: [ppc64]
os: [aix]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm64@0.18.20:
@@ -1244,7 +1246,7 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/android-arm64@0.19.12:
@@ -1253,7 +1255,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-arm@0.18.20:
@@ -1262,7 +1263,7 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/android-arm@0.19.12:
@@ -1271,7 +1272,6 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-x64@0.18.20:
@@ -1280,7 +1280,7 @@ packages:
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/android-x64@0.19.12:
@@ -1289,7 +1289,6 @@ packages:
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-arm64@0.18.20:
@@ -1298,7 +1297,7 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/darwin-arm64@0.19.12:
@@ -1307,7 +1306,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-x64@0.18.20:
@@ -1316,7 +1314,7 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/darwin-x64@0.19.12:
@@ -1325,7 +1323,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-arm64@0.18.20:
@@ -1334,7 +1331,7 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/freebsd-arm64@0.19.12:
@@ -1343,7 +1340,6 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-x64@0.18.20:
@@ -1352,7 +1348,7 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/freebsd-x64@0.19.12:
@@ -1361,7 +1357,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm64@0.18.20:
@@ -1370,7 +1365,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-arm64@0.19.12:
@@ -1379,7 +1374,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm@0.18.20:
@@ -1388,7 +1382,7 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-arm@0.19.12:
@@ -1397,7 +1391,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ia32@0.18.20:
@@ -1406,7 +1399,7 @@ packages:
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-ia32@0.19.12:
@@ -1415,7 +1408,6 @@ packages:
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64@0.18.20:
@@ -1424,7 +1416,7 @@ packages:
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-loong64@0.19.12:
@@ -1433,7 +1425,6 @@ packages:
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-mips64el@0.18.20:
@@ -1442,7 +1433,7 @@ packages:
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-mips64el@0.19.12:
@@ -1451,7 +1442,6 @@ packages:
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ppc64@0.18.20:
@@ -1460,7 +1450,7 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-ppc64@0.19.12:
@@ -1469,7 +1459,6 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-riscv64@0.18.20:
@@ -1478,7 +1467,7 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-riscv64@0.19.12:
@@ -1487,7 +1476,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-s390x@0.18.20:
@@ -1496,7 +1484,7 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-s390x@0.19.12:
@@ -1505,7 +1493,6 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-x64@0.18.20:
@@ -1514,7 +1501,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/linux-x64@0.19.12:
@@ -1523,7 +1510,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/netbsd-x64@0.18.20:
@@ -1532,7 +1518,7 @@ packages:
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/netbsd-x64@0.19.12:
@@ -1541,7 +1527,6 @@ packages:
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/openbsd-x64@0.18.20:
@@ -1550,7 +1535,7 @@ packages:
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/openbsd-x64@0.19.12:
@@ -1559,7 +1544,6 @@ packages:
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/sunos-x64@0.18.20:
@@ -1568,7 +1552,7 @@ packages:
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/sunos-x64@0.19.12:
@@ -1577,7 +1561,6 @@ packages:
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-arm64@0.18.20:
@@ -1586,7 +1569,7 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/win32-arm64@0.19.12:
@@ -1595,7 +1578,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-ia32@0.18.20:
@@ -1604,7 +1586,7 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/win32-ia32@0.19.12:
@@ -1613,7 +1595,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-x64@0.18.20:
@@ -1622,7 +1603,7 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
dev: false
optional: true
/@esbuild/win32-x64@0.19.12:
@@ -1631,7 +1612,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
@@ -2328,14 +2308,13 @@ packages:
dependencies:
estree-walker: 2.0.2
picomatch: 2.3.1
dev: true
dev: false
/@rollup/rollup-android-arm-eabi@4.12.0:
resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-android-arm64@4.12.0:
@@ -2343,7 +2322,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.12.0:
@@ -2351,7 +2329,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-darwin-x64@4.12.0:
@@ -2359,7 +2336,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.12.0:
@@ -2367,7 +2343,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.12.0:
@@ -2375,7 +2350,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.12.0:
@@ -2383,7 +2357,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.12.0:
@@ -2391,7 +2364,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.12.0:
@@ -2399,7 +2371,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-linux-x64-musl@4.12.0:
@@ -2407,7 +2378,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.12.0:
@@ -2415,7 +2385,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.12.0:
@@ -2423,7 +2392,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.12.0:
@@ -2431,7 +2399,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@sinclair/typebox@0.27.8:
@@ -2444,7 +2411,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-x64@1.4.8:
@@ -2453,7 +2419,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm-gnueabihf@1.4.8:
@@ -2462,7 +2427,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-gnu@1.4.8:
@@ -2471,7 +2435,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-musl@1.4.8:
@@ -2480,7 +2443,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-gnu@1.4.8:
@@ -2489,7 +2451,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-musl@1.4.8:
@@ -2498,7 +2459,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-arm64-msvc@1.4.8:
@@ -2507,7 +2467,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-ia32-msvc@1.4.8:
@@ -2516,7 +2475,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-x64-msvc@1.4.8:
@@ -2525,7 +2483,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core@1.4.8:
@@ -2551,11 +2508,9 @@ packages:
'@swc/core-win32-arm64-msvc': 1.4.8
'@swc/core-win32-ia32-msvc': 1.4.8
'@swc/core-win32-x64-msvc': 1.4.8
dev: true
/@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
dev: true
/@swc/helpers@0.5.2:
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
@@ -2565,7 +2520,6 @@ packages:
/@swc/types@0.1.5:
resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
dev: true
/@t3-oss/env-core@0.9.2(typescript@5.4.2)(zod@3.22.4):
resolution: {integrity: sha512-KgWXljUTHgO3o7GMZQPAD5+P+HqpauMNNHowlm7V2b9IeMitSUpNKwG6xQrup/xARWHTdxRVIl0mSI4wCevQhQ==}
@@ -3183,7 +3137,6 @@ packages:
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
/@types/express-serve-static-core@4.17.43:
resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==}
@@ -4203,7 +4156,7 @@ packages:
/camelcase@7.0.1:
resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
engines: {node: '>=14.16'}
dev: true
dev: false
/caniuse-lite@1.0.30001587:
resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==}
@@ -4252,7 +4205,6 @@ packages:
/chalk@5.3.0:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
dev: true
/change-case@3.1.0:
resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==}
@@ -4333,7 +4285,7 @@ packages:
es6-iterator: 2.0.3
memoizee: 0.4.15
timers-ext: 0.1.7
dev: true
dev: false
/cli-cursor@3.1.0:
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
@@ -4456,7 +4408,7 @@ packages:
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
dev: true
dev: false
/comment-json@4.2.3:
resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==}
@@ -4557,6 +4509,7 @@ packages:
engines: {node: '>=12.13'}
dependencies:
is-what: 4.1.16
dev: false
/core-js-pure@3.36.0:
resolution: {integrity: sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==}
@@ -4634,7 +4587,7 @@ packages:
dependencies:
es5-ext: 0.10.62
type: 1.2.0
dev: true
dev: false
/damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@@ -4832,7 +4785,7 @@ packages:
resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==}
dependencies:
heap: 0.2.7
dev: true
dev: false
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
@@ -4871,7 +4824,7 @@ packages:
hasBin: true
dependencies:
cross-spawn: 7.0.3
dotenv: 16.4.4
dotenv: 16.4.5
dotenv-expand: 10.0.0
minimist: 1.2.8
dev: true
@@ -4886,17 +4839,16 @@ packages:
engines: {node: '>=12'}
dev: false
/dotenv@16.4.4:
resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==}
/dotenv@16.4.5:
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
engines: {node: '>=12'}
dev: true
/dreamopt@0.8.0:
resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==}
engines: {node: '>=0.4.0'}
dependencies:
wordwrap: 1.0.0
dev: true
dev: false
/drizzle-kit@0.20.14:
resolution: {integrity: sha512-0fHv3YIEaUcSVPSGyaaBfOi9bmpajjhbJNdPsRMIUvYdLVxBu9eGjH8mRc3Qk7HVmEidFc/lhG1YyJhoXrn5yA==}
@@ -4918,7 +4870,7 @@ packages:
zod: 3.22.4
transitivePeerDependencies:
- supports-color
dev: true
dev: false
/drizzle-orm@0.30.2(@types/better-sqlite3@7.6.9)(better-sqlite3@9.4.3)(mysql2@3.9.2)(react@17.0.2):
resolution: {integrity: sha512-DNd3djg03o+WxZX3pGD8YD+qrWT8gbrbhaZ2W0PVb6yH4rtM/VTB92cTGvumcRh7SSd2KfV0NWYDB70BHIXQTg==}
@@ -5044,7 +4996,7 @@ packages:
/env-paths@3.0.0:
resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
dev: false
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -5170,7 +5122,7 @@ packages:
es6-iterator: 2.0.3
es6-symbol: 3.1.3
next-tick: 1.1.0
dev: true
dev: false
/es6-iterator@2.0.3:
resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
@@ -5178,14 +5130,14 @@ packages:
d: 1.0.1
es5-ext: 0.10.62
es6-symbol: 3.1.3
dev: true
dev: false
/es6-symbol@3.1.3:
resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
dependencies:
d: 1.0.1
ext: 1.7.0
dev: true
dev: false
/es6-weak-map@2.0.3:
resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
@@ -5194,7 +5146,7 @@ packages:
es5-ext: 0.10.62
es6-iterator: 2.0.3
es6-symbol: 3.1.3
dev: true
dev: false
/esbuild-register@3.5.0(esbuild@0.19.12):
resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==}
@@ -5205,7 +5157,7 @@ packages:
esbuild: 0.19.12
transitivePeerDependencies:
- supports-color
dev: true
dev: false
/esbuild@0.18.20:
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
@@ -5235,7 +5187,7 @@ packages:
'@esbuild/win32-arm64': 0.18.20
'@esbuild/win32-ia32': 0.18.20
'@esbuild/win32-x64': 0.18.20
dev: true
dev: false
/esbuild@0.19.12:
resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
@@ -5266,7 +5218,6 @@ packages:
'@esbuild/win32-arm64': 0.19.12
'@esbuild/win32-ia32': 0.19.12
'@esbuild/win32-x64': 0.19.12
dev: true
/escalade@3.1.2:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
@@ -5564,7 +5515,7 @@ packages:
/estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
dev: false
/estree-walker@3.0.3:
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
@@ -5585,7 +5536,7 @@ packages:
dependencies:
d: 1.0.1
es5-ext: 0.10.62
dev: true
dev: false
/events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
@@ -5669,7 +5620,7 @@ packages:
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
dependencies:
type: 2.7.2
dev: true
dev: false
/external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
@@ -5976,7 +5927,6 @@ packages:
resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
dependencies:
resolve-pkg-maps: 1.0.0
dev: true
/get-uri@6.0.3:
resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==}
@@ -6040,7 +5990,7 @@ packages:
inherits: 2.0.4
minimatch: 5.1.6
once: 1.4.0
dev: true
dev: false
/glob@9.3.5:
resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==}
@@ -6136,7 +6086,7 @@ packages:
dependencies:
lodash.throttle: 4.1.1
sisteransi: 1.0.5
dev: true
dev: false
/has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
@@ -6194,7 +6144,7 @@ packages:
/heap@0.2.7:
resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==}
dev: true
dev: false
/hexoid@1.0.0:
resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==}
@@ -6557,7 +6507,7 @@ packages:
/is-promise@2.2.2:
resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
dev: true
dev: false
/is-property@1.0.2:
resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==}
@@ -6647,6 +6597,7 @@ packages:
/is-what@4.1.16:
resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
engines: {node: '>=12.13'}
dev: false
/isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
@@ -6820,7 +6771,7 @@ packages:
cli-color: 2.0.3
difflib: 0.2.4
dreamopt: 0.8.0
dev: true
dev: false
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -6955,7 +6906,7 @@ packages:
/lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
dev: true
dev: false
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -7042,7 +6993,7 @@ packages:
resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==}
dependencies:
es5-ext: 0.10.62
dev: true
dev: false
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
@@ -7161,7 +7112,7 @@ packages:
lru-queue: 0.1.0
next-tick: 1.1.0
timers-ext: 0.1.7
dev: true
dev: false
/merge-descriptors@1.0.1:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
@@ -7231,14 +7182,14 @@ packages:
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: true
dev: false
/minimatch@7.4.6:
resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: true
dev: false
/minimatch@8.0.4:
resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
@@ -7433,7 +7384,7 @@ packages:
/next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
dev: true
dev: false
/next@14.1.3(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0)(sass@1.72.0):
resolution: {integrity: sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==}
@@ -8525,7 +8476,6 @@ packages:
/resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: true
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
@@ -8599,7 +8549,6 @@ packages:
'@rollup/rollup-win32-ia32-msvc': 4.12.0
'@rollup/rollup-win32-x64-msvc': 4.12.0
fsevents: 2.3.3
dev: true
/rope-sequence@1.3.4:
resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
@@ -8864,7 +8813,7 @@ packages:
/sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
dev: true
dev: false
/slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
@@ -8910,12 +8859,10 @@ packages:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
dev: true
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
dev: true
/source-map@0.7.4:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
@@ -9110,6 +9057,7 @@ packages:
engines: {node: '>=16'}
dependencies:
copy-anything: 3.0.5
dev: false
/supertest@6.3.4:
resolution: {integrity: sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==}
@@ -9267,7 +9215,7 @@ packages:
dependencies:
es5-ext: 0.10.62
next-tick: 1.1.0
dev: true
dev: false
/tinybench@2.6.0:
resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==}
@@ -9572,11 +9520,11 @@ packages:
/type@1.2.0:
resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
dev: true
dev: false
/type@2.7.2:
resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
dev: true
dev: false
/typed-array-buffer@1.0.1:
resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==}
@@ -9862,7 +9810,7 @@ packages:
vite: 5.1.6(@types/node@20.11.27)
transitivePeerDependencies:
- supports-color
dev: true
dev: false
/vite-tsconfig-paths@4.3.2(typescript@5.4.2)(vite@5.1.6):
resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==}
@@ -9915,7 +9863,6 @@ packages:
rollup: 4.12.0
optionalDependencies:
fsevents: 2.3.3
dev: true
/vitest@1.3.1(@types/node@20.11.27)(@vitest/ui@1.3.1)(jsdom@24.0.0):
resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
@@ -10182,7 +10129,6 @@ packages:
/wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
dev: true
/wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
@@ -10282,3 +10228,4 @@ packages:
/zod@3.22.4:
resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
dev: false

1
scripts/build.cmd Normal file
View File

@@ -0,0 +1 @@
docker build -t homarr .

8
scripts/run.sh Normal file
View File

@@ -0,0 +1,8 @@
# Run migrations
node ./db/migrate.mjs ./db/migrations
# Run the nestjs backend
node apps/nestjs/dist/main.mjs &
# Run the nextjs server
node apps/nextjs/server.js

View File

@@ -1,12 +1,18 @@
{
"$schema": "https://turborepo.org/schema.json",
"globalDependencies": ["**/.env"],
"globalDependencies": [
"**/.env"
],
"pipeline": {
"topo": {
"dependsOn": ["^topo"]
"dependsOn": [
"^topo"
]
},
"build": {
"dependsOn": ["^build"],
"dependsOn": [
"^build"
],
"outputs": [
".next/**",
"!.next/cache/**",
@@ -20,16 +26,26 @@
"cache": false
},
"format": {
"outputs": ["node_modules/.cache/.prettiercache"],
"outputs": [
"node_modules/.cache/.prettiercache"
],
"outputMode": "new-only"
},
"lint": {
"dependsOn": ["^topo"],
"outputs": ["node_modules/.cache/.eslintcache"]
"dependsOn": [
"^topo"
],
"outputs": [
"node_modules/.cache/.eslintcache"
]
},
"typecheck": {
"dependsOn": ["^topo"],
"outputs": ["node_modules/.cache/tsbuildinfo.json"]
"dependsOn": [
"^topo"
],
"outputs": [
"node_modules/.cache/tsbuildinfo.json"
]
},
"clean": {
"cache": false
@@ -46,4 +62,4 @@
"AUTH_SECRET",
"AUTH_URL"
]
}
}