Two-app pnpm workspace for the gashboard (mining dashboard) project: @gashboard/api (Express 5 + TS) and @gashboard/web (Vue 3 + Vite + TS). Shared tsconfig.base.json. Multi-stage Dockerfile (node:22.12-alpine, non-root, healthchecked) and docker-compose.yml ready to deploy as a Portainer Stack on Umbrel — joins umbrel_main_network so it can reach the Datum container directly. .env.example documents every var; README covers the Portainer deploy flow and the security posture. Note: Dockerfile has a TODO marker to SHA256-pin the base image before shipping to production. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
835 B
JSON
35 lines
835 B
JSON
{
|
|
"name": "@gashboard/api",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "dist/index.js",
|
|
"scripts": {
|
|
"dev": "tsx watch src/index.ts",
|
|
"build": "tsc -p tsconfig.json",
|
|
"start": "node dist/index.js",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"cors": "2.8.5",
|
|
"express": "4.21.1",
|
|
"express-rate-limit": "7.4.1",
|
|
"helmet": "8.0.0",
|
|
"jsonwebtoken": "9.0.2",
|
|
"node-html-parser": "6.1.13",
|
|
"nostr-tools": "2.10.4",
|
|
"pino": "9.5.0",
|
|
"pino-http": "10.3.0",
|
|
"zod": "3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@types/cors": "2.8.17",
|
|
"@types/express": "5.0.0",
|
|
"@types/express-serve-static-core": "5.0.2",
|
|
"@types/jsonwebtoken": "9.0.7",
|
|
"@types/node": "22.9.0",
|
|
"tsx": "4.19.2",
|
|
"typescript": "5.6.3"
|
|
}
|
|
}
|