130 Commits

Author SHA1 Message Date
9c1599f8c3 chore(release): v0.0.1-alpha.4 2025-07-16 09:55:14 -05:00
5cb71e5547 ci(createzip): changes to include the script folder 2025-07-16 09:51:33 -05:00
c0d67c2a16 build(build): script created to build lstv2 and copy over before zipping up also cleanup 2025-07-16 09:51:08 -05:00
26b018ee3e ci(build): changes to ignore the tmp folder in the scripts 2025-07-16 09:50:28 -05:00
44fdf49555 chore(release): v0.0.1-alpha.3 2025-07-16 08:39:28 -05:00
afe795edd5 feat(scripts): 2 new scripts for the build process 2025-07-16 08:37:25 -05:00
a0856d171a refactor(releases): simplified the functions 2025-07-16 08:36:49 -05:00
5ed4a6c081 refactor(build): changes to show more details when we run the build stuff 2025-07-16 08:34:50 -05:00
7a4840ef95 refactor(package.json): changes to the scripts 2025-07-16 08:33:32 -05:00
c3473ca60e refactor(release-it): changes to the build process and changelog 2025-07-16 08:33:00 -05:00
646735565f refactor(createzip): change the name from release to createZip 2025-07-16 08:24:13 -05:00
a354004201 chore(release): v0.0.1-alpha.2 2025-07-16 07:08:01 -05:00
942be59715 refactor(build): changes to add in releasing from build 2025-07-16 07:07:08 -05:00
70e376c939 fix(build): removed the * at the end of source so no more errors 2025-07-16 06:56:13 -05:00
62a1ad83ab build(wrapper): added the wrapper to our build script 2025-07-16 06:55:52 -05:00
47c5a47ffa test(scripts): added in a go script to test my other scripts 2025-07-16 06:49:24 -05:00
9bd6e1fc04 feat(scripts): added in iis contorls 2025-07-16 06:48:43 -05:00
73600055fc fix(release script): correction to the script so it now puts the package to correct location 2025-07-15 10:39:20 -05:00
80907a89a9 refactor(backend): changes to how the api incorrect routes are handled 2025-07-14 21:58:01 -05:00
2472374157 refactor(zips): changes on how the compiler dose the zip to keep it cleaner 2025-07-14 21:57:04 -05:00
b72a10db94 refactor(build): changed the wording to understand the error when the .env missing 2025-07-14 21:56:16 -05:00
d097988dfd feat(lstwrapper): added a c# wrapper so we can run on windows server and get ssl
this will also allow us to still use docker
2025-07-14 21:55:25 -05:00
cb9e8e1107 fix(docker compose): corrected the data path wording and added a build option in 2025-07-14 21:54:18 -05:00
7bb7df788e fix(docker): corrections to the docker script
as we run it in the root we dont want to have it go up 2 levels only be at the same level
2025-07-12 21:50:58 -05:00
f26cf6404e ci(docker): changes to remove cache so we are always creating a new build 2025-07-12 21:42:25 -05:00
7f867b02d6 refactor(backend): changes to have a catch all and not return a 404 always 2025-07-12 21:41:47 -05:00
8c04e7ace5 chore(reset): reset everything after the building and commmit and changelog errors 2025-07-12 18:05:36 -05:00
74a05a39e1 chore(release): v0.0.3-alpha.22 2025-07-12 17:45:39 -05:00
f11e402d16 fix(changelog): moved packages 2025-07-12 17:44:53 -05:00
19130e361d chore(release): v0.0.3-alpha.21 2025-07-12 17:44:03 -05:00
af0670b9a0 chore(release): v0.0.3-alpha.20 2025-07-12 17:43:42 -05:00
a236d96971 fix(package.json): corrections to the commit changelog stuff 2025-07-12 17:43:32 -05:00
2fa142708e chore(release): v0.0.3-alpha.19 2025-07-12 17:37:23 -05:00
71b5017c82 fix(changelog): readd the header back in 2025-07-12 17:37:13 -05:00
ac9ce206dd chore(release): v0.0.3-alpha.18 2025-07-12 17:33:08 -05:00
2b9a859e7e fix(build): minor change to the build system to trigger new tags 2025-07-12 17:32:59 -05:00
1e3b755b88 chore(release): v0.0.3-alpha.17 2025-07-12 17:31:14 -05:00
46579ac6d9 fix(changelog): changes here 2025-07-12 17:30:12 -05:00
cded5982d4 chore(release): v0.0.3-alpha.16 2025-07-12 17:28:00 -05:00
e6041b03ee fix(h): sssdasjhksdf 2025-07-12 17:27:43 -05:00
7cbc8c8b84 chore(release): v0.0.3-alpha.15 2025-07-12 17:24:36 -05:00
7b1a0b054b fix(d): d 2025-07-12 17:23:57 -05:00
d6dce0908e chore(release): v0.0.3-alpha.14 2025-07-12 17:23:13 -05:00
3661cf5c25 fix(changelog): more change log stuff 2025-07-12 17:22:39 -05:00
b25debabb2 chore(release): v0.0.3-alpha.13 2025-07-12 17:20:46 -05:00
2646ecbdd2 fix(changes to the changlog): something 2025-07-12 17:18:17 -05:00
d7bfeabed1 chore(release): v0.0.3-alpha.12 2025-07-12 17:16:47 -05:00
83305031fd fix(release): re 2025-07-12 17:13:14 -05:00
12c338581a chore(release): v0.0.3-alpha.11 2025-07-12 17:09:41 -05:00
8044547488 fix(bogus): this is crap 2025-07-12 17:09:25 -05:00
2397fc2004 chore(release): v0.0.3-alpha.10 2025-07-12 17:05:41 -05:00
120ee75bf7 fix(jfhsldkfhja): ghjskdhkflasfdfg 2025-07-12 17:05:25 -05:00
8b814222c8 chore(release): v0.0.3-alpha.9 2025-07-12 17:03:47 -05:00
c81ae4ee1c fix(fucl): fuck 2025-07-12 17:03:32 -05:00
9e6d82b44d chore(release): v0.0.3-alpha.8 2025-07-12 17:02:14 -05:00
10fcdbe89f fix(change): fuck 2025-07-12 17:01:57 -05:00
5342e60811 chore(release): v0.0.3-alpha.7 2025-07-12 17:00:07 -05:00
ab1d8fa556 fix(release): changes 2025-07-12 16:59:48 -05:00
84091ecdba chore(release): v0.0.3-alpha.6 2025-07-12 16:58:04 -05:00
1ed753506d fix(release): more changes 2025-07-12 16:57:49 -05:00
3d5a8ee464 chore(release): v0.0.3-alpha.5 2025-07-12 16:56:24 -05:00
1980a184e4 fix(release): changes to the changelog portion so its no longer a link 2025-07-12 16:56:08 -05:00
3d803dffdb chore(release): v0.0.3-alpha.4 2025-07-12 16:51:06 -05:00
e3cba33ea1 refactor(frontend): just a change to the frontend 2025-07-12 16:50:09 -05:00
b07c33e5a3 refactor(backend): just a change for this commit stuff 2025-07-12 16:49:51 -05:00
8ba663c038 chore(release): v0.0.3-alpha.3 2025-07-12 16:47:28 -05:00
6a7fcadd2f fix(release): more fixes 2025-07-12 16:47:22 -05:00
710bdd878a chore(release): v0.0.3-alpha.2 2025-07-12 16:40:11 -05:00
aeb154ad83 c 2025-07-12 16:40:04 -05:00
d4575b15a4 chore(release): v0.0.3-alpha.1 2025-07-12 16:38:14 -05:00
1172fe8a7c chore(release): v0.0.3-alpha.0 2025-07-12 16:37:53 -05:00
b7809c94d9 fix(release): something 2025-07-12 16:37:45 -05:00
b82438f2f5 c 2025-07-12 16:35:12 -05:00
78527307b2 chore(release): v0.0.2 2025-07-12 16:34:45 -05:00
211bad836e c 2025-07-12 16:34:39 -05:00
96292589b3 chore(release): v0.0.2-alpha.15 2025-07-12 16:33:30 -05:00
799be62f3c fix(release): cahgnes 2025-07-12 16:33:25 -05:00
81bcc648e3 chore(release): v0.0.2-alpha.14 2025-07-12 16:31:19 -05:00
2386a14d7a fix(release): corrections 2025-07-12 16:31:13 -05:00
5df8c092be chore(release): v0.0.2-alpha.13 2025-07-12 16:29:08 -05:00
f06b621b8d fix(release): conflicting tags 2025-07-12 16:28:47 -05:00
cd064539eb chore(release): v0.0.2-alpha.12 2025-07-12 16:24:23 -05:00
cf2484705a fix(release): removed the intial before bump 2025-07-12 16:24:08 -05:00
afab215a9e fix(release): change to get the release to build then release stuff 2025-07-12 16:20:40 -05:00
6c7f17893b chore(release): v0.0.2-alpha.11 2025-07-12 16:09:14 -05:00
a282940d9b fix(release): var not defined 2025-07-12 16:08:37 -05:00
36b1df7ef8 chore(release): v0.0.2-alpha.10 2025-07-12 16:07:44 -05:00
dc4beb2d27 fix(release): error in function 2025-07-12 16:07:23 -05:00
3203f54ccd chore(release): v0.0.2-alpha.9 2025-07-12 16:06:01 -05:00
f429bd43ab fix(release): checking the build file failes but not sure why 2025-07-12 16:05:33 -05:00
f7da816a2c chore(release): v0.0.2-alpha.8 2025-07-12 16:02:21 -05:00
fdf5e257c6 build(build): linked everything together 2025-07-12 16:01:51 -05:00
8cb416ecc8 ci(default): added in default configs so they work across everything 2025-07-12 15:59:33 -05:00
2c265d79cb chore(release): v0.0.2-alpha.7 2025-07-12 15:56:45 -05:00
c0aa64db63 fix(relrease): maybe finally got it 2025-07-12 15:56:15 -05:00
8622408e0b chore(release): v0.0.2-alpha.6 2025-07-12 15:53:49 -05:00
6fc69fc6bc fix(release fixes): more fixes 2025-07-12 15:52:58 -05:00
6779d1c346 chore(release): v0.0.2-alpha.5 2025-07-12 15:50:56 -05:00
65873bd31f fix(release): more fixes 2025-07-12 15:50:40 -05:00
5948c5cfed chore(release): v0.0.2-alpha.4 2025-07-12 15:42:41 -05:00
494ee3f58e fix(package): added changes to the package.json so we see the release stuff 2025-07-12 15:42:20 -05:00
d266dbde68 chore(release): v0.0.2-alpha.3 2025-07-12 15:38:17 -05:00
5b7f9f2c48 fix(release): more bug fixes 2025-07-12 15:38:09 -05:00
0a9ae1002c chore(release): v0.0.2-alpha.2 2025-07-12 15:36:22 -05:00
a087929f58 chore(release): v0.0.2-alpha.1 2025-07-12 15:36:16 -05:00
f83de9baa2 chore(release): v0.0.2-alpha.0 2025-07-12 15:35:47 -05:00
233298daa5 fix(release): more work on the release stuff 2025-07-12 15:35:24 -05:00
4b0028f7d7 chore(release): v0.0.2-alpha.2 2025-07-12 15:30:51 -05:00
f33554ed97 fix(releases): more fun release stuff 2025-07-12 15:30:44 -05:00
4b9a2254df chore(release): v0.0.2-alpha.1 2025-07-12 15:25:20 -05:00
30b39b836a fix(release): removed version from being passed over 2025-07-12 15:25:02 -05:00
8b40d3f69b chore(release): v0.0.2-alpha.0 2025-07-12 15:21:58 -05:00
09e5fdf209 fix(package): made changes to get the correct alpha passed over in the prerelease stuff 2025-07-12 15:21:43 -05:00
772463e579 ci(pakcage.json): missing plugin 2025-07-12 15:16:07 -05:00
86647034c8 fix(release it): type in how i wrote the release-it file 2025-07-12 15:13:15 -05:00
01e2d404fb refactor(backend): change to just get a version bump 2025-07-12 14:59:09 -05:00
e084663f19 fix(releaseit): changes to get the version to update 2025-07-12 14:54:24 -05:00
c680152004 fix(releaseit): changes to get it to actaully run 2025-07-12 14:52:05 -05:00
e08195177d refactor(package.json): added in prerelease so we can keep it as alpha for now 2025-07-12 14:48:35 -05:00
587f1eb3a2 fix(releases): a few more tweaks to the releasing 2025-07-12 14:46:47 -05:00
508aab3417 build(changelog): commited change log 2025-07-12 14:42:26 -05:00
18aa9e7670 fix(releases): corrections to reduce the build number to be true 2025-07-12 14:41:35 -05:00
8141c6ab69 fix(package json): correction to the version 2025-07-12 14:41:10 -05:00
2a9b571b7a refactor(versionrc): alloed project changes to show in the changelog 2025-07-12 14:31:45 -05:00
320968f994 ci(builds): added better logic to building 2025-07-12 14:31:15 -05:00
eed01197c0 fix(releases): spawn fixes to overcome npx and powershell 2025-07-12 13:23:11 -05:00
a20d377834 refactor(releases): refactoring to get the actual release and changelog to show 2025-07-12 13:20:26 -05:00
1b07f5628a ci(releases): added in release it to add to the build process 2025-07-12 13:08:04 -05:00
0b17faf618 ci(package.json): missing scripts for committing 2025-07-12 12:48:38 -05:00
b370cb17c8 feat(starter): intial starter release 2025-07-12 12:47:57 -05:00
35 changed files with 18571 additions and 26 deletions

40
.gitignore vendored
View File

@@ -1,3 +1,14 @@
# lst ignores
docker-compose.yml
frontend/.tanstack/
frontend/.output/
frontend/.nitro/
releases/
LstWrapper/bin
LstWrapper/publish
LstWrapper/obj
scripts/tmp
# ---> Go
# If you prefer the allow list template instead of the deny list, see community template:
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
@@ -25,30 +36,6 @@ go.work.sum
# env file
.env
# ---> Go.AllowList
# Allowlisting gitignore template for GO projects prevents us
# from adding various unwanted local files, such as generated
# files, developer configurations or IDE-specific files etc.
#
# Recommended: Go.AllowList.gitignore
# Ignore everything
*
# But not these files...
!/.gitignore
!*.go
!go.sum
!go.mod
!README.md
!LICENSE
# !Makefile
# ...even if they are in subdirectories
!*/
# ---> Node
# Logs
@@ -198,3 +185,8 @@ dist
*.resources
test-results/
backend/go.sum
BUILD_NUMBER
scripts/resetDanger.js
LstWrapper/Program_vite_as_Static.txt
scripts/stopPool.go

62
.release-it.json Normal file
View File

@@ -0,0 +1,62 @@
{
"git": {
"commitMessage": "chore(release): v${version}",
"tagName": "v${version}",
"requireCleanWorkingDir": true,
"addUntrackedFiles": true
},
"npm": {
"publish": false
},
"hooks": {
"before:init": "node ./scripts/read-build-number.js",
"after:release": "node ./scripts/create-gitea-release.js ${version}"
},
"github": false,
"plugins": {
"@release-it/conventional-changelog": {
"preset": {
"name": "conventionalcommits",
"types": [
{ "type": "feat", "section": "🌟 Enhancements" },
{ "type": "fix", "section": "🐛 Bug fixes" },
{ "type": "chore", "section": "📝 Chore" },
{ "type": "docs", "section": "📚 Documentation" },
{ "type": "style", "section": "📚 Style" },
{ "type": "refactor", "section": "🛠️ Code Refactor" },
{
"type": "perf",
"section": "🚀 Performance"
},
{ "type": "test", "section": "📝 Testing Code" },
{
"type": "ci",
"section": "📈 Project changes"
},
{
"type": "build",
"hidden": false,
"section": "📈 Project Builds"
}
],
"commitUrlFormat": "{{host}}/{{owner}}/{{repository}}/commit/{{hash}}",
"compareUrlFormat": "{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}",
"issueUrlFormat": "{{host}}/{{owner}}/{{repository}}/issues/{{id}}",
"userUrlFormat": "{{host}}/{{user}}"
},
"infile": "CHANGELOG.md",
"header": "# Changelog\n\nAll notable changes to LST will be documented in this file.\n",
"releaseCommitMessageFormat": "chore(release): {{currentTag}}"
}
},
"@release-it/gitea": {
"host": "https://${GITEA_URL}",
"tokenRef": "GITEA_TOKEN",
"releaseName": "v${version} (build ${BUILD_NUMBER})",
"releaseNotes": "node ./scripts/get-changelog-entry.js ${version}"
},
"files": ["package.json", "CHANGELOG.md"]
}

28
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,28 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"workbench.colorTheme": "Default Dark+",
"prettier.tabWidth": 4,
"terminal.integrated.env.windows": {},
"editor.formatOnSave": true,
"[javascript]": {
"editor.formatOnSave": true
},
"[javascriptreact]": {
"editor.formatOnSave": true
},
"[typescript]": {
"editor.formatOnSave": true
},
"[typescriptreact]": {
"editor.formatOnSave": true
},
"[json]": {
"editor.formatOnSave": true
},
"[graphql]": {
"editor.formatOnSave": true
},
"[handlebars]": {
"editor.formatOnSave": true
}
}

243
CHANGELOG.md Normal file
View File

@@ -0,0 +1,243 @@
# Changelog
All notable changes to LST will be documented in this file.
## [0.0.1-alpha.4](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.3...v0.0.1-alpha.4) (2025-07-16)
### 📈 Project changes
* **build:** changes to ignore the tmp folder in the scripts ([26b018e](https://git.tuffraid.net/cowch/logistics_support_tool/commit/26b018ee3eb408ab3c5ddd9e886987deb3334720))
* **createzip:** changes to include the script folder ([5cb71e5](https://git.tuffraid.net/cowch/logistics_support_tool/commit/5cb71e55476f91a48d095f80be2cea3b6793f8e6))
### 📈 Project Builds
* **build:** script created to build lstv2 and copy over before zipping up also cleanup ([c0d67c2](https://git.tuffraid.net/cowch/logistics_support_tool/commit/c0d67c2a16695e40af7ec52f86fc54344f3b889c))
## [0.0.1-alpha.3](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.2...v0.0.1-alpha.3) (2025-07-16)
### 🌟 Enhancements
* **scripts:** 2 new scripts for the build process ([afe795e](https://git.tuffraid.net/cowch/logistics_support_tool/commit/afe795edd588b823e5459a6762f787152a49a8cb))
### 🛠️ Code Refactor
* **build:** changes to show more details when we run the build stuff ([5ed4a6c](https://git.tuffraid.net/cowch/logistics_support_tool/commit/5ed4a6c081e29da6600949ed2b811551e6a947f7))
* **createzip:** change the name from release to createZip ([6467355](https://git.tuffraid.net/cowch/logistics_support_tool/commit/646735565f28153c0750e7788b349b384bd5c5de))
* **package.json:** changes to the scripts ([7a4840e](https://git.tuffraid.net/cowch/logistics_support_tool/commit/7a4840ef95c86a96e3b8a2e8af124a55af2b01b4))
* **release-it:** changes to the build process and changelog ([c3473ca](https://git.tuffraid.net/cowch/logistics_support_tool/commit/c3473ca60e7e92f68cdff4e4a35bfcff2e7ae37b))
* **releases:** simplified the functions ([a0856d1](https://git.tuffraid.net/cowch/logistics_support_tool/commit/a0856d171a404c3adf52591b3c9da4fae53322d3))
# Changelog
## [0.0.1-alpha.2](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.1...v0.0.1-alpha.2) (2025-07-16)
## [0.0.3-alpha.22](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.21...v0.0.3-alpha.22) (2025-07-12)
### Bug Fixes
* **changelog:** moved packages ([f11e402](https://git.tuffraid.net/cowch/logistics_support_tool/commit/f11e402d16c750c3001ceebbdfd2f073de1e2703))
## [0.0.3-alpha.21](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.19...v0.0.3-alpha.21) (2025-07-12)
### Bug Fixes
* **package.json:** corrections to the commit changelog stuff ([a236d96](https://git.tuffraid.net/cowch/logistics_support_tool/commit/a236d9697198e5474a8c311984c22ae6f0d1901e))
## [0.0.3-alpha.20](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.19...v0.0.3-alpha.20) (2025-07-12)
### Bug Fixes
* **package.json:** corrections to the commit changelog stuff ([a236d96](https://git.tuffraid.net/cowch/logistics_support_tool/commit/a236d9697198e5474a8c311984c22ae6f0d1901e))
## [0.0.3-alpha.19](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.18...v0.0.3-alpha.19) (2025-07-12)
### Bug Fixes
* **changelog:** readd the header back in ([71b5017](https://git.tuffraid.net/cowch/logistics_support_tool/commit/71b5017c82e718f1c63f3862c0953d1554e7cf5b))
## [0.0.3-alpha.18](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.17...v0.0.3-alpha.18) (2025-07-12)
### Bug Fixes
* **build:** minor change to the build system to trigger new tags ([2b9a859](https://git.tuffraid.net/cowch/logistics_support_tool/commit/2b9a859e7e944eee590d0d51b95fa13405d21790))
## [0.0.3-alpha.17](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.16...v0.0.3-alpha.17) (2025-07-12)
### Bug Fixes
* **changelog:** changes here ([46579ac](https://git.tuffraid.net/cowch/logistics_support_tool/commit/46579ac6d9819085d183eba1dafb6b8873f2dd0e))
## [0.0.3-alpha.16](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.15...v0.0.3-alpha.16) (2025-07-12)
### Bug Fixes
* **h:** sssdasjhksdf ([e6041b0](https://git.tuffraid.net/cowch/logistics_support_tool/commit/e6041b03ee38888fa4e53a498b0414941ff701de))
## [0.0.3-alpha.15](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.14...v0.0.3-alpha.15) (2025-07-12)
### Bug Fixes
* **d:** d ([7b1a0b0](https://git.tuffraid.net/cowch/logistics_support_tool/commit/7b1a0b054b05e33ecd754b91a080fc83ff214630))
## [0.0.3-alpha.14](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.13...v0.0.3-alpha.14) (2025-07-12)
### Bug Fixes
* **changelog:** more change log stuff ([3661cf5](https://git.tuffraid.net/cowch/logistics_support_tool/commit/3661cf5c25b919035853a135bc89d1fc3d5df428))
## [0.0.3-alpha.12](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.11...v0.0.3-alpha.12) (2025-07-12)
### Bug Fixes
* **release:** re ([8330503](https://git.tuffraid.net/cowch/logistics_support_tool/commit/83305031fd8bbf7465269bd517a318d12f1e8414))
## [0.0.3-alpha.11](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.10...v0.0.3-alpha.11) (2025-07-12)
### Bug Fixes
* **bogus:** this is crap ([8044547](https://git.tuffraid.net/cowch/logistics_support_tool/commit/80445474881da87ee431d0c3212dcd458a3ec69d))
## [0.0.3-alpha.10](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.9...v0.0.3-alpha.10) (2025-07-12)
### Bug Fixes
* **jfhsldkfhja:** ghjskdhkflasfdfg ([120ee75](https://git.tuffraid.net/cowch/logistics_support_tool/commit/120ee75bf763a8a98aae1fd8f00925eee203af2a))
## [0.0.3-alpha.9](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.8...v0.0.3-alpha.9) (2025-07-12)
### Bug Fixes
* **fucl:** fuck ([c81ae4e](https://git.tuffraid.net/cowch/logistics_support_tool/commit/c81ae4ee1c28854313705786d1d03d9886abaca0))
## [0.0.3-alpha.8](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.7...v0.0.3-alpha.8) (2025-07-12)
### Bug Fixes
* **change:** fuck ([10fcdbe](https://git.tuffraid.net/cowch/logistics_support_tool/commit/10fcdbe89f54548800fbbca86a011ecb8a9c9234))
## [0.0.3-alpha.7](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.6...v0.0.3-alpha.7) (2025-07-12)
### Bug Fixes
* **release:** changes ([ab1d8fa](https://git.tuffraid.net/cowch/logistics_support_tool/commit/ab1d8fa5562f82f566d9777e61634e90bb6eb1e3))
## [0.0.3-alpha.6](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.5...v0.0.3-alpha.6) (2025-07-12)
### Bug Fixes
* **release:** more changes ([1ed7535](https://git.tuffraid.net/cowch/logistics_support_tool/commit/1ed753506d040e94fd8eb9c2978d96e8f38f1fc5))
## [0.0.3-alpha.5](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.4...v0.0.3-alpha.5) (2025-07-12)
### Bug Fixes
* **release:** changes to the changelog portion so its no longer a link ([1980a18](https://git.tuffraid.net/cowch/logistics_support_tool/commit/1980a184e4a6c4ddbd43f24771453e88d0e03198))
## [0.0.3-alpha.4](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.3...v0.0.3-alpha.4) (2025-07-12)
## [0.0.3-alpha.3](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.2...v0.0.3-alpha.3) (2025-07-12)
### Bug Fixes
* **release:** more fixes ([6a7fcad](https://git.tuffraid.net/cowch/logistics_support_tool/commit/6a7fcadd2f8c52faec33bab7b2e73b0ef9943895))
## [0.0.3-alpha.2](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.3-alpha.1...v0.0.3-alpha.2) (2025-07-12)
## [0.0.3-alpha.1](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2...v0.0.3-alpha.1) (2025-07-12)
### Bug Fixes
* **release:** something ([b7809c9](https://git.tuffraid.net/cowch/logistics_support_tool/commit/b7809c94d96a2168804e0b82413537af1c064b31))
## [0.0.2](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.15...v0.0.2) (2025-07-12)
## [0.0.2-alpha.15](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.14...v0.0.2-alpha.15) (2025-07-12)
### Bug Fixes
* **release:** cahgnes ([799be62](https://git.tuffraid.net/cowch/logistics_support_tool/commit/799be62f3c77631a4108ee9e92f19157ab597dff))
## [0.0.2-alpha.14](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.13...v0.0.2-alpha.14) (2025-07-12)
### Bug Fixes
* **release:** corrections ([2386a14](https://git.tuffraid.net/cowch/logistics_support_tool/commit/2386a14d7a76f89653a13de3a0d86e1bf55934d5))
## [0.0.2-alpha.13](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.12...v0.0.2-alpha.13) (2025-07-12)
### Bug Fixes
* **release:** conflicting tags ([f06b621](https://git.tuffraid.net/cowch/logistics_support_tool/commit/f06b621b8dc0cc8fc7084fa259408f0faafb6b74))
## [0.0.2-alpha.12](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.11...v0.0.2-alpha.12) (2025-07-12)
### Bug Fixes
* **release:** change to get the release to build then release stuff ([afab215](https://git.tuffraid.net/cowch/logistics_support_tool/commit/afab215a9e29732d8236c45c4a8417c9b1e02b1e))
* **release:** removed the intial before bump ([cf24847](https://git.tuffraid.net/cowch/logistics_support_tool/commit/cf2484705a65d065ec75690e21bf6e8f2e32a0f5))
## [0.0.2-alpha.11](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.10...v0.0.2-alpha.11) (2025-07-12)
### Bug Fixes
* **release:** var not defined ([a282940](https://git.tuffraid.net/cowch/logistics_support_tool/commit/a282940d9b1334743af31b96fbb3fd8228ee290a))
## [0.0.2-alpha.10](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.9...v0.0.2-alpha.10) (2025-07-12)
### Bug Fixes
* **release:** error in function ([dc4beb2](https://git.tuffraid.net/cowch/logistics_support_tool/commit/dc4beb2d2768c8e5f5f3f629b13bb38373c2a0a2))
## [0.0.2-alpha.9](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.8...v0.0.2-alpha.9) (2025-07-12)
### Bug Fixes
* **release:** checking the build file failes but not sure why ([f429bd4](https://git.tuffraid.net/cowch/logistics_support_tool/commit/f429bd43ab85df0419c1f06fb551d9af5fd418ae))
## [0.0.2-alpha.8](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.7...v0.0.2-alpha.8) (2025-07-12)
## [0.0.2-alpha.7](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.6...v0.0.2-alpha.7) (2025-07-12)
### Bug Fixes
* **relrease:** maybe finally got it ([c0aa64d](https://git.tuffraid.net/cowch/logistics_support_tool/commit/c0aa64db634cff5a6597215035929f16b0edfca0))
## [0.0.2-alpha.6](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.5...v0.0.2-alpha.6) (2025-07-12)
### Bug Fixes
* **release fixes:** more fixes ([6fc69fc](https://git.tuffraid.net/cowch/logistics_support_tool/commit/6fc69fc6bcbda7f978dbd332ef23ef0501653c50))
## [0.0.2-alpha.5](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.4...v0.0.2-alpha.5) (2025-07-12)
### Bug Fixes
* **release:** more fixes ([65873bd](https://git.tuffraid.net/cowch/logistics_support_tool/commit/65873bd31f4c4e5cc0a77aa171822cd842353e45))
## [0.0.2-alpha.4](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.3...v0.0.2-alpha.4) (2025-07-12)
### Bug Fixes
* **package:** added changes to the package.json so we see the release stuff ([494ee3f](https://git.tuffraid.net/cowch/logistics_support_tool/commit/494ee3f58ea5af3d18a640ffff99918f460fb4aa))
## [0.0.2-alpha.3](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.2...v0.0.2-alpha.3) (2025-07-12)
### Bug Fixes
* **release:** more bug fixes ([5b7f9f2](https://git.tuffraid.net/cowch/logistics_support_tool/commit/5b7f9f2c482531ea52100bff191b943e218e72df))
* **release:** more work on the release stuff ([233298d](https://git.tuffraid.net/cowch/logistics_support_tool/commit/233298daa5850178974be675bb8566fa8c0a8b0a))
## [0.0.2-alpha.2](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.1...v0.0.2-alpha.2) (2025-07-12)
### Bug Fixes
* **releases:** more fun release stuff ([f33554e](https://git.tuffraid.net/cowch/logistics_support_tool/commit/f33554ed973e65e2488512bfd8359577967698b7))
## [0.0.2-alpha.1](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.2-alpha.0...v0.0.2-alpha.1) (2025-07-12)
### Bug Fixes
* **package:** made changes to get the correct alpha passed over in the prerelease stuff ([09e5fdf](https://git.tuffraid.net/cowch/logistics_support_tool/commit/09e5fdf209f1a11f975d77e445f777623a5d3509))
* **release it:** type in how i wrote the release-it file ([8664703](https://git.tuffraid.net/cowch/logistics_support_tool/commit/86647034c8f5c9b04c6f51fb95b929de4f65fc63))
* **release:** removed version from being passed over ([30b39b8](https://git.tuffraid.net/cowch/logistics_support_tool/commit/30b39b836a8ac01aea3f7a4ddf3b6ec25d6a36cd))
## [0.0.1-alpha.4.14-cowch](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.3.14-cowch...v0.0.1-alpha.4.14-cowch) (2025-07-12)
### Bug Fixes
* **releaseit:** changes to get the version to update ([e084663](https://git.tuffraid.net/cowch/logistics_support_tool/commit/e084663f19ada722007bd00c73a4ca7015a4f71e))
## [0.0.1-alpha.3.14-cowch](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.2.14-cowch...v0.0.1-alpha.3.14-cowch) (2025-07-12)
### Bug Fixes
* **releaseit:** changes to get it to actaully run ([c680152](https://git.tuffraid.net/cowch/logistics_support_tool/commit/c680152004b85442cad5bf6eeac407de67fead32))
## [0.0.1-alpha.2.14-cowch](https://git.tuffraid.net/cowch/logistics_support_tool/compare/v0.0.1-alpha.1.14-cowch...v0.0.1-alpha.2.14-cowch) (2025-07-12)
### Bug Fixes
* **package json:** correction to the version ([8141c6a](https://git.tuffraid.net/cowch/logistics_support_tool/commit/8141c6ab698ce246f999ed304d306f72c50a2708))
* **releases:** a few more tweaks to the releasing ([587f1eb](https://git.tuffraid.net/cowch/logistics_support_tool/commit/587f1eb3a2841780903db6c9b6f4fa760baa29e9))
* **releases:** corrections to reduce the build number to be true ([18aa9e7](https://git.tuffraid.net/cowch/logistics_support_tool/commit/18aa9e7670ffd531c0c03b946dad599600bd5c5b))
## [0.0.1-alpha.1.14-cowch](https://git.tuffraid.net/cowch/logistics_support_tool/compare/0.0.2...v0.0.1-alpha.1.14-cowch) (2025-07-12)
## v0.0.1-alpha-1 (2025-07-12)
### Features
* **starter:** intial starter release ([b370cb1](https://git.tuffraid.net/cowch/logistics_support_tool/commit/b370cb17c86bb3f8727cebfa607bb6423fc89644))
### Bug Fixes
* **releases:** spawn fixes to overcome npx and powershell ([eed0119](https://git.tuffraid.net/cowch/logistics_support_tool/commit/eed01197c0825e9039c3a2f0d8845c3b21380faf))

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

85
LstWrapper/Program.cs Normal file
View File

@@ -0,0 +1,85 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using System.Net.Http;
var builder = WebApplication.CreateBuilder(args);
// to build the binary dotnet publish -c Release -o ./publish
// Go backend
builder.Services.AddHttpClient("GoBackend", client =>
{
client.BaseAddress = new Uri("http://localhost:8080");
client.Timeout = TimeSpan.FromSeconds(30);
});
// Node frontend
builder.Services.AddHttpClient("NodeFrontend", client =>
{
client.BaseAddress = new Uri("http://localhost:3000");
client.Timeout = TimeSpan.FromSeconds(30);
});
var app = builder.Build();
app.UseStaticFiles();
app.Use((Func<HttpContext, Func<Task>, Task>)(async (context, next) =>
{
var clientFactory = context.RequestServices.GetRequiredService<IHttpClientFactory>();
var isApiRequest =
context.Request.Path.StartsWithSegments("/api") ||
context.Request.Path.StartsWithSegments("/graphql") ||
context.Request.Path.StartsWithSegments("/auth") ||
!context.Request.Method.Equals("GET", StringComparison.OrdinalIgnoreCase);
var client = clientFactory.CreateClient(isApiRequest ? "GoBackend" : "NodeFrontend");
try
{
var requestUri = context.Request.Path + context.Request.QueryString;
var request = new HttpRequestMessage(
new HttpMethod(context.Request.Method),
requestUri);
foreach (var header in context.Request.Headers)
{
if (!request.Headers.TryAddWithoutValidation(header.Key, header.Value.ToArray()))
{
request.Content ??= new StreamContent(context.Request.Body);
request.Content.Headers.TryAddWithoutValidation(header.Key, header.Value.ToArray());
}
}
if (context.Request.ContentLength > 0 || context.Request.Headers.ContainsKey("Transfer-Encoding"))
{
request.Content = new StreamContent(context.Request.Body);
}
var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, context.RequestAborted);
context.Response.StatusCode = (int)response.StatusCode;
foreach (var header in response.Headers)
{
context.Response.Headers[header.Key] = header.Value.ToArray();
}
foreach (var header in response.Content.Headers)
{
context.Response.Headers[header.Key] = header.Value.ToArray();
}
context.Response.Headers.Remove("transfer-encoding");
await response.Content.CopyToAsync(context.Response.Body);
}
catch (HttpRequestException ex)
{
context.Response.StatusCode = isApiRequest ? 503 : 502;
await context.Response.WriteAsync($"{(isApiRequest ? "Go API" : "Frontend")} unavailable: {ex.Message}");
}
}));
app.Run();

View File

@@ -0,0 +1,23 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5015",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7208;http://localhost:5015",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

15
LstWrapper/web.config Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\LstWrapper.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>

View File

@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<body>
<p>The new begining to lst</p>
</body>
</html>

View File

@@ -1,6 +1,6 @@
# logistics_support_tool
This is the new logisitcs support tool
This is the new logisitcs support tool
backend written in go
front end written in vite/react
@@ -9,4 +9,4 @@ db postgress.
this will also include a primary server to house all the common configs across all servers to keep it more easy to admin. the servers will cache this data and check for changes every hour
The new lst will run in docker by building your own image and deploying or pulling the image down.
you will also be able to run it in windows or linux.
you will also be able to run it in windows or linux.

35
backend/Dockerfile Normal file
View File

@@ -0,0 +1,35 @@
FROM golang:1.24.4-alpine3.22 AS builder
WORKDIR /app
COPY go.mod go.sum ./
# COPY VERSION ./VERSION
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o lst_go ./main.go
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/lst_go .
# COPY --from=builder /app/VERSION ./
# create the volume paths
RUN mkdir -p /data
VOLUME /data
# this port is hardcoded in the app right now.
EXPOSE 8080
ENV RUNNING_IN_DOCKER=true
# VOLUME /data
# ENV DB_TYPE=sqlite
# ENV DB_PATH=/data/lst_go.db
# ENV POSTGRES_HOST=host
# ENV POSTGRES_USER=user
# ENV POSTGRES_PASSWORD=pass
CMD ["./lst_go"]

34
backend/go.mod Normal file
View File

@@ -0,0 +1,34 @@
module lst.net
go 1.24.3
require github.com/gin-gonic/gin v1.10.1
require (
github.com/bytedance/sonic v1.11.6 // indirect
github.com/bytedance/sonic/loader v0.1.1 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.20.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.23.0 // indirect
golang.org/x/net v0.25.0 // indirect
golang.org/x/sys v0.20.0 // indirect
golang.org/x/text v0.15.0 // indirect
google.golang.org/protobuf v1.34.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

29
backend/main.go Normal file
View File

@@ -0,0 +1,29 @@
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
fmt.Println("Welcome to lst backend where all the fun happens.")
r := gin.Default()
r.GET("/api/ping", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "pong"})
})
r.Any("/api", errorApiLoc)
r.Any("/", errorLoc)
r.Run(":8080")
}
func errorLoc(c *gin.Context) {
c.JSON(http.StatusBadRequest, gin.H{"message": "welcome to lst system you might have just encountered an incorrect area of the app"})
}
func errorApiLoc(c *gin.Context) {
c.JSON(http.StatusBadRequest, gin.H{"message": "looks like you have encountered an api route that dose not exist"})
}

View File

@@ -0,0 +1,27 @@
---
services:
lst_backend:
# build: . # Tell Docker Compose to build the image using the Dockerfile in the current directory
build:
context: .
dockerfile: ./backend/Dockerfile
image: git.tuffraid.net/cowch/logistics_support_tool:backend-latest
container_name: lst_backend # A friendly name for your running container
volumes:
- /path/to/backend/data:/data
ports:
- "8080:8080"
restart: unless-stopped
lst_frontend:
# build: . # Tell Docker Compose to build the image using the Dockerfile in the current directory
build:
context: .
dockerfile: ./frontend/Dockerfile
image: git.tuffraid.net/cowch/logistics_support_tool:frontend-latest
container_name: lst_frontend # A friendly name for your running container
volumes:
- /path/to/frontend/data:/data
ports:
- "3120:3000"
restart: unless-stopped

29
frontend/Dockerfile Normal file
View File

@@ -0,0 +1,29 @@
# Build Stage
FROM node:24-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN npm install
# Build the Next.js app
FROM node:24-alpine AS builder
WORKDIR /app
COPY . ./
COPY --from=deps /app/node_modules ./node_modules
# Run other commands like prisma or drizzle
RUN npm run build
# if more commands are needed after here do the same
# Final stage
FROM node:24-alpine
WORKDIR /app
COPY --from=builder /app/.nitro /app/.nitro
COPY --from=builder /app/.output /app/.output
COPY --from=builder /app/.tanstack /app/.tanstack
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]

10170
frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

27
frontend/package.json Normal file
View File

@@ -0,0 +1,27 @@
{
"name": "frontend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@tanstack/react-router": "^1.127.3",
"@tanstack/react-start": "^1.127.4",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"vite": "^7.0.4"
},
"devDependencies": {
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"typescript": "^5.8.3",
"vite-tsconfig-paths": "^5.1.4"
}
}

View File

@@ -0,0 +1,59 @@
/* eslint-disable */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// This file was automatically generated by TanStack Router.
// You should NOT make any changes in this file as it will be overwritten.
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from './routes/__root'
import { Route as IndexRouteImport } from './routes/index'
const IndexRoute = IndexRouteImport.update({
id: '/',
path: '/',
getParentRoute: () => rootRouteImport,
} as any)
export interface FileRoutesByFullPath {
'/': typeof IndexRoute
}
export interface FileRoutesByTo {
'/': typeof IndexRoute
}
export interface FileRoutesById {
__root__: typeof rootRouteImport
'/': typeof IndexRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath
fullPaths: '/'
fileRoutesByTo: FileRoutesByTo
to: '/'
id: '__root__' | '/'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
IndexRoute: typeof IndexRoute
}
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
'/': {
id: '/'
path: '/'
fullPath: '/'
preLoaderRoute: typeof IndexRouteImport
parentRoute: typeof rootRouteImport
}
}
}
const rootRouteChildren: RootRouteChildren = {
IndexRoute: IndexRoute,
}
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
._addFileTypes<FileRouteTypes>()

19
frontend/src/router.tsx Normal file
View File

@@ -0,0 +1,19 @@
// src/router.tsx
import { createRouter as createTanStackRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'
export function createRouter() {
const router = createTanStackRouter({
basepath: '/lst',
routeTree,
scrollRestoration: true,
})
return router
}
declare module '@tanstack/react-router' {
interface Register {
router: ReturnType<typeof createRouter>
}
}

View File

@@ -0,0 +1,48 @@
/// <reference types="vite/client" />
import type { ReactNode } from 'react'
import {
Outlet,
createRootRoute,
HeadContent,
Scripts,
} from '@tanstack/react-router'
export const Route = createRootRoute({
head: () => ({
meta: [
{
charSet: 'utf-8',
},
{
name: 'viewport',
content: 'width=device-width, initial-scale=1',
},
{
title: 'TanStack Start Starter',
},
],
}),
component: RootComponent,
})
function RootComponent() {
return (
<RootDocument>
<Outlet />
</RootDocument>
)
}
function RootDocument({ children }: Readonly<{ children: ReactNode }>) {
return (
<html>
<head>
<HeadContent />
</head>
<body>
{children}
<Scripts />
</body>
</html>
)
}

View File

@@ -0,0 +1,51 @@
// src/routes/index.tsx
import * as fs from "node:fs";
import { createFileRoute, useRouter } from "@tanstack/react-router";
import { createServerFn } from "@tanstack/react-start";
const filePath = "count.txt";
async function readCount() {
return parseInt(
await fs.promises.readFile(filePath, "utf-8").catch(() => "0")
);
}
const getCount = createServerFn({
method: "GET",
}).handler(() => {
return readCount();
});
const updateCount = createServerFn({ method: "POST" })
.validator((d: number) => d)
.handler(async ({ data }) => {
const count = await readCount();
await fs.promises.writeFile(filePath, `${count + data}`);
});
export const Route = createFileRoute("/")({
component: Home,
loader: async () => await getCount(),
});
function Home() {
const router = useRouter();
const state = Route.useLoaderData();
return (
<div>
<p>This is just something to put in here</p>
<button
type="button"
onClick={() => {
updateCount({ data: 1 }).then(() => {
router.invalidate();
});
}}
>
Add 1 to {state}?
</button>
</div>
);
}

10
frontend/tsconfig.json Normal file
View File

@@ -0,0 +1,10 @@
{
"compilerOptions": {
"jsx": "react-jsx",
"moduleResolution": "Bundler",
"module": "ESNext",
"target": "ES2022",
"skipLibCheck": true,
"strictNullChecks": true
}
}

11
frontend/vite.config.ts Normal file
View File

@@ -0,0 +1,11 @@
import { defineConfig } from 'vite'
import tsConfigPaths from 'vite-tsconfig-paths'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
export default defineConfig({
base: '/lst/',
server: {
port: 3000,
},
plugins: [tsConfigPaths(), tanstackStart({ target: 'node-server' })],
})

6881
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

42
package.json Normal file
View File

@@ -0,0 +1,42 @@
{
"name": "logistics_support_tool",
"version": "0.0.1-alpha.4",
"description": "This is the new logisitcs support tool",
"private": true,
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"backend": "cd backend && go run .",
"build": "powershell -File ./scripts/build.ps1",
"docker:front": "docker build -t logistics_support_tool:frontend-latest -f frontend/Dockerfile ./frontend",
"docker:back": "docker build -t logistics_support_tool:backend-latest -f backend/Dockerfile ./backend",
"docker": "powershell -File ./scripts/dockerBuild.ps1",
"createZip": "powershell -File ./scripts/createZip.ps1",
"release": "release-it --verbose --non-interactive --preRelease=alpha",
"commit": "cz"
},
"repository": {
"type": "git",
"url": "https://git.tuffraid.net/cowch/logistics_support_tool.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "module",
"devDependencies": {
"@release-it/conventional-changelog": "^10.0.1",
"cz-conventional-changelog": "^3.3.0",
"release-it": "^19.0.3",
"standard-version": "^9.5.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"dependencies": {
"dotenv": "^17.2.0",
"fs-extra": "^11.3.0",
"node-fetch": "^3.3.2"
}
}

169
scripts/build.ps1 Normal file
View File

@@ -0,0 +1,169 @@
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$rootDir = Join-Path $scriptDir ".."
$releaseScript = Join-Path $scriptDir "release.ps1"
$packageJsonPath = Join-Path $rootDir "package.json"
# tmp scripts to get lstv2 into this build and zipped up with everything
. (Join-Path $PSScriptRoot "lstV2Build.ps1")
# will run the lstv2 build first so we know for sure its copied over
Build-LstV2-And-Copy
# Path to BUILD_NUMBER file, assuming root is one level up from scripts
$buildNumberFile = Join-Path $scriptDir "..\BUILD_NUMBER"
$envFile = Join-Path $rootDir ".env"
if (Test-Path $envFile) {
Write-Host "Loading environment variables from $envFile"
Get-Content $envFile | ForEach-Object {
if ($_ -match "^\s*([^#][^=]*)=(.*)$") {
$name = $matches[1].Trim()
$value = $matches[2].Trim()
[System.Environment]::SetEnvironmentVariable($name, $value)
}
}
} else {
Write-Host ".env file not found at $envFile"
}
if (-not $env:BUILD_NAME) {
Write-Warning "BUILD_NAME environment variable is not set. Please make sure you have entered the correct info the env"
exit 1
}
function Get-PackageVersion {
param (
[string]$packageJsonPath
)
if (-not (Test-Path $packageJsonPath)) {
Write-Warning "package.json not found at $packageJsonPath"
return $null
}
$jsonContent = Get-Content $packageJsonPath -Raw
try {
$json = $jsonContent | ConvertFrom-Json
return $json.version
}
catch {
Write-Warning "Failed to parse package.json: $_"
return $null
}
}
$version = Get-PackageVersion -packageJsonPath $packageJsonPath
Write-Host "Project version from package.json is: $version"
$buildNumberFile = Join-Path $rootDir "BUILD_NUMBER"
if (-not (Test-Path $buildNumberFile)) {
$initialBuildValue = "1-$($env:BUILD_NAME)"
Write-Host "BUILD_NUMBER file not found. Creating with value: $initialBuildValue"
Set-Content -Path $buildNumberFile -Value $initialBuildValue
} else {
Write-Host "BUILD_NUMBER file exists at $buildNumberFile, and will not be created"
}
function Update-BuildNumber {
if (-not (Test-Path $buildNumberFile)) {
Write-Warning "BUILD_NUMBER file not found at $buildNumberFile"
return $null
}
$current = Get-Content $buildNumberFile -Raw
$current = $current.Trim()
if ($current -match '^(\d+)-(.*)$') {
$number = [int]$matches[1]
$name = $matches[2]
$newNumber = $number + 1
$newBuildNumber = "$newNumber-$name"
Set-Content -Path $buildNumberFile -Value $newBuildNumber
Write-Host "Build number updated from $current to $newBuildNumber"
return $newBuildNumber
} else {
Write-Warning "BUILD_NUMBER file content '$current' is not in the expected 'number-name' format."
return $null
}
}
Push-Location $rootDir/backend
Write-Host "Building the app"
go build -ldflags "-X main.version=$($version)-$($initialBuildValue)" -o lst_backend.exe ./main.go
if ($LASTEXITCODE -ne 0) {
Write-Warning "Backend build failed!"
Pop-Location
break
}
Write-Host "Backend build finished successfully."
Pop-Location
Push-Location $rootDir/frontend
Write-Host "Building the frontend."
npm run build
if ($LASTEXITCODE -ne 0) {
Write-Warning "Fronend build failed!"
Pop-Location
break
}
Write-Host "Fronend build finished successfully."
Pop-Location
Write-Host "Building wrapper"
Push-Location $rootDir/LstWrapper
dotnet publish -c Release -o ./publish
Pop-Location
try {
Update-BuildNumber
Write-Host "Zipping up the release"
npm run createZip
if ($LASTEXITCODE -ne 0) {
throw "Failed to create release zip"
}
$choice = Read-Host "Are we going to create a release? y/N"
if ($choice -eq "y" -or $choice -eq "Y") {
Write-Host "Creating release..."
# This will:
# 1. Update version in package.json
# 2. Generate changelog
# 3. Create git tag
# 4. Push to remote
# 5. Create Gitea release via our script
npm run release
# deleteing the temp folder so we always cleaned up
Delete-Tmp-Folder
if ($LASTEXITCODE -ne 0) {
throw "Failed to create Gitea release"
}
}
} catch {
Write-Warning "Release process failed: $_"
# deleteing the temp folder so we always cleaned up
Delete-Tmp-Folder
exit 1
}
break

View File

@@ -0,0 +1,124 @@
import fs from "fs-extra";
import path from "path";
import { fileURLToPath } from "url";
import fetch from "node-fetch";
import dotenv from "dotenv";
dotenv.config({ path: "./.env" });
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const version = process.argv[2];
if (!version) {
console.error("Version not passed to create-gitea-release.js");
process.exit(1);
}
const { GITEA_URL, GITEA_USERNAME, GITEA_REPO, GITEA_TOKEN } = process.env;
if (!GITEA_URL || !GITEA_USERNAME || !GITEA_REPO || !GITEA_TOKEN) {
console.error("Missing required environment variables");
process.exit(1);
}
const getChangelogContent = async () => {
try {
const changelogPath = path.resolve(__dirname, "../CHANGELOG.md");
const content = await fs.readFile(changelogPath, "utf8");
// Extract the section for the current version
const versionHeading = `## [${version}]`;
const sections = content.split(/(?=^## \[)/m); // Split at version headings
if (sections.length < 2) {
console.warn("Couldn't find version section in changelog");
return "No changelog content available.";
}
// The first section is the latest version
const latestSection = sections[1];
return latestSection.trim();
} catch (err) {
console.error("Error reading changelog:", err);
return "No changelog content available.";
}
};
const createOrUpdateRelease = async (releaseNotes) => {
const tagName = `v${version}`;
const apiBase = `https://${GITEA_URL}/api/v1/repos/${GITEA_USERNAME}/${GITEA_REPO}`;
try {
const existing = await fetch(`${apiBase}/releases/tags/${tagName}`, {
headers: { Authorization: `token ${GITEA_TOKEN}` },
});
if (existing.ok) {
// Update existing release
const existingRelease = await existing.json();
console.log(`Updating existing release ${tagName}`);
const response = await fetch(
`${apiBase}/releases/${existingRelease.id}`,
{
method: "PATCH",
headers: {
Authorization: `token ${GITEA_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: tagName,
body: releaseNotes,
draft: false,
prerelease: false, // Change to true if you want prereleases
}),
}
);
if (!response.ok)
throw new Error(`Failed to update release: ${response.status}`);
const release = await response.json();
console.log("Release updated:", release.html_url);
return release;
} else if (existing.status === 404) {
// Create new release
console.log(`Creating new release ${tagName}`);
const response = await fetch(`${apiBase}/releases`, {
method: "POST",
headers: {
Authorization: `token ${GITEA_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
tag_name: tagName,
name: `Release ${version}`,
body: releaseNotes,
draft: false,
prerelease: false, // Change to true if you want prereleases
}),
});
if (!response.ok)
throw new Error(`Failed to create release: ${response.status}`);
const release = await response.json();
console.log("Release created:", release.html_url);
return release;
} else {
throw new Error(`Failed to check release: ${existing.status}`);
}
} catch (error) {
console.error("Error in createOrUpdateRelease:", error);
throw error;
}
};
(async () => {
try {
const releaseNotes = await getChangelogContent();
await createOrUpdateRelease(releaseNotes);
} catch (error) {
console.error("Release failed:", error);
process.exit(1);
}
})();

106
scripts/createZip.ps1 Normal file
View File

@@ -0,0 +1,106 @@
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$rootDir = Join-Path $scriptDir ".."
$packageJsonPath = Join-Path $rootDir "package.json"
$env:GOOS = "windows"
$env:GOARCH = "amd64"
$keepReleases = 10
function Get-PackageVersion {
param (
[string]$packageJsonPath
)
if (-not (Test-Path $packageJsonPath)) {
Write-Warning "package.json not found at $packageJsonPath"
return $null
}
$jsonContent = Get-Content $packageJsonPath -Raw
try {
$json = $jsonContent | ConvertFrom-Json
return $json.version
}
catch {
Write-Warning "Failed to parse package.json: $_"
return $null
}
}
$version = Get-PackageVersion -packageJsonPath $packageJsonPath
Write-Host "Project version from package.json is: $version"
$buildNumberFile = Join-Path $rootDir "BUILD_NUMBER"
if (Test-Path $buildNumberFile) {
$buildNumber = Get-Content $buildNumberFile -Raw
$buildNumber = $buildNumber.Trim()
Write-Host "Current build number: $buildNumber"
} else {
Write-Warning "BUILD_NUMBER file not found at $buildNumberFile"
}
$releaseFolder = Join-Path $rootDir "releases"
$zipName = "release-v$version-$buildNumber.zip"
$zipPath = Join-Path $releaseFolder $zipName
if (-not (Test-Path $releaseFolder)) {
New-Item -ItemType Directory -Path $releaseFolder | Out-Null
}
# Remove zip if it already exists
if (Test-Path $zipPath) {
Write-Host "Removing existing zip: $zipPath"
Remove-Item $zipPath -Force
}
# Clean up older release files (keep only newest X)
$existingZips = Get-ChildItem -Path $releaseFolder -Filter "release-*.zip" | Sort-Object LastWriteTime -Descending
if ($existingZips.Count -gt $keepReleases) {
$toRemove = $existingZips | Select-Object -Skip $keepReleases
foreach ($file in $toRemove) {
Write-Host "Deleting old release: $($file.Name)"
Remove-Item $file.FullName -Force
}
}
Write-Host "`nPackaging release: $($zipName)"
# Create a temporary staging directory
$tempStageDir = New-Item -ItemType Directory -Path (Join-Path $env:TEMP "lst_staging") -Force
# Copy files to organized structure
$filesToCopy = @(
@{ Source = "backend\lst_backend.exe"; Destination = "backend\lst_backend.exe" },
@{ Source = "LstWrapper\publish"; Destination = "lstwrapper\" },
@{ Source = "frontend\.nitro"; Destination = "frontend\.nitro" },
@{ Source = "frontend\.tanstack"; Destination = "frontend\.tanstack" },
@{ Source = "frontend\.output"; Destination = "frontend\.output" },
@{ Source = "frontend\public"; Destination = "frontend\public" },
@{ Source = "package.json"; Destination = "package.json" },
@{ Source = "CHANGELOG.md"; Destination = "CHANGELOG.md" },
@{ Source = "README.md"; Destination = "README.md" },
# scripts to be copied over
@{ Source = "scripts\tmp"; Destination = "scripts\tmp" }
@{ Source = "scripts\iisControls.ps1"; Destination = "scripts\iisControls.ps1" }
)
foreach ($file in $filesToCopy) {
$destPath = Join-Path $tempStageDir $file.Destination
New-Item -ItemType Directory -Path (Split-Path $destPath -Parent) -Force | Out-Null
Copy-Item -Path $file.Source -Destination $destPath -Recurse -Force
}
# Create the zip from the staged directory
Compress-Archive -Path "$tempStageDir\*" -DestinationPath $zipPath
# Clean up temporary directory
Remove-Item $tempStageDir -Recurse -Force
Write-Host "`nRelease package created at: $($zipPath)"
Write-Host "Organized structure:"
Write-Host "- backend/"
Write-Host "- frontend/"
Write-Host "- lstwrapper/"
Write-Host "- CHANGELOG.md"
Write-Host "- README.md"

15
scripts/dockerBuild.ps1 Normal file
View File

@@ -0,0 +1,15 @@
Write-Host "Building the docker images for front and backend"
docker build -t logistics_support_tool:frontend-latest -f ./frontend/Dockerfile --no-cache ./frontend
docker build -t logistics_support_tool:backend-latest -f ./backend/Dockerfile --no-cache ./backend
Write-Host "Tagging the builds with latest this is for testing test basically."
docker tag logistics_support_tool:frontend-latest git.tuffraid.net/cowch/logistics_support_tool:frontend-latest
docker tag logistics_support_tool:backend-latest git.tuffraid.net/cowch/logistics_support_tool:backend-latest
# docker build -t logistics_support_tool:frontend-latest --no-cache .
Write-Host "Push both builds to our gitea server."
docker push git.tuffraid.net/cowch/logistics_support_tool:frontend-latest
docker push git.tuffraid.net/cowch/logistics_support_tool:backend-latest
Write-Host "Pull the new images to our docker system"
docker compose -f ./docker-compose.yml up -d --force-recreate

View File

@@ -0,0 +1,42 @@
import fs from "fs-extra";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const version = process.argv[2];
if (!version) {
console.error("Version argument is required");
process.exit(1);
}
async function getChangelogEntry() {
try {
const changelogPath = path.resolve(__dirname, "../../CHANGELOG.md");
const content = await fs.readFile(changelogPath, "utf8");
// Find the section for this version
const versionHeader = `## [${version}]`;
const sections = content.split(versionHeader);
if (sections.length < 2) {
console.warn(`No changelog entry found for version ${version}`);
return `Release ${version}`;
}
// Extract the content for this version
const versionContent = sections[1].split("\n## ")[0].trim();
// Add the version header back
return `${versionHeader}\n${versionContent}`;
} catch (error) {
console.error("Error reading changelog:", error);
return `Release ${version}`;
}
}
// Output the changelog entry (release-it will capture this stdout)
getChangelogEntry()
.then(console.log)
.catch(() => process.exit(1));

46
scripts/iisControls.ps1 Normal file
View File

@@ -0,0 +1,46 @@
param (
[string]$ServerName,
[string]$AppPoolName,
[string]$StopOrStart
)
write-host $StopOrStart
if ($StopOrStart -eq "stop") {
Invoke-Command -ComputerName $ServerName -Credential $cred -ScriptBlock {
param($AppPoolName)
Import-Module WebAdministration
Write-Host "Stopping AppPool '$AppPoolName' on $($env:COMPUTERNAME)"
try {
Stop-WebAppPool -Name $AppPoolName -ErrorAction Stop
Start-Sleep -Seconds 2
$state = (Get-WebAppPoolState -Name $AppPoolName).Value
Write-Host "Result: $state"
} catch {
Write-Error $_.Exception.Message
exit 1
}
} -ArgumentList $AppPoolName
}
if ($StopOrStart -eq "start"){
Invoke-Command -ComputerName $ServerName -Credential $cred -ScriptBlock {
param($AppPoolName)
Import-Module WebAdministration
Write-Host "Starting AppPool '$AppPoolName' on $($env:COMPUTERNAME)"
try {
Start-WebAppPool -Name $AppPoolName
Start-Sleep -Seconds 2
$state = (Get-WebAppPoolState -Name $AppPoolName).Value
Write-Host "Result: $state"
} catch {
Write-Error $_.Exception.Message
exit 1
}
} -ArgumentList $AppPoolName
}

67
scripts/lstV2Build.ps1 Normal file
View File

@@ -0,0 +1,67 @@
#This is only temp until we make the entire transtion over to just this app...... long time but working on build process
$lstv2Loc = "C:\Users\matthes01\Documents\lstV2"
$lstv2BuildsDir = Join-Path $lstv2Loc "builds"
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$tmpLoc = Join-Path $scriptDir "\tmp"
function Build-LstV2-And-Copy {
if (Test-Path $tmpLoc) {
Write-Host "Temp folder for lst builds exist, moving to run the build function."
} else {
Write-Host "Tmp Folder dose not exist we will create it."
New-Item -Path $scriptDir -Name "tmp" -ItemType "Directory"
}
Write-Host "Jumping into lstV2 to build it."
Push-Location $lstv2Loc
npm run build
Write-Host "LSTV2 Finished building."
Write-Host "Copy the latest build to the tmpLoc"
# Get all build files and sort by creation time
$buildFiles = Get-ChildItem -Path $lstv2BuildsDir -File -Filter "*.zip" |
Sort-Object LastWriteTime -Descending
if ($buildFiles.Count -eq 0) {
Write-Error "No build files found in $lstv2BuildsDir"
Pop-Location
exit 1
}
# Get the most recent build
$latestBuild = $buildFiles[0]
$destinationPath = Join-Path $tmpLoc $latestBuild.Name
Write-Host "Copying latest build: $($latestBuild.Name)"
Write-Host "Created: $($latestBuild.LastWriteTime)"
Write-Host "Size: $([math]::Round($latestBuild.Length/1MB, 2)) MB"
# Copy the file
try {
Copy-Item -Path $latestBuild.FullName -Destination $destinationPath -Force
Write-Host "Successfully copied to: $destinationPath"
}
catch {
Write-Error "Failed to copy build file: $_"
Pop-Location
exit 1
}
Pop-Location
}
function Delete-Tmp-Folder
{
Write-Host "Removing the temp folder to keep it all clean"
if (Test-Path $tmpLoc) {
Remove-Item -Path $tmpLoc -Recurse
}else {
Write-Host "Tmp folder dose not exist, nothing to delete."
}
}

View File

@@ -0,0 +1,24 @@
/**
* This is for release-it to be able to post the new build number in the releases
*/
import fs from "fs-extra";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
async function readBuildNumber() {
try {
const buildNumberPath = path.resolve(__dirname, "../BUILD_NUMBER");
const buildNumber = (await fs.readFile(buildNumberPath, "utf8")).trim();
process.env.BUILD_NUMBER = buildNumber;
console.log(`Build number: ${buildNumber}`);
} catch (error) {
console.error("Error reading BUILD_NUMBER:", error);
process.exit(1);
}
}
readBuildNumber();