From 8ce79ed739188287dd1edb8772f0becef7c269aa Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:42:04 -0600 Subject: [PATCH 01/21] Remove .env file from structure, add to compose --- compose.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/compose.yml b/compose.yml index 851994a..bf7f9b9 100644 --- a/compose.yml +++ b/compose.yml @@ -9,6 +9,13 @@ services: - ./server:/app ports: - "4000:4000" + #enviornment: + #NEXT_PUBLIC_CLIENT_TOKEN: + #COMBAT_API_URL: http://server:4000/roster/combat + #RESERVE_API_URL: http://server:4000/roster/reserves + #NEXT_PUBLIC_INDIVIDUAL_API_URL: http://server:4000/roster/individual + #CACHE_TIMESTAMP_URL: http://server:4000/cache-timestamp + #GROUP_API_URL: http://server:4000/roster/groups working_dir: /app command: /bin/sh -c "apk add curl && npm install && node server.js" healthcheck: @@ -26,8 +33,13 @@ services: - ./client:/app ports: - "80:3000" - env_file: - - ./client/.env + enviornment: + NEXT_PUBLIC_CLIENT_TOKEN: + COMBAT_API_URL: http://server:4000/roster/combat + RESERVE_API_URL: http://server:4000/roster/reserves + NEXT_PUBLIC_INDIVIDUAL_API_URL: http://server:4000/roster/individual + CACHE_TIMESTAMP_URL: http://server:4000/cache-timestamp + GROUP_API_URL: http://server:4000/roster/groups entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm install && npm run build && npm run start" working_dir: /app From 0bc8f49615f894bbe5190c429d59d5a21c893c4e Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:20:44 -0600 Subject: [PATCH 02/21] Require server to use enviornment vars --- server/controllers/cacheManager.js | 2 +- server/credentials/example_token.js | 6 ------ server/server.js | 2 +- 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 server/credentials/example_token.js diff --git a/server/controllers/cacheManager.js b/server/controllers/cacheManager.js index 78c73de..0f74b01 100644 --- a/server/controllers/cacheManager.js +++ b/server/controllers/cacheManager.js @@ -1,6 +1,6 @@ const axios = require("axios"); const axiosRetry = require("axios-retry").default || require("axios-retry"); -const { API_TOKEN } = require("../credentials/token"); +const { API_TOKEN } = process.env.API_TOKEN; let cacheStatus = { combat: false, diff --git a/server/credentials/example_token.js b/server/credentials/example_token.js deleted file mode 100644 index 6ae11a2..0000000 --- a/server/credentials/example_token.js +++ /dev/null @@ -1,6 +0,0 @@ -const API_TOKEN = "XXXXXXXXXXX"; -const CLIENT_TOKEN = "XXXXXXXX"; -module.exports = { API_TOKEN, CLIENT_TOKEN }; - -//rename this file as "token.js" when in use. -// should be in `../server/credentials/token.js` path. diff --git a/server/server.js b/server/server.js index 398628e..19c78d8 100644 --- a/server/server.js +++ b/server/server.js @@ -4,7 +4,7 @@ const compression = require("compression"); const app = express(); const cors = require("cors"); const port = 4000; -const { CLIENT_TOKEN } = require("./credentials/token"); +const { CLIENT_TOKEN } = process.env.CLIENT_TOKEN; const { cacheTime, initializeCache } = require("./controllers/cacheManager"); const corsOptions = { From bb6a93e7ae62cbcc44509cc39c4fbf1989fe2db4 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:22:35 -0600 Subject: [PATCH 03/21] provide server tokens via compose --- compose.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/compose.yml b/compose.yml index bf7f9b9..fa6b796 100644 --- a/compose.yml +++ b/compose.yml @@ -9,13 +9,10 @@ services: - ./server:/app ports: - "4000:4000" - #enviornment: - #NEXT_PUBLIC_CLIENT_TOKEN: - #COMBAT_API_URL: http://server:4000/roster/combat - #RESERVE_API_URL: http://server:4000/roster/reserves - #NEXT_PUBLIC_INDIVIDUAL_API_URL: http://server:4000/roster/individual - #CACHE_TIMESTAMP_URL: http://server:4000/cache-timestamp - #GROUP_API_URL: http://server:4000/roster/groups + enviornment: + API_TOKEN: + CLIENT_TOKEN: + working_dir: /app command: /bin/sh -c "apk add curl && npm install && node server.js" healthcheck: From 7185f07ff42beafb1acbe782832992d58c7ab450 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 19:13:01 -0600 Subject: [PATCH 04/21] Imagize client and serverside. --- client.Dockerfile | 25 +++++++++++++++++++++++++ compose.yml | 33 ++++++++++++++++++--------------- server.Dockerfile | 23 +++++++++++++++++++++++ 3 files changed, 66 insertions(+), 15 deletions(-) create mode 100644 client.Dockerfile create mode 100644 server.Dockerfile diff --git a/client.Dockerfile b/client.Dockerfile new file mode 100644 index 0000000..23483f7 --- /dev/null +++ b/client.Dockerfile @@ -0,0 +1,25 @@ +# Build + +FROM node:lts-alpine + +RUN apk add --no-cache curl + +WORKDIR /client + +# Acquire dependencies + +COPY client/package*.json ./ + +RUN npm install + +# Build application for production + +COPY client./ . + +RUN npm run build + +# Deploy + +EXPOSE 3000 + +CMD ["npm", "run", "start"] diff --git a/compose.yml b/compose.yml index fa6b796..b41e2cf 100644 --- a/compose.yml +++ b/compose.yml @@ -1,33 +1,32 @@ services: server: restart: always - container_name: adr-server - image: node:lts-alpine - env_file: - - ./client/.env - volumes: - - ./server:/app + build: + dockerfile: "./server.Dockerfile" + context: "./server" + image: 7cav/cavapps-server:latest + container_name: apps-server ports: - "4000:4000" enviornment: API_TOKEN: CLIENT_TOKEN: - - working_dir: /app - command: /bin/sh -c "apk add curl && npm install && node server.js" + working_dir: /server healthcheck: test: ["CMD", "curl", "-f", "http://server:4000"] interval: 10s timeout: 10s retries: 5 start_period: 30s + networks: mynetwork client: restart: always - container_name: adr-client - image: node:lts-alpine - volumes: - - ./client:/app + build: + context: ./client + dockerfile: ./client.Dockerfile + image: 7cav/cavapps-client:latest + container_name: apps-client ports: - "80:3000" enviornment: @@ -37,8 +36,12 @@ services: NEXT_PUBLIC_INDIVIDUAL_API_URL: http://server:4000/roster/individual CACHE_TIMESTAMP_URL: http://server:4000/cache-timestamp GROUP_API_URL: http://server:4000/roster/groups - entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm install && npm run build && npm run start" - working_dir: /app + working_dir: /client + depends_on: + server: + condition: service_healthy + networks: + - mynetwork networks: mynetwork: diff --git a/server.Dockerfile b/server.Dockerfile new file mode 100644 index 0000000..dad5bfa --- /dev/null +++ b/server.Dockerfile @@ -0,0 +1,23 @@ +# Build + +FROM node:lts-alpine + +RUN apk add --no-cache curl + +WORKDIR /server + +# Acquire dependencies + +COPY server/package*.json ./ + +RUN npm install + +# Copy server source code + +COPY server/. . + +# Deploy + +EXPOSE 4000 + +CMD ["node", "server.js"] \ No newline at end of file From fd0a0fb86f4c69ada246a229e1eb36c780373fb1 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:15:09 -0600 Subject: [PATCH 05/21] fix compose issues --- compose.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/compose.yml b/compose.yml index b41e2cf..65e61e1 100644 --- a/compose.yml +++ b/compose.yml @@ -8,17 +8,18 @@ services: container_name: apps-server ports: - "4000:4000" - enviornment: + environment: API_TOKEN: CLIENT_TOKEN: working_dir: /server healthcheck: - test: ["CMD", "curl", "-f", "http://server:4000"] + test: ["CMD", "curl", "-f", "http://localhost:4000"] interval: 10s timeout: 10s retries: 5 start_period: 30s - networks: mynetwork + networks: + - mynetwork client: restart: always @@ -29,7 +30,7 @@ services: container_name: apps-client ports: - "80:3000" - enviornment: + environment: NEXT_PUBLIC_CLIENT_TOKEN: COMBAT_API_URL: http://server:4000/roster/combat RESERVE_API_URL: http://server:4000/roster/reserves @@ -40,10 +41,10 @@ services: depends_on: server: condition: service_healthy + entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm install && npm run build && npm run start" networks: - mynetwork networks: mynetwork: driver: bridge - external: true From 1b2d10c4a64049de17214a9f010d8842f190bed3 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:17:32 -0600 Subject: [PATCH 06/21] Move and fix up dockerfiles --- client.Dockerfile | 25 ------------------- client/client.Dockerfile | 21 ++++++++++++++++ server.Dockerfile => server/server.Dockerfile | 4 +-- 3 files changed, 23 insertions(+), 27 deletions(-) delete mode 100644 client.Dockerfile create mode 100644 client/client.Dockerfile rename server.Dockerfile => server/server.Dockerfile (81%) diff --git a/client.Dockerfile b/client.Dockerfile deleted file mode 100644 index 23483f7..0000000 --- a/client.Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -# Build - -FROM node:lts-alpine - -RUN apk add --no-cache curl - -WORKDIR /client - -# Acquire dependencies - -COPY client/package*.json ./ - -RUN npm install - -# Build application for production - -COPY client./ . - -RUN npm run build - -# Deploy - -EXPOSE 3000 - -CMD ["npm", "run", "start"] diff --git a/client/client.Dockerfile b/client/client.Dockerfile new file mode 100644 index 0000000..bd7a3e3 --- /dev/null +++ b/client/client.Dockerfile @@ -0,0 +1,21 @@ +# Build + +FROM node:lts-alpine + +RUN apk add --no-cache curl + +WORKDIR /client + +# Acquire dependencies + +COPY package*.json ./ + +RUN npm install + +# Copy source code + +COPY . . + +# Expose, Deployment is handled by compose to allow server to start first + +EXPOSE 3000 \ No newline at end of file diff --git a/server.Dockerfile b/server/server.Dockerfile similarity index 81% rename from server.Dockerfile rename to server/server.Dockerfile index dad5bfa..82c5fb2 100644 --- a/server.Dockerfile +++ b/server/server.Dockerfile @@ -8,13 +8,13 @@ WORKDIR /server # Acquire dependencies -COPY server/package*.json ./ +COPY package*.json ./ RUN npm install # Copy server source code -COPY server/. . +COPY . . # Deploy From efdcd1bae87ddbcf41be4f92b4512082efea0471 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:19:43 -0600 Subject: [PATCH 07/21] Fix enviorn calls in server --- server/controllers/cacheManager.js | 2 +- server/server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/controllers/cacheManager.js b/server/controllers/cacheManager.js index 0f74b01..59f6572 100644 --- a/server/controllers/cacheManager.js +++ b/server/controllers/cacheManager.js @@ -1,6 +1,6 @@ const axios = require("axios"); const axiosRetry = require("axios-retry").default || require("axios-retry"); -const { API_TOKEN } = process.env.API_TOKEN; +const API_TOKEN = process.env.API_TOKEN; let cacheStatus = { combat: false, diff --git a/server/server.js b/server/server.js index 19c78d8..14edae5 100644 --- a/server/server.js +++ b/server/server.js @@ -4,7 +4,7 @@ const compression = require("compression"); const app = express(); const cors = require("cors"); const port = 4000; -const { CLIENT_TOKEN } = process.env.CLIENT_TOKEN; +const CLIENT_TOKEN = process.env.CLIENT_TOKEN; const { cacheTime, initializeCache } = require("./controllers/cacheManager"); const corsOptions = { From 1cf648688893c9537bec229b0db8d8da9b988e48 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:21:16 -0600 Subject: [PATCH 08/21] remove console logs --- client/app/adr/modules/ArrayMap.jsx | 1 - client/app/adr/modules/MilpacParse.jsx | 4 ---- 2 files changed, 5 deletions(-) diff --git a/client/app/adr/modules/ArrayMap.jsx b/client/app/adr/modules/ArrayMap.jsx index 262f801..adc5c61 100644 --- a/client/app/adr/modules/ArrayMap.jsx +++ b/client/app/adr/modules/ArrayMap.jsx @@ -7,7 +7,6 @@ milpac link, name and rank, and position title.*/ function ArrayMap(props) { let inputArray = props.inputArray; - console.log(inputArray); return ( diff --git a/client/app/adr/modules/MilpacParse.jsx b/client/app/adr/modules/MilpacParse.jsx index 0dc8960..3d84d24 100644 --- a/client/app/adr/modules/MilpacParse.jsx +++ b/client/app/adr/modules/MilpacParse.jsx @@ -10,8 +10,6 @@ function MilpacParse(props) { const rosterGroups = props.rosterGroups; let milpacArray = props.milpacArray; - console.log(rosterGroups); - const uniqueNamesSet = new Set(); let returnArray = []; @@ -121,8 +119,6 @@ function MilpacParse(props) { return aIndex - bIndex; }); - console.log(returnArray); - return (
From 7f80ede93aad5d92fcbaec713ee488a498419210 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:31:08 -0600 Subject: [PATCH 09/21] add wget as a requirement --- client/client.Dockerfile | 2 +- compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/client.Dockerfile b/client/client.Dockerfile index bd7a3e3..69101d3 100644 --- a/client/client.Dockerfile +++ b/client/client.Dockerfile @@ -2,7 +2,7 @@ FROM node:lts-alpine -RUN apk add --no-cache curl +RUN apk add --no-cache curl wget WORKDIR /client diff --git a/compose.yml b/compose.yml index 65e61e1..08f6541 100644 --- a/compose.yml +++ b/compose.yml @@ -41,7 +41,7 @@ services: depends_on: server: condition: service_healthy - entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm install && npm run build && npm run start" + entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm run build && npm run start" networks: - mynetwork From cbcbf15f480c96441cbd735cfb1a3e3c5f2f589c Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:47:12 -0600 Subject: [PATCH 10/21] add compose to gitignore for dev purposes --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1fe6b8d..6e131dc 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,5 @@ next-env.d.ts server/credentials/token.js .env -/.idea/ \ No newline at end of file +/.idea/ +compose.yml From 22c4182fc704dc2a021cfbb6f944679bd711a7f5 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Thu, 7 Aug 2025 10:04:40 -0600 Subject: [PATCH 11/21] rename network --- compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compose.yml b/compose.yml index 08f6541..5d7ec92 100644 --- a/compose.yml +++ b/compose.yml @@ -19,7 +19,7 @@ services: retries: 5 start_period: 30s networks: - - mynetwork + - cavapps-network client: restart: always @@ -43,8 +43,8 @@ services: condition: service_healthy entrypoint: /bin/sh -c "until wget -q --spider http://server:4000; do echo 'Waiting for server...'; sleep 5; done; npm run build && npm run start" networks: - - mynetwork + - cavapps-network networks: - mynetwork: + cavapps-network: driver: bridge From ec45cceab784903b306f9e72363d14e639af3d22 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Thu, 7 Aug 2025 10:05:08 -0600 Subject: [PATCH 12/21] Revert "add compose to gitignore for dev purposes" This reverts commit cbcbf15f480c96441cbd735cfb1a3e3c5f2f589c. --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 6e131dc..1fe6b8d 100644 --- a/.gitignore +++ b/.gitignore @@ -41,5 +41,4 @@ next-env.d.ts server/credentials/token.js .env -/.idea/ -compose.yml +/.idea/ \ No newline at end of file From a50b7a4a9484362eb40652ce5c9c262db24006b8 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Thu, 7 Aug 2025 10:05:44 -0600 Subject: [PATCH 13/21] rename containers --- compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose.yml b/compose.yml index 5d7ec92..92c3eb7 100644 --- a/compose.yml +++ b/compose.yml @@ -5,7 +5,7 @@ services: dockerfile: "./server.Dockerfile" context: "./server" image: 7cav/cavapps-server:latest - container_name: apps-server + container_name: cavapps-server ports: - "4000:4000" environment: @@ -27,7 +27,7 @@ services: context: ./client dockerfile: ./client.Dockerfile image: 7cav/cavapps-client:latest - container_name: apps-client + container_name: cavapps-client ports: - "80:3000" environment: From daac930ce58feb185cc91702aadcc0e989b8621c Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:21:47 -0600 Subject: [PATCH 14/21] increase allowable nametag length by 1 character --- client/app/uniformbuilder/modules/canvas.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/uniformbuilder/modules/canvas.jsx b/client/app/uniformbuilder/modules/canvas.jsx index 8941dba..bbdab68 100644 --- a/client/app/uniformbuilder/modules/canvas.jsx +++ b/client/app/uniformbuilder/modules/canvas.jsx @@ -351,7 +351,7 @@ function Canvas(props) { let fontSize = 18; const dy = 313; - if (userData.nameTag.length < 8) { + if (userData.nameTag.length < 9) { tagWidth = 101; tagHeight = 40; selector = "short"; From 35fddd2727be0a1b4ca818733f2db43690acd8c3 Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:23:06 -0600 Subject: [PATCH 15/21] Address off by 1 error for donation logic --- client/app/uniformbuilder/modules/AwardClasses.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/client/app/uniformbuilder/modules/AwardClasses.jsx b/client/app/uniformbuilder/modules/AwardClasses.jsx index 236da99..2311aec 100644 --- a/client/app/uniformbuilder/modules/AwardClasses.jsx +++ b/client/app/uniformbuilder/modules/AwardClasses.jsx @@ -73,6 +73,7 @@ export class MedalWithValor extends Medal { export class RibbonDonationLogic extends Ribbon { constructor(data, AwardRegistry) { super(data, AwardRegistry); + this.ribbonTrueAttachmentCount = 1; } incrementAwardCount() { From eb5d44bcb3ce312dabff2753e14e81d4535a091b Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:28:26 -0600 Subject: [PATCH 16/21] Add Delta Company to Roster Statistics --- client/app/reusableModules/BilletBank.jsx | 68 ++++++++++++++++++++++- client/app/rosterstatistics/page.jsx | 2 + 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/client/app/reusableModules/BilletBank.jsx b/client/app/reusableModules/BilletBank.jsx index 6904946..0c2b6b4 100644 --- a/client/app/reusableModules/BilletBank.jsx +++ b/client/app/reusableModules/BilletBank.jsx @@ -183,13 +183,79 @@ const charlie1 = [ "344", ]; +const delta1 = [ + "1060", + "1061", + "1062", + "1063", + "1064", + "1065", + "1066", + "1067", + "1068", + "1069", + "1070", + "1071", + "1072", + "1073", + "1074", + "1075", + "1076", + "1077", + "1078", + "1079", + "1080", + "1081", + "1082", + "1083", + "1084", + "1085", + "1086", + "1087", + "1088", + "1089", + "1090", + "1091", + "1092", + "1093", + "1094", + "1095", + "1096", + "1097", + "1098", + "1099", + "1100", + "1101", + "1102", + "1103", + "1104", + "1105", + "1106", + "1107", + "1108", + "1109", + "1110", + "1111", + "1112", + "1113", + "1114", + "1115", + "1116", + "1117", + "1118", + "1119", + "1120", + "1121", +]; + const oneSeven = { - positionIds: [oneSevenCommand, alpha1, bravo1, charlie1], + positionIds: [oneSevenCommand, alpha1, bravo1, charlie1, delta1], positionTitles: [ "1-7 Headquarters", "Alpha Company", "Bravo Troop", "Charlie Company", + "Delta Company", ], collapsibleTitle: "First Battalion", }; diff --git a/client/app/rosterstatistics/page.jsx b/client/app/rosterstatistics/page.jsx index 2ca7338..acb73c9 100644 --- a/client/app/rosterstatistics/page.jsx +++ b/client/app/rosterstatistics/page.jsx @@ -51,6 +51,7 @@ export default async function RosterStatistics() { lists.alpha1, lists.bravo1, lists.charlie1, + lists.delta1, lists.twoSevenCommand, lists.alpha2, lists.bravo2, @@ -75,6 +76,7 @@ export default async function RosterStatistics() { "Alpha Company 1-7", "Bravo Troop 1-7", "Charlie Company 1-7", + "Delta Company 1-7", "2-7 Headquarters", "Alpha Company 2-7", "Bravo Company 2-7", From f2096da9d947d799530db40e27639636e251570b Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:35:32 -0600 Subject: [PATCH 17/21] add Delta co to display export --- client/app/reusableModules/BilletBank.jsx | 1 + client/app/rosterstatistics/page.jsx | 1 + 2 files changed, 2 insertions(+) diff --git a/client/app/reusableModules/BilletBank.jsx b/client/app/reusableModules/BilletBank.jsx index 0c2b6b4..9e75adb 100644 --- a/client/app/reusableModules/BilletBank.jsx +++ b/client/app/reusableModules/BilletBank.jsx @@ -1153,6 +1153,7 @@ const billetBank = { alpha1, bravo1, charlie1, + delta1, twoSevenCommand, alpha2, bravo2, diff --git a/client/app/rosterstatistics/page.jsx b/client/app/rosterstatistics/page.jsx index acb73c9..0f97de3 100644 --- a/client/app/rosterstatistics/page.jsx +++ b/client/app/rosterstatistics/page.jsx @@ -107,6 +107,7 @@ export default async function RosterStatistics() { lists.alpha1, lists.bravo1, lists.charlie1, + lists.delta1, ]} centerLabel="Total 1-7 Strength" labelArray={[ From 2a211698e24f59a2130d63906c167fa5923594fa Mon Sep 17 00:00:00 2001 From: Vercin-G <97210222+Vercin-G@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:41:54 -0600 Subject: [PATCH 18/21] Add Color to delta co and additional reference --- client/app/rosterstatistics/modules/statistics.jsx | 1 + client/app/rosterstatistics/page.jsx | 1 + 2 files changed, 2 insertions(+) diff --git a/client/app/rosterstatistics/modules/statistics.jsx b/client/app/rosterstatistics/modules/statistics.jsx index 857c85a..3519ba8 100644 --- a/client/app/rosterstatistics/modules/statistics.jsx +++ b/client/app/rosterstatistics/modules/statistics.jsx @@ -108,6 +108,7 @@ class Statistics extends Component { "#b61217", "#b61217", "#b61217", + "#b61217", "#2a487c", "#2a487c", "#2a487c", diff --git a/client/app/rosterstatistics/page.jsx b/client/app/rosterstatistics/page.jsx index 0f97de3..20ea6fb 100644 --- a/client/app/rosterstatistics/page.jsx +++ b/client/app/rosterstatistics/page.jsx @@ -115,6 +115,7 @@ export default async function RosterStatistics() { "Alpha Company", "Bravo Troop", "Charlie Company", + "Delta Company", ]} milpacArray={milpacArray} /> From 00042832c3bf308672ca4bb95454b9fc7d346901 Mon Sep 17 00:00:00 2001 From: SyniRon <66834451+SyniRon@users.noreply.github.com> Date: Wed, 15 Oct 2025 22:54:49 -0400 Subject: [PATCH 19/21] Update dev deploy workflow for new containers --- .github/workflows/dev_deploy.yml | 41 ++++++++++++++++++---------- .github/workflows/old_dev_deploy.yml | 35 ++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/old_dev_deploy.yml diff --git a/.github/workflows/dev_deploy.yml b/.github/workflows/dev_deploy.yml index 97213e5..aaef2d5 100644 --- a/.github/workflows/dev_deploy.yml +++ b/.github/workflows/dev_deploy.yml @@ -1,4 +1,4 @@ -name: Development Deploy +name: Build and Push Docker Image on: workflow_dispatch: @@ -8,8 +8,9 @@ on: required: true type: string default: "development" + jobs: - deploy: + build: runs-on: ubuntu-latest steps: @@ -18,18 +19,30 @@ jobs: with: ref: ${{ github.event.inputs.branch }} - - name: Setup SSH - uses: webfactory/ssh-agent@v0.9.0 + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Client Docker Image + uses: docker/build-push-action@v5 + with: + context: ./client + push: true + tags: | + 7cav/apps_beta_client:${{ github.sha }} + 7cav/apps_beta_client:latest + + - name: Build and Push Server Docker Image + uses: docker/build-push-action@v5 with: - ssh-private-key: ${{ secrets.THE_KEY }} + context: ./server + push: true + tags: | + 7cav/apps_beta_server:${{ github.sha }} + 7cav/apps_beta_server:latest - - name: Deploy to Server + - name: Force Watchtower Update run: | - ssh -o StrictHostKeyChecking=no thehub@traycer.7cav.us << 'EOF' - cd /etc/compose/apps-beta/adr - git fetch origin - git reset --hard origin/${{ github.event.inputs.branch }} - cd /etc/compose/apps-beta/ - docker compose down - docker compose up -d - EOF + curl -H "Authorization: Bearer ${{ secrets.WATCHER_KEY }}" https://watcher.7cav.us/v1/update \ No newline at end of file diff --git a/.github/workflows/old_dev_deploy.yml b/.github/workflows/old_dev_deploy.yml new file mode 100644 index 0000000..97213e5 --- /dev/null +++ b/.github/workflows/old_dev_deploy.yml @@ -0,0 +1,35 @@ +name: Development Deploy + +on: + workflow_dispatch: + inputs: + branch: + description: "Branch to deploy" + required: true + type: string + default: "development" +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.branch }} + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.THE_KEY }} + + - name: Deploy to Server + run: | + ssh -o StrictHostKeyChecking=no thehub@traycer.7cav.us << 'EOF' + cd /etc/compose/apps-beta/adr + git fetch origin + git reset --hard origin/${{ github.event.inputs.branch }} + cd /etc/compose/apps-beta/ + docker compose down + docker compose up -d + EOF From 639ac44cbf6d34a5d88e2416b968cbfb95c356a4 Mon Sep 17 00:00:00 2001 From: SyniRon <66834451+SyniRon@users.noreply.github.com> Date: Thu, 16 Oct 2025 13:15:49 -0400 Subject: [PATCH 20/21] implement release deploys --- .github/workflows/old_prod_deploy.yml | 27 +++++++++++++++ .github/workflows/prod_deploy.yml | 48 ++++++++++++++++++--------- 2 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/old_prod_deploy.yml diff --git a/.github/workflows/old_prod_deploy.yml b/.github/workflows/old_prod_deploy.yml new file mode 100644 index 0000000..db011a9 --- /dev/null +++ b/.github/workflows/old_prod_deploy.yml @@ -0,0 +1,27 @@ +name: (DO NOT USE) Old Production Deployment + +on: + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.THE_KEY }} + + - name: Deploy to Server + run: | + ssh -o StrictHostKeyChecking=no thehub@traycer.7cav.us << 'EOF' + cd /etc/compose/apps/adr + git pull origin main + cd /etc/compose/apps/ + docker compose down + docker compose up -d + EOF diff --git a/.github/workflows/prod_deploy.yml b/.github/workflows/prod_deploy.yml index fa05703..8b3d73e 100644 --- a/.github/workflows/prod_deploy.yml +++ b/.github/workflows/prod_deploy.yml @@ -1,29 +1,45 @@ -name: Production Deployment +name: Production Deploy on: - push: - branches: - - main + release: + types: [published] jobs: - deploy: + build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.branch }} + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Client Docker Image + uses: docker/build-push-action@v5 + with: + context: ./client + file: ./client/client.Dockerfile + push: true + tags: | + 7cav/apps_client:${{ github.ref_name }} + 7cav/apps_client:latest - - name: Setup SSH - uses: webfactory/ssh-agent@v0.9.0 + - name: Build and Push Server Docker Image + uses: docker/build-push-action@v5 with: - ssh-private-key: ${{ secrets.THE_KEY }} + context: ./server + file: ./server/server.Dockerfile + push: true + tags: | + 7cav/apps_server:${{ github.ref_name }} + 7cav/apps_server:latest - - name: Deploy to Server + - name: Force Watchtower Update run: | - ssh -o StrictHostKeyChecking=no thehub@traycer.7cav.us << 'EOF' - cd /etc/compose/apps/adr - git pull origin main - cd /etc/compose/apps/ - docker compose down - docker compose up -d - EOF + curl -H "Authorization: Bearer ${{ secrets.WATCHER_KEY }}" https://watcher.7cav.us/v1/update \ No newline at end of file From d237e7604e2a46573ec1a4797bf863fbd04fac40 Mon Sep 17 00:00:00 2001 From: SyniRon <66834451+SyniRon@users.noreply.github.com> Date: Thu, 16 Oct 2025 13:16:58 -0400 Subject: [PATCH 21/21] stop linting yamuels --- .github/workflows/lint_format.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint_format.yml b/.github/workflows/lint_format.yml index e36bda7..82c63f7 100644 --- a/.github/workflows/lint_format.yml +++ b/.github/workflows/lint_format.yml @@ -24,5 +24,5 @@ jobs: - name: Prettier uses: creyD/prettier_action@v4.3 with: - prettier_options: "--check {**/*,*}.{js,jsx,json,html,css,yml,yaml}" + prettier_options: "--check {**/*,*}.{js,jsx,json,html,css}" prettier_version: "2.8.8"