OXYGENHUB
# ad01845c4bf8 oxygenhub / README.md
2.2 KiB · Markdown · last changed README: the OxygenFlow badge under the title 1 month ago renderedsource blame history raw
d23464c0 Andy McCall ↶ 1
# Oxygenhub
2
ad01845c Andy McCall ↶ 3
[![OxygenFlow]https://oxygenhub.io/andymccall/oxygenhub/flow/badge.svg]https://oxygenhub.io/andymccall/oxygenhub/flow
4
d23464c0 Andy McCall ↶ 5
A forge for [Oxygen]../oxygen repositories: hosting, browsing, review,
6
issues and releases, in one Rust binary with one data directory. It works
7
like GitHub where GitHub is right and differs where Oxygen's commutative
8
model makes something better possible. The specification is
9
[docs/spec.md]docs/spec.md; deployment notes are in
10
[docs/deploy.md]docs/deploy.md.
11
12
## Status
13
14
Milestone 0.1 (browse): repositories are created by an administrator and
15
filled by `oxy push`; the pages show trees, files, blame, history with the
16
dependency graph, changes with diffs, comparisons, bookmarks, tags,
17
conflicts, the trust policy and the push log. Accounts, proposals, issues
18
and the rest follow the milestones in the specification.
19
20
## Running
21
22
```
23
cargo build --release
24
target/release/oxygenhub --data /srv/oxygenhub init --base-url https://hub.example:7343 --self-signed
25
target/release/oxygenhub --data /srv/oxygenhub admin repo create andy/oxygen --description "The VCS"
26
target/release/oxygenhub --data /srv/oxygenhub serve
27
```
28
29
Then from any checkout: `oxy remote add hub https://hub.example:7343/andy/oxygen`
30
and `oxy push hub`. With a self-signed certificate, hand clients the CA with
31
`OXY_CA=<path>` or `oxy config remote.hub.ca <path>`.
32
33
Configuration lives in `<data>/hub.toml` (spec §17.1) and every key can be
34
overridden with `OXYHUB_<SECTION>_<KEY>`.
35
36
## Layout
37
38
```
39
crates/hub        the binary: config, db (sqlx + migrations), repos (registry, locks, views),
40
                  protocol (embedded oxy-server), web (pages), api (JSON), render (markdown,
41
                  highlighting, diffs, graph)
42
crates/hub-api    the JSON API's types, shared with clients
43
templates/        askama templates and the stylesheet
44
assets/           vendored fonts, icons, the small progressive-enhancement script
45
migrations/       under crates/hub; applied at start
46
```
47
48
## Developing
49
50
`make check` runs formatting, clippy with warnings as errors, and the tests.
51
The tests use a real `oxy-core` client against a hub on a loopback port and
52
never touch your own Oxygen configuration.