Add Docker image, Compose, CI/CD workflows and docs
- Multi-arch (amd64/arm64) panel image: static musl binary on scratch, cross-compiled with cargo-zigbuild (no QEMU), non-root, healthcheck - docker-compose.yml + .env.example for one-command deployment - CI: fmt, clippy, tests, web type-checks, Windows launcher build, real-network installs of vanilla/Fabric/Quilt/Forge/NeoForge, Docker build - Release: Windows NSIS installer with baked-in panel URL, GHCR image push and GitHub release (tag push or manual dispatch) - README, admin guide, Microsoft auth setup, architecture, development - rustfmt config and formatting pass Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ARcGWxLx21FwXJ3yfGriS
This commit is contained in:
54 files changed
+1019
-219
No files matched your search
@@ -0,0 +1,36 @@
|
||||
# Development
|
||||
|
||||
**Requirements:** Rust (stable), Node 22. On Linux, also the Tauri deps: `libwebkit2gtk-4.1-dev librsvg2-dev libayatana-appindicator3-dev`.
|
||||
|
||||
## Panel
|
||||
|
||||
```bash
|
||||
cd panel/web && npm install && npm run build && cd ../..
|
||||
ADMIN_PASSWORD=adminadmin cargo run -p scopenet-panel # http://localhost:8080
|
||||
# UI hot reload: (cd panel/web && npm run dev) # http://localhost:5173, proxies /api
|
||||
```
|
||||
|
||||
## Launcher
|
||||
|
||||
```bash
|
||||
cd launcher && npm install
|
||||
npm run tauri dev # full desktop app
|
||||
npm run dev # UI only in a browser, with a mock backend (http://localhost:1420)
|
||||
```
|
||||
|
||||
Browser mock scenarios: `?mock=setup`, `?mock=login`, `?mock=progress`.
|
||||
|
||||
Build-time options (environment variables when building): `SCOPENET_PANEL_URL`, `SCOPENET_LOCK_PANEL=1`, `SCOPENET_REPO=owner/repo`.
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
cargo test --workspace # unit + panel API tests
|
||||
cargo test -p scopenet-core --test online -- --ignored # real installs (needs internet, ~2 GB)
|
||||
(cd panel/web && npm run check) && (cd launcher && npm run check)
|
||||
cargo fmt --all && cargo clippy --workspace --all-targets -- -D warnings
|
||||
```
|
||||
|
||||
## Releasing
|
||||
|
||||
Push a tag `vX.Y.Z` or run the **Release** workflow. It stamps the version into `Cargo.toml` and `tauri.conf.json`, builds the NSIS installer on Windows, pushes the multi-arch panel image to GHCR, and publishes the release.
|
||||
Reference in new issue
Block a user