Initial commit: Brass & Sigil monorepo

Self-hosted Minecraft modpack distribution + administration system.

- launcher/  Avalonia 12 desktop client; single-file win-x64 publish.
             Microsoft auth via XboxAuthNet, manifest+SHA-1 mod sync,
             portable install path, sidecar settings.
- server/    brass-sigil-server daemon (.NET 8, linux-x64). Wraps the
             MC subprocess, embedded Kestrel admin panel with cookie
             auth + rate limiting, RCON bridge, scheduled backups,
             BlueMap CLI integration with player markers + skin proxy,
             friend-side whitelist request flow, world wipe with seed
             selection (keep current / random / custom).
- pack/      pack.lock.json (Modrinth + manual CurseForge entries),
             data-only tweak source under tweaks/, build outputs in
             overrides/ (gitignored).
- scripts/   Build-Pack / Build-Tweaks / Update-Pack / Check-Updates
             plus Deploy-Brass.ps1 unified one-shot deploy with
             version-bump pre-flight and daemon-state detection.
This commit is contained in:
Matt Sijbers
2026-05-05 00:19:05 +01:00
commit a1331212cb
99 changed files with 12640 additions and 0 deletions
+349
View File
@@ -0,0 +1,349 @@
{
"$schema": "Brass-and-Sigil pack.lock.json - generated, do not edit by hand unless you know what you are doing",
"name": "Brass and Sigil",
"version": "0.9.2",
"minecraft": "1.21.1",
"loader": {
"type": "neoforge",
"version": "21.1.228"
},
"lockedAt": "2026-05-04T14:22:58.7131203+01:00",
"mods": [
{
"source": "modrinth",
"slug": "create",
"versionId": "UjX6dr61",
"version": "6.0.10+mc1.21.1",
"path": "mods/create-1.21.1-6.0.10.jar",
"url": "https://cdn.modrinth.com/data/LNytGWDc/versions/UjX6dr61/create-1.21.1-6.0.10.jar",
"sha1": "0e97e49837bed766e6f28a4c95b04885d6acc353",
"size": 19123767
},
{
"source": "modrinth",
"slug": "create-aeronautics",
"versionId": "YhZLrAFC",
"version": "1.2.1+mc1.21.1",
"path": "mods/create-aeronautics-bundled-1.21.1-1.2.1.jar",
"url": "https://cdn.modrinth.com/data/oWaK0Q19/versions/YhZLrAFC/create-aeronautics-bundled-1.21.1-1.2.1.jar",
"sha1": "fdf1ae69e8b6437e0196b3a35dd2325aa904aba9",
"size": 33030286
},
{
"source": "modrinth",
"slug": "sable",
"versionId": "3FMsUjO4",
"version": "1.2.2+mc1.21.1",
"path": "mods/sable-neoforge-1.21.1-1.2.2.jar",
"url": "https://cdn.modrinth.com/data/T9PomCSv/versions/3FMsUjO4/sable-neoforge-1.21.1-1.2.2.jar",
"sha1": "c5ecd3fcf60a31d84112c708abe29e341b2d1b73",
"size": 12719293
},
{
"source": "modrinth",
"slug": "create-big-cannons",
"versionId": "bsGaXKEd",
"version": "5.11.3",
"path": "mods/createbigcannons-5.11.3+mc.1.21.1.jar",
"url": "https://cdn.modrinth.com/data/GWp4jCJj/versions/bsGaXKEd/createbigcannons-5.11.3%2Bmc.1.21.1.jar",
"sha1": "8b61fa850e260bdeb5d360576123f98c260afa50",
"size": 3715787
},
{
"source": "modrinth",
"slug": "create-tfmg",
"versionId": "uDi14nbt",
"version": "1.2.0",
"path": "mods/tfmg-1.2.0.jar",
"url": "https://cdn.modrinth.com/data/USgVjXsk/versions/uDi14nbt/tfmg-1.2.0.jar",
"sha1": "b520f3687f60a69eb265ff5b9a16759b9e124103",
"size": 4924243
},
{
"source": "modrinth",
"slug": "distanthorizons",
"versionId": "KkaaQtTD",
"version": "3.0.2-b-1.21.1",
"path": "mods/DistantHorizons-3.0.2-b-1.21.1-fabric-neoforge.jar",
"url": "https://cdn.modrinth.com/data/uCdwusMi/versions/KkaaQtTD/DistantHorizons-3.0.2-b-1.21.1-fabric-neoforge.jar",
"sha1": "1ff0a8920e52add541471f7b32d0d389997145ba",
"size": 30019727
},
{
"source": "modrinth",
"slug": "sodium",
"versionId": "Pb3OXVqC",
"version": "mc1.21.1-0.6.13-neoforge",
"path": "mods/sodium-neoforge-0.6.13+mc1.21.1.jar",
"url": "https://cdn.modrinth.com/data/AANobbMI/versions/Pb3OXVqC/sodium-neoforge-0.6.13%2Bmc1.21.1.jar",
"sha1": "38af70fa4dc4b2aaac636e92fdba3bedd5a025e1",
"size": 1162994
},
{
"source": "modrinth",
"slug": "iris",
"versionId": "t3ruzodq",
"version": "1.8.12+1.21.1-neoforge",
"path": "mods/iris-neoforge-1.8.12+mc1.21.1.jar",
"url": "https://cdn.modrinth.com/data/YL57xq9U/versions/t3ruzodq/iris-neoforge-1.8.12%2Bmc1.21.1.jar",
"sha1": "a3e6355915c7d3b2bc392724795113e51d289378",
"size": 2438548
},
{
"source": "modrinth",
"slug": "modernfix",
"versionId": "6U8JVjdw",
"version": "5.27.4+mc1.21.1",
"path": "mods/modernfix-neoforge-5.27.4+mc1.21.1.jar",
"url": "https://cdn.modrinth.com/data/nmDcB62a/versions/6U8JVjdw/modernfix-neoforge-5.27.4%2Bmc1.21.1.jar",
"sha1": "2f39363f0d6d5a5ccc2a9e0f50ad3385611c3cb7",
"size": 562051
},
{
"source": "modrinth",
"slug": "ferrite-core",
"versionId": "x7kQWVju",
"version": "7.0.3-neoforge",
"path": "mods/ferritecore-7.0.3-neoforge.jar",
"url": "https://cdn.modrinth.com/data/uXXizFIs/versions/x7kQWVju/ferritecore-7.0.3-neoforge.jar",
"sha1": "9563692efb708b6b568df27a01ec52f6311928ef",
"size": 121559
},
{
"source": "modrinth",
"slug": "architectury-api",
"versionId": "ZxYGwlk0",
"version": "13.0.8+neoforge",
"path": "mods/architectury-13.0.8-neoforge.jar",
"url": "https://cdn.modrinth.com/data/lhGA9TYQ/versions/ZxYGwlk0/architectury-13.0.8-neoforge.jar",
"sha1": "6ca11d3cc136bf69bb8f4d56982481eb85b5100b",
"size": 584004
},
{
"source": "modrinth",
"slug": "rhino",
"versionId": "ZdLtebKH",
"version": "2101.2.7-build.81+Rhino-1.21",
"path": "mods/rhino-2101.2.7-build.81.jar",
"url": "https://cdn.modrinth.com/data/sk9knFPE/versions/ZdLtebKH/rhino-2101.2.7-build.81.jar",
"sha1": "480235a9f7749f68ce6fec3b9c3cac3428b92a4a",
"size": 882033
},
{
"source": "modrinth",
"slug": "rpl",
"versionId": "hZ6B2Z0x",
"version": "2.1.2",
"path": "mods/ritchiesprojectilelib-2.1.2+mc.1.21.1-neoforge.jar",
"url": "https://cdn.modrinth.com/data/B3pb093D/versions/hZ6B2Z0x/ritchiesprojectilelib-2.1.2%2Bmc.1.21.1-neoforge.jar",
"sha1": "ec2e4996f8bee8714173e603e379fef8a6901765",
"size": 76369
},
{
"source": "modrinth",
"slug": "kubejs",
"versionId": "Fe9CjPws",
"version": "2101.7.2-build.363",
"path": "mods/kubejs-neoforge-2101.7.2-build.363.jar",
"url": "https://cdn.modrinth.com/data/umyGl7zF/versions/Fe9CjPws/kubejs-neoforge-2101.7.2-build.363.jar",
"sha1": "d4e88254e8c26687d4c6aeb4dfa9c2ad70f260a2",
"size": 2270442
},
{
"source": "modrinth",
"slug": "jei",
"versionId": "YAcQ6elZ",
"version": "19.27.0.340",
"path": "mods/jei-1.21.1-neoforge-19.27.0.340.jar",
"url": "https://cdn.modrinth.com/data/u6dRKJwZ/versions/YAcQ6elZ/jei-1.21.1-neoforge-19.27.0.340.jar",
"sha1": "27d0d85e7e32e926fc3664ab6815df5cdabb7941",
"size": 1529391
},
{
"source": "modrinth",
"slug": "jade",
"versionId": "yd8FKCmx",
"version": "15.10.5+neoforge",
"path": "mods/Jade-1.21.1-NeoForge-15.10.5.jar",
"url": "https://cdn.modrinth.com/data/nvQzSEkH/versions/yd8FKCmx/Jade-1.21.1-NeoForge-15.10.5.jar",
"sha1": "d5bf134b3dbde9f5258666823900e21341dc0a50",
"size": 725742
},
{
"source": "modrinth",
"slug": "chunky",
"versionId": "LuFhm4eU",
"version": "1.4.23",
"path": "mods/Chunky-NeoForge-1.4.23.jar",
"url": "https://cdn.modrinth.com/data/fALzjamp/versions/LuFhm4eU/Chunky-NeoForge-1.4.23.jar",
"sha1": "ab0c74743a653020fe2dfc4986b43e893947f3e9",
"size": 340572
},
{
"source": "curseforge",
"slug": "ftb-library",
"fileId": "7746959",
"version": "2101.1.31",
"path": "mods/ftb-library-neoforge-2101.1.31.jar",
"url": "https://mediafilez.forgecdn.net/files/7746/959/ftb-library-neoforge-2101.1.31.jar",
"sha1": "686d4e784c28c14f7760cc22b2de6a8573b56b74",
"size": 1411181
},
{
"source": "curseforge",
"slug": "ftb-teams",
"fileId": "7369021",
"version": "2101.1.9",
"path": "mods/ftb-teams-neoforge-2101.1.9.jar",
"url": "https://mediafilez.forgecdn.net/files/7369/21/ftb-teams-neoforge-2101.1.9.jar",
"sha1": "328e04bf1a445870aacea8fe7637670f84272a8f",
"size": 291847
},
{
"source": "curseforge",
"slug": "ftb-chunks",
"fileId": "7608681",
"version": "2101.1.14",
"path": "mods/ftb-chunks-neoforge-2101.1.14.jar",
"url": "https://mediafilez.forgecdn.net/files/7608/681/ftb-chunks-neoforge-2101.1.14.jar",
"sha1": "908b63b11d0e00ae6c9557d3fe6440bdbcf21bb7",
"size": 642340
},
{
"source": "modrinth",
"slug": "ars-nouveau",
"versionId": "BmGGrC9A",
"version": "5.11.3+mc1.21.1",
"path": "mods/ars_nouveau-1.21.1-5.11.3.jar",
"url": "https://cdn.modrinth.com/data/TKB6INcv/versions/BmGGrC9A/ars_nouveau-1.21.1-5.11.3.jar",
"sha1": "0af12dd7fda63a4261ceb302c9bb57fc235641c6",
"size": 20689115
},
{
"source": "modrinth",
"slug": "terralith",
"versionId": "MuJMtPGQ",
"version": "2.5.8",
"path": "mods/Terralith_1.21.x_v2.5.8.jar",
"url": "https://cdn.modrinth.com/data/8oi3bsk5/versions/MuJMtPGQ/Terralith_1.21.x_v2.5.8.jar",
"sha1": "bee0cfb1a8cd4bf3d96bccea224fb45d74de9085",
"size": 3115385
},
{
"source": "modrinth",
"slug": "yungs-better-strongholds",
"versionId": "8U0dIfSM",
"version": "1.21.1-NeoForge-5.1.3",
"path": "mods/YungsBetterStrongholds-1.21.1-NeoForge-5.1.3.jar",
"url": "https://cdn.modrinth.com/data/kidLKymU/versions/8U0dIfSM/YungsBetterStrongholds-1.21.1-NeoForge-5.1.3.jar",
"sha1": "5d06a5850af7c577612d4592706a8e156bbe1cbf",
"size": 461244
},
{
"source": "modrinth",
"slug": "lithostitched",
"versionId": "IONexlgI",
"version": "1.7.2-neoforge-21.1",
"path": "mods/lithostitched-1.7.2-neoforge-21.1.jar",
"url": "https://cdn.modrinth.com/data/XaDC71GB/versions/IONexlgI/lithostitched-1.7.2-neoforge-21.1.jar",
"sha1": "ce35206214647131ebdf14212d1986349aeba79a",
"size": 810015
},
{
"source": "modrinth",
"slug": "c2me-neoforge",
"versionId": "9iPiN34N",
"version": "0.3.0+alpha.0.91+1.21.1",
"path": "mods/c2me-neoforge-mc1.21.1-0.3.0+alpha.0.91.jar",
"url": "https://cdn.modrinth.com/data/COlSi5iR/versions/9iPiN34N/c2me-neoforge-mc1.21.1-0.3.0%2Balpha.0.91.jar",
"sha1": "c858c8becfb5205eb12aaf0420eb82c307c2e6a7",
"size": 4508649
},
{
"source": "modrinth",
"slug": "noisium",
"versionId": "nJBE6tif",
"version": "2.3.0+mc1.21-1.21.1",
"path": "mods/noisium-neoforge-2.3.0+mc1.21-1.21.1.jar",
"url": "https://cdn.modrinth.com/data/KuNKN7d2/versions/nJBE6tif/noisium-neoforge-2.3.0%2Bmc1.21-1.21.1.jar",
"sha1": "1bea6b61378ba80f038256c4345d9ff3b67928c4",
"size": 60296
},
{
"source": "modrinth",
"slug": "async-locator-refined",
"versionId": "3BdGHbV2",
"version": "1.21.1-1.5.3",
"path": "mods/async-locator-refined-neoforge-1.21.1-1.5.3.jar",
"url": "https://cdn.modrinth.com/data/LUIHK4LD/versions/3BdGHbV2/async-locator-refined-neoforge-1.21.1-1.5.3.jar",
"sha1": "2993e3efc6d211ad8d4db179851dea6fdfff4e07",
"size": 273320
},
{
"source": "modrinth",
"slug": "servercore",
"versionId": "77MAnmOn",
"version": "1.5.10+1.21.1",
"path": "mods/servercore-neoforge-1.5.10+1.21.1.jar",
"url": "https://cdn.modrinth.com/data/4WWQxlQP/versions/77MAnmOn/servercore-neoforge-1.5.10%2B1.21.1.jar",
"sha1": "4524cd40cfa5019d8b5fbcb628b1616031838a0c",
"size": 1429522
},
{
"source": "modrinth",
"slug": "lithium",
"versionId": "RXHf27Wv",
"version": "mc1.21.1-0.15.3-neoforge",
"path": "mods/lithium-neoforge-0.15.3+mc1.21.1.jar",
"url": "https://cdn.modrinth.com/data/gvQqBUqZ/versions/RXHf27Wv/lithium-neoforge-0.15.3%2Bmc1.21.1.jar",
"sha1": "9fd5fa9076044180ae7f51672de74669196ec72e",
"size": 774148
},
{
"source": "modrinth",
"slug": "geckolib",
"versionId": "gFmrC8Ru",
"version": "4.8.4",
"path": "mods/geckolib-neoforge-1.21.1-4.8.4.jar",
"url": "https://cdn.modrinth.com/data/8BmcQJ2H/versions/gFmrC8Ru/geckolib-neoforge-1.21.1-4.8.4.jar",
"sha1": "eb854c8ec53ef922a5f3877a1aa4c1ce1352e0ce",
"size": 622582
},
{
"source": "modrinth",
"slug": "curios",
"versionId": "yohfFbgD",
"version": "9.5.1+1.21.1",
"path": "mods/curios-neoforge-9.5.1+1.21.1.jar",
"url": "https://cdn.modrinth.com/data/vvuO3ImH/versions/yohfFbgD/curios-neoforge-9.5.1%2B1.21.1.jar",
"sha1": "418fcd42e3a7844c9bdc71c9b6401fdb3894e0c4",
"size": 410690
},
{
"source": "modrinth",
"slug": "yungs-api",
"versionId": "ZB22DE9q",
"version": "1.21.1-NeoForge-5.1.6",
"path": "mods/YungsApi-1.21.1-NeoForge-5.1.6.jar",
"url": "https://cdn.modrinth.com/data/Ua7DFN59/versions/ZB22DE9q/YungsApi-1.21.1-NeoForge-5.1.6.jar",
"sha1": "e1c394779fb9e038e4f7a1b4558d0432607d263b",
"size": 388678
},
{
"source": "modrinth",
"slug": "complementary-reimagined",
"versionId": "836bPNGo",
"version": "r5.7.1",
"path": "shaderpacks/ComplementaryReimagined_r5.7.1.zip",
"url": "https://cdn.modrinth.com/data/HVnmMxH1/versions/836bPNGo/ComplementaryReimagined_r5.7.1.zip",
"sha1": "b560f646a124d5204b1fb7321fec373b9c346fa5",
"size": 522970
}
],
"defaultServer": {
"name": "Brass and Sigil",
"ip": "bns.sijbers.uk"
},
"defaultShader": "ComplementaryReimagined_r5.7.1.zip",
"panelUrl": "https://bns-admin.sijbers.uk"
}