a3f369f437
Introduce the first PLAN.md milestone: replace the hello-world binary with an Axum server that binds to localhost by default, exposes a health endpoint, and serves the static browser UI from the repository's static directory. The router is available through the library crate so integration tests can exercise server behavior without opening a network listener. Add a justfile for routine validation and document the initial project shape, configuration knobs, and reusable test checklist. The rustfmt config now uses only stable options so the new formatting recipe runs without nightly warnings. The upload API and resumable chunk behavior are intentionally left for later milestones; the UI currently handles file selection only. Test Plan: - just check Refs: PLAN.md milestone 1
1.2 KiB
1.2 KiB
upl
upl is a small personal resumable upload service. The intended deployment is:
browser -> nginx -> upl Rust server -> local filesystem
The first implementation milestone provides the Rust server shell and static
browser UI. Upload metadata, chunk persistence, resume state, and completion
assembly are tracked in PLAN.md and will be added in later coherent slices.
Project Structure
upl
Rust server
src/main.rs binary entrypoint and listener setup
src/app.rs Axum router, health endpoint, static file service
src/lib.rs library surface used by integration tests
Browser UI
static/index.html upload tool markup
static/styles.css responsive tool styling
static/app.js file-selection behavior
Validation
tests/ integration tests for server behavior
TESTS.md reusable manual and automated test checklist
Configuration
UPL_BINDsets the listen address. It defaults to127.0.0.1:3000.UPL_STATIC_DIRsets the static asset directory. It defaults tostatic/inside this repository.
Common Commands
Use the justfile for routine tasks:
just check
just run