anvilsign in

collin/anvil

RenderedSource

1# anvil
2
3A minimal git forge in Rust, built on [gitoxide](https://github.com/GitoxideLabs/gitoxide).
4
5## Architecture
6
7A Cargo workspace. The keystone is **`anvil-git`**: gix is a *client* library
8with no server-side protocol, so anvil supplies its own transport-agnostic
9`upload-pack`/`receive-pack` (smart-HTTP and SSH share one implementation).
10
11| Crate | Responsibility |
12|--------------|----------------|
13| `anvil-core` | Domain model, SQLite persistence, on-disk bare-repo storage |
14| `anvil-git` | Server-side git wire protocol on gix (upstream-candidate) |
15| `anvil-web` | axum HTTP server: web UI + smart-HTTP git endpoints |
16| `anvil-ssh` | git-over-SSH (russh) |
17| `anvil-cli` | `anvild` daemon + admin CLI |
18
19## Quick start
20
21```sh
22cargo run -- migrate # create data/ + database
23cargo run -- user create alice --password secret # create a user
24cargo run -- repo create alice/hello # create a bare repo on disk
25cargo run -- serve # start the server
26```
27
28Configuration is optional; see [`anvil.example.toml`](anvil.example.toml).
29
30## License
31
32MIT OR Apache-2.0.