A focused Docker Compose management web application.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: add workspace conviniences

Brooke f1fb6863 57d57dd2

+75 -198
+10
justfile
··· 1 + [parallel] 2 + dev: _dev_web _dev_node 3 + 4 + [working-directory: 'packages/node'] 5 + _dev_node: 6 + cargo watch -x run 7 + 8 + [working-directory: 'packages/panel'] 9 + _dev_web: 10 + pnpm vite dev
+37 -181
packages/node/Cargo.lock
··· 119 119 120 120 [[package]] 121 121 name = "bollard" 122 - version = "0.16.1" 122 + version = "0.20.1" 123 123 source = "registry+https://github.com/rust-lang/crates.io-index" 124 - checksum = "0aed08d3adb6ebe0eff737115056652670ae290f177759aac19c30456135f94c" 124 + checksum = "227aa051deec8d16bd9c34605e7aaf153f240e35483dd42f6f78903847934738" 125 125 dependencies = [ 126 126 "base64", 127 127 "bollard-stubs", ··· 135 135 "hyper", 136 136 "hyper-named-pipe", 137 137 "hyper-util", 138 - "hyperlocal-next", 138 + "hyperlocal", 139 139 "log", 140 140 "pin-project-lite", 141 141 "serde", 142 142 "serde_derive", 143 143 "serde_json", 144 - "serde_repr", 145 144 "serde_urlencoded", 146 - "thiserror", 145 + "thiserror 2.0.18", 147 146 "tokio", 148 147 "tokio-util", 149 148 "tower-service", ··· 153 152 154 153 [[package]] 155 154 name = "bollard-stubs" 156 - version = "1.44.0-rc.2" 155 + version = "1.52.1-rc.29.1.3" 157 156 source = "registry+https://github.com/rust-lang/crates.io-index" 158 - checksum = "709d9aa1c37abb89d40f19f5d0ad6f0d88cb1581264e571c9350fc5bb89cf1c5" 157 + checksum = "0f0a8ca8799131c1837d1282c3f81f31e76ceb0ce426e04a7fe1ccee3287c066" 159 158 dependencies = [ 160 159 "chrono", 161 160 "serde", 161 + "serde_json", 162 162 "serde_repr", 163 - "serde_with", 164 163 ] 165 164 166 165 [[package]] ··· 237 236 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 238 237 239 238 [[package]] 240 - name = "deranged" 241 - version = "0.5.5" 242 - source = "registry+https://github.com/rust-lang/crates.io-index" 243 - checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 244 - dependencies = [ 245 - "powerfmt", 246 - "serde_core", 247 - ] 248 - 249 - [[package]] 250 239 name = "displaydoc" 251 240 version = "0.2.5" 252 241 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 267 256 ] 268 257 269 258 [[package]] 270 - name = "dyn-clone" 271 - version = "1.0.20" 272 - source = "registry+https://github.com/rust-lang/crates.io-index" 273 - checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 274 - 275 - [[package]] 276 259 name = "either" 277 260 version = "1.15.0" 278 261 source = "registry+https://github.com/rust-lang/crates.io-index" 279 262 checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 280 - 281 - [[package]] 282 - name = "equivalent" 283 - version = "1.0.2" 284 - source = "registry+https://github.com/rust-lang/crates.io-index" 285 - checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 286 263 287 264 [[package]] 288 265 name = "eyre" ··· 368 345 checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" 369 346 370 347 [[package]] 371 - name = "hashbrown" 372 - version = "0.12.3" 373 - source = "registry+https://github.com/rust-lang/crates.io-index" 374 - checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 375 - 376 - [[package]] 377 - name = "hashbrown" 378 - version = "0.16.1" 379 - source = "registry+https://github.com/rust-lang/crates.io-index" 380 - checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 381 - 382 - [[package]] 383 348 name = "hex" 384 349 version = "0.4.3" 385 350 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 488 453 ] 489 454 490 455 [[package]] 491 - name = "hyperlocal-next" 492 - version = "0.9.0" 456 + name = "hyperlocal" 457 + version = "0.9.1" 493 458 source = "registry+https://github.com/rust-lang/crates.io-index" 494 - checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc" 459 + checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" 495 460 dependencies = [ 496 461 "hex", 497 462 "http-body-util", ··· 635 600 checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" 636 601 637 602 [[package]] 638 - name = "indexmap" 639 - version = "1.9.3" 640 - source = "registry+https://github.com/rust-lang/crates.io-index" 641 - checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 642 - dependencies = [ 643 - "autocfg", 644 - "hashbrown 0.12.3", 645 - "serde", 646 - ] 647 - 648 - [[package]] 649 - name = "indexmap" 650 - version = "2.13.0" 651 - source = "registry+https://github.com/rust-lang/crates.io-index" 652 - checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 653 - dependencies = [ 654 - "equivalent", 655 - "hashbrown 0.16.1", 656 - "serde", 657 - "serde_core", 658 - ] 659 - 660 - [[package]] 661 603 name = "indoc" 662 604 version = "1.0.9" 663 605 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 725 667 "axum", 726 668 "bollard", 727 669 "color-eyre", 728 - "eyre", 729 670 "serde", 730 671 "serde_json", 731 672 "specta", ··· 771 712 ] 772 713 773 714 [[package]] 774 - name = "num-conv" 775 - version = "0.2.0" 776 - source = "registry+https://github.com/rust-lang/crates.io-index" 777 - checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" 778 - 779 - [[package]] 780 715 name = "num-traits" 781 716 version = "0.2.19" 782 717 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 840 775 ] 841 776 842 777 [[package]] 843 - name = "powerfmt" 844 - version = "0.2.0" 845 - source = "registry+https://github.com/rust-lang/crates.io-index" 846 - checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 847 - 848 - [[package]] 849 778 name = "proc-macro2" 850 779 version = "1.0.106" 851 780 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 864 793 ] 865 794 866 795 [[package]] 867 - name = "ref-cast" 868 - version = "1.0.25" 869 - source = "registry+https://github.com/rust-lang/crates.io-index" 870 - checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 871 - dependencies = [ 872 - "ref-cast-impl", 873 - ] 874 - 875 - [[package]] 876 - name = "ref-cast-impl" 877 - version = "1.0.25" 878 - source = "registry+https://github.com/rust-lang/crates.io-index" 879 - checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 880 - dependencies = [ 881 - "proc-macro2", 882 - "quote", 883 - "syn 2.0.114", 884 - ] 885 - 886 - [[package]] 887 796 name = "rustc-demangle" 888 797 version = "0.1.27" 889 798 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 897 806 898 807 [[package]] 899 808 name = "ryu" 900 - version = "1.0.22" 901 - source = "registry+https://github.com/rust-lang/crates.io-index" 902 - checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" 903 - 904 - [[package]] 905 - name = "schemars" 906 - version = "0.9.0" 809 + version = "1.0.23" 907 810 source = "registry+https://github.com/rust-lang/crates.io-index" 908 - checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" 909 - dependencies = [ 910 - "dyn-clone", 911 - "ref-cast", 912 - "serde", 913 - "serde_json", 914 - ] 915 - 916 - [[package]] 917 - name = "schemars" 918 - version = "1.2.1" 919 - source = "registry+https://github.com/rust-lang/crates.io-index" 920 - checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" 921 - dependencies = [ 922 - "dyn-clone", 923 - "ref-cast", 924 - "serde", 925 - "serde_json", 926 - ] 811 + checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 927 812 928 813 [[package]] 929 814 name = "serde" ··· 1003 888 ] 1004 889 1005 890 [[package]] 1006 - name = "serde_with" 1007 - version = "3.16.1" 1008 - source = "registry+https://github.com/rust-lang/crates.io-index" 1009 - checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" 1010 - dependencies = [ 1011 - "base64", 1012 - "chrono", 1013 - "hex", 1014 - "indexmap 1.9.3", 1015 - "indexmap 2.13.0", 1016 - "schemars 0.9.0", 1017 - "schemars 1.2.1", 1018 - "serde_core", 1019 - "serde_json", 1020 - "time", 1021 - ] 1022 - 1023 - [[package]] 1024 891 name = "sharded-slab" 1025 892 version = "0.1.7" 1026 893 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1070 937 "serde", 1071 938 "serde_json", 1072 939 "specta-macros", 1073 - "thiserror", 940 + "thiserror 1.0.69", 1074 941 ] 1075 942 1076 943 [[package]] ··· 1147 1014 source = "registry+https://github.com/rust-lang/crates.io-index" 1148 1015 checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1149 1016 dependencies = [ 1150 - "thiserror-impl", 1017 + "thiserror-impl 1.0.69", 1018 + ] 1019 + 1020 + [[package]] 1021 + name = "thiserror" 1022 + version = "2.0.18" 1023 + source = "registry+https://github.com/rust-lang/crates.io-index" 1024 + checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 1025 + dependencies = [ 1026 + "thiserror-impl 2.0.18", 1151 1027 ] 1152 1028 1153 1029 [[package]] ··· 1162 1038 ] 1163 1039 1164 1040 [[package]] 1165 - name = "thread_local" 1166 - version = "1.1.9" 1041 + name = "thiserror-impl" 1042 + version = "2.0.18" 1167 1043 source = "registry+https://github.com/rust-lang/crates.io-index" 1168 - checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 1044 + checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 1169 1045 dependencies = [ 1170 - "cfg-if", 1171 - ] 1172 - 1173 - [[package]] 1174 - name = "time" 1175 - version = "0.3.47" 1176 - source = "registry+https://github.com/rust-lang/crates.io-index" 1177 - checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" 1178 - dependencies = [ 1179 - "deranged", 1180 - "itoa", 1181 - "num-conv", 1182 - "powerfmt", 1183 - "serde_core", 1184 - "time-core", 1185 - "time-macros", 1046 + "proc-macro2", 1047 + "quote", 1048 + "syn 2.0.114", 1186 1049 ] 1187 1050 1188 1051 [[package]] 1189 - name = "time-core" 1190 - version = "0.1.8" 1052 + name = "thread_local" 1053 + version = "1.1.9" 1191 1054 source = "registry+https://github.com/rust-lang/crates.io-index" 1192 - checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" 1193 - 1194 - [[package]] 1195 - name = "time-macros" 1196 - version = "0.2.27" 1197 - source = "registry+https://github.com/rust-lang/crates.io-index" 1198 - checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" 1055 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 1199 1056 dependencies = [ 1200 - "num-conv", 1201 - "time-core", 1057 + "cfg-if", 1202 1058 ] 1203 1059 1204 1060 [[package]] ··· 1328 1184 1329 1185 [[package]] 1330 1186 name = "unicode-ident" 1331 - version = "1.0.22" 1187 + version = "1.0.23" 1332 1188 source = "registry+https://github.com/rust-lang/crates.io-index" 1333 - checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1189 + checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" 1334 1190 1335 1191 [[package]] 1336 1192 name = "url" ··· 1674 1530 1675 1531 [[package]] 1676 1532 name = "zmij" 1677 - version = "1.0.19" 1533 + version = "1.0.20" 1678 1534 source = "registry+https://github.com/rust-lang/crates.io-index" 1679 - checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445" 1535 + checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7"
+5 -6
packages/node/Cargo.toml
··· 4 4 5 5 [dependencies] 6 6 axum = "0.8.8" 7 - bollard = { version = "0.16.1", features = ["chrono"] } 8 - color-eyre = "0.6.3" 9 - eyre = "0.6.12" 10 - serde = "1.0.219" 11 - serde_json = "1.0.140" 7 + bollard = { version = "0.20.1", features = ["chrono"] } 8 + color-eyre = "0.6.5" 9 + serde = "1.0.228" 10 + serde_json = "1.0.149" 12 11 specta = { version = "1.0.5", features = ["functions"] } 13 - tokio = { version = "1", features = ["rt-multi-thread", "macros"] } 12 + tokio = { version = "1.49.0", features = ["rt-multi-thread", "macros"] }
+1
packages/node/rustfmt.toml
··· 1 + max_width = 110
+3 -5
packages/node/src/main.rs
··· 1 1 use axum::{routing::get, Router}; 2 - use eyre::Result; 2 + use color_eyre::eyre::Result; 3 3 use tokio::net::TcpListener; 4 4 5 5 pub mod server; 6 6 7 7 #[tokio::main] 8 8 async fn main() -> Result<()> { 9 - let app = Router::new().nest( 10 - "/api/", 11 - Router::new().route("/ping", get(|| async { "pong" })), 12 - ); 9 + let app = Router::new().nest("/api/", Router::new().route("/ping", get(|| async { "pong" }))); 13 10 14 11 let listener = TcpListener::bind("0.0.0.0:9000").await?; 12 + println!("Listening on http://127.0.0.1:{}", listener.local_addr()?.port()); 15 13 axum::serve(listener, app).await?; 16 14 return Ok(()); 17 15 }
+8 -3
packages/panel/.prettierrc
··· 1 1 { 2 + "singleQuote": false, 3 + "quoteProps": "as-needed", 4 + "trailingComma": "all", 5 + "bracketSpacing": true, 6 + "arrowParens": "always", 7 + "semi": true, 2 8 "useTabs": true, 3 - "singleQuote": true, 4 - "trailingComma": "none", 5 - "printWidth": 100, 9 + "tabWidth": 4, 10 + "printWidth": 120, 6 11 "plugins": ["prettier-plugin-svelte"], 7 12 "overrides": [ 8 13 {
+11 -3
packages/panel/vite.config.ts
··· 1 - import { sveltekit } from '@sveltejs/kit/vite'; 2 - import { defineConfig } from 'vite'; 1 + import { sveltekit } from "@sveltejs/kit/vite"; 2 + import { defineConfig } from "vite"; 3 3 4 4 export default defineConfig({ 5 - plugins: [sveltekit()] 5 + plugins: [sveltekit()], 6 + server: { 7 + proxy: { 8 + "^/(api)/?.*": { 9 + target: "http://127.0.0.1:9000", 10 + changeOrigin: true, 11 + }, 12 + }, 13 + }, 6 14 });