cleanup to allow for debugging

This commit is contained in:
2024-05-26 10:42:21 -05:00
parent c495b265ee
commit e1c9a7b81b
7 changed files with 101 additions and 58 deletions

32
.vscode/launch.json vendored
View File

@@ -4,6 +4,17 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Attach",
"port": 9229,
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"localRoot": "${workspaceFolder}/src",
"remoteRoot": "/home/node/app/src"
},
{
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
@@ -16,25 +27,8 @@
"<node_internals>/**"
],
"type": "node",
"env": {"NODE_ENV": "development"},
"env": {"NODE_ENV": "development", "DEBUG": "app"},
"preLaunchTask": "npm: build-css"
},
{
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"name": "nodemon (with scss watch)",
"program": "dev (with scss watch)",
"request": "launch",
"restart": true,
"runtimeExecutable": "nodemon",
"runtimeArgs": ["-e", "js,scss"],
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"env": {"NODE_ENV": "development"},
"preLaunchTask": "npm: build-css"
},
}
]
}

21
bin/www
View File

@@ -10,8 +10,7 @@ var https = require("https");
var fs = require("fs");
var debug = require("debug")("https");
const path = require("path");
var livereload = require("livereload");
/**
* Get port from environment and store in Express.
@@ -19,30 +18,16 @@ const path = require("path");
var port = normalizePort(process.env.PORT || "3000");
app.set("port", port);
var server = http.createServer(app);
if (process.env.NODE_ENV === "development") {
/**
* Create HTTPS server.
*/
const https_options = {
key: fs.readFileSync("certs/key.pem"),
cert: fs.readFileSync("certs/cert.pem"),
};
var livereload = require("livereload");
const liveReloadServer = livereload.createServer({https: https_options});
const liveReloadServer = livereload.createServer({port:35729});
liveReloadServer.watch(path.join(__dirname, "../src/views"));
liveReloadServer.server.once("connection", () => {
setTimeout(() => {
liveReloadServer.refresh("/");
}, 100);
});
var server = https.createServer(https_options, app);
}
else {
var server = http.createServer(app);
}
/**

View File

@@ -1,3 +1,26 @@
{
{$LOG_LEVEL} # Set via environment variable
}
localhost {
# Development configuration
@notProd {
expression {env.ENVIRONMENT} == 'development'
}
handle @notProd {
# Configuration that only applies when not in production
reverse_proxy app-dev:3000
}
}
{$DOMAIN} {
reverse_proxy app:3000
# Production configuration
@prod {
expression {env.ENVIRONMENT} == 'production'
}
handle @prod {
# Configuration that only applies in production
# header Strict-Transport-Security "max-age=31536000;"
reverse_proxy app:3000
}
}

View File

@@ -1,14 +1,32 @@
version: "3.3"
services:
app:
app: &app
env_file:
- .env
build: .
networks:
- web
profiles:
- production
expose:
- 3000
app-dev:
<<: *app
ports:
- 9229:9229 #debugger
- 35729:35729 #livereload
profiles:
- development
command: npm run dev
volumes:
- ./src:/home/node/app/src
- ./package.json:/home/node/app/package.json
- ./package-lock.json:/home/node/app/package-lock.json
- ./certs:/home/node/app/certs
- ./bin/www:/home/node/app/bin/www
environment:
DEBUG: "app"
NODE_ENV: "development"
caddy:
image: caddy
@@ -21,6 +39,8 @@ services:
- web
env_file:
- .env
environment:
DOMAIN: benchcoach.ascorrea.com
networks:
web:

45
package-lock.json generated
View File

@@ -33,6 +33,7 @@
"passport-teamsnap": "^1.1.1",
"pluralize": "^8.0.0",
"pug": "^3.0.2",
"sass": "^1.77.2",
"sortablejs": "^1.15.0",
"teamsnap.js": "github:anthonyscorrea/teamsnap-javascript-sdk#link-with-null-link",
"tinymce": "^6.8.3",
@@ -663,7 +664,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -834,7 +834,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true,
"engines": {
"node": ">=8"
}
@@ -997,7 +996,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -1169,7 +1167,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -2040,7 +2037,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -2195,7 +2191,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
@@ -2304,7 +2299,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -2564,6 +2558,11 @@
"integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
"dev": true
},
"node_modules/immutable": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz",
"integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ=="
},
"node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
@@ -2632,7 +2631,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -2704,7 +2702,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -2722,7 +2719,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -2745,7 +2741,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"engines": {
"node": ">=0.12.0"
}
@@ -3373,7 +3368,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -3667,7 +3661,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"engines": {
"node": ">=8.6"
},
@@ -4078,7 +4071,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -4228,6 +4220,22 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sass": {
"version": "1.77.2",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz",
"integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==",
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/semver": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
@@ -4466,6 +4474,14 @@
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
@@ -4735,7 +4751,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"dependencies": {
"is-number": "^7.0.0"
},

View File

@@ -24,10 +24,14 @@
},
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon .",
"dev": "nodemon --inspect=0.0.0.0 ./bin/www",
"build-css": "sass src/scss:src/public/css",
"watch-scss": "nodemon -e scss -x \"npm run build-css\""
},
"nodemonConfig": {
"ext": "js,hbs,scss",
"watch": ["src"]
},
"dependencies": {
"@teamsnap/teamsnap-ui": "^3.12.3",
"better-sqlite3": "^9.6.0",
@@ -54,6 +58,7 @@
"passport-teamsnap": "^1.1.1",
"pluralize": "^8.0.0",
"pug": "^3.0.2",
"sass": "^1.77.2",
"sortablejs": "^1.15.0",
"teamsnap.js": "github:anthonyscorrea/teamsnap-javascript-sdk#link-with-null-link",
"tinymce": "^6.8.3",

View File

@@ -62,9 +62,10 @@ app.set("view engine", "hbs");
app.locals.pluralize = require("pluralize");
if (process.env.NODE_ENV === "development") {
console.log('adding connectLiveReload')
var connectLiveReload = require("connect-livereload");
app.use("/scss", express.static(path.join(__dirname, "scss")));
app.use(connectLiveReload());
app.use(connectLiveReload({port: 35729, src:"http://localhost:35729/livereload.js?snipver=1"}));
}
app.use(bodyParser.json());