OXYGENHUB

The hub lives at oxygenhub.io d91780ee20de

The repository address in Cargo.toml and the docs name the public
address; deploy.md records the tunnel, base_url and why the Flow runner
keeps the local address.

closes #60
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-30 11:01 UTC
Signature
✔ signed by Andy McCall
Hash
d91780ee20de82c1768818fa81129e3a45ebe6f1f346b8d49973b14d1a5219a4
Depends on
5c6e92fd8d71 8f3d2ccfe6fc 93be9ce4653e baebdd18aaa2 d23464c0ac60
Depended on by
d336629ffa90
In bookmarks
api-unknown-fields cancel-landed-runs clear-waiting close-proposal-140 diffusion-pin-bookmark draft-ready image-check job-waits main oh-comment-body-file proposal-list-fast run-one-job wiki-says-so
In tags
v0.1.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.5.0 v0.5.1 v0.5.2 v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
Edits
9 atoms, 0 tree operations, 4 files

Browse the tree at this change

modified Cargo.toml +1 −1
…
10 unchanged lines
11 11
edition = "2021"
12 12
license = "MIT OR Apache-2.0"
13 13
authors = ["Andy McCall <[email protected]>"]
14 -
repository = "https://earth.andymccall.xyz:7343/andymccall/oxygenhub"
14 +
repository = "https://oxygenhub.io/andymccall/oxygenhub"
15 15
16 16
[workspace.dependencies]
17 17
oxy-core = { path = "deps/oxygenflow/deps/oxygen/crates/oxy-core" }
…
48 unchanged lines
modified docs/deploy.md +2 −1
…
22 unchanged lines
23 23
4. **System user and data**: `sudo useradd --system --home /home/oxygenhub --create-home oxygenhub`, `sudo install -o oxygenhub -g oxygenhub -m 0755 target/release/oxygenhub /usr/local/bin/`, `sudo -u oxygenhub oxygenhub init --data /home/oxygenhub/data --admin andymccall` (prints the first admin's one-time password).
24 24
5. **Service**: `/etc/systemd/system/oxygenhub.service` running `oxygenhub serve --data /home/oxygenhub/data` as `oxygenhub`, `Restart=on-failure`, `ProtectSystem=strict`, `ReadWritePaths=/home/oxygenhub/data`, `NoNewPrivileges=yes`; `sudo systemctl enable --now oxygenhub`.
25 25
6. **TLS**: the developer edition generates a self-signed certificate at `init`. Download the certificate from `https://earth.andymccall.xyz:7343/.well-known/oxyhub-ca.pem` (or over plain HTTP on port 7300) and point clients at it with `oxy config remote.<name>.ca <file>` or `OXY_CA`.
26 -
7. **First repositories**: on the development machine, `oxy remote add earth https://earth.andymccall.xyz:7343/andymccall/oxygen` in each of `oxygen`, `oxygen-vscode`, `oxygenhub`, then `oxy push earth`.
26 +
7. **First repositories**: on the development machine, `oxy remote add earth https://oxygenhub.io/andymccall/oxygen` in each of `oxygen`, `oxygen-vscode`, `oxygenhub`, then `oxy push earth`.
27 27
8. **Updates**: rsync, build, `sudo install`, `sudo systemctl restart oxygenhub`. `make deploy` in the hub wraps steps 2, 3 and 8.
28 +
9. **Public address** (2026-09-30): a Cloudflare tunnel on Earth serves the hub as `https://oxygenhub.io`, with a publicly trusted certificate, and `base_url` in `hub.toml` is that address, so every link the hub writes uses it. Checkouts push there with no CA set. The Flow runner on Earth still reaches the hub on its local address with the self-signed certificate of step 6.
28 29
29 30
## Where things are on Earth
30 31
…
8 unchanged lines
modified docs/oh.md +1 −1
…
16 unchanged lines
17 17
Elsewhere, sign in once and name the repository:
18 18
19 19
```
20 -
oh auth login --with-hub https://earth.andymccall.xyz:7343 --ca ~/.config/oxy/earth-ca.pem
20 +
oh auth login --with-hub https://oxygenhub.io
21 21
oh issue list --repo andymccall/oxygen
22 22
```
23 23
…
36 unchanged lines
modified docs/spec.md +1 −1
…
464 unchanged lines
465 465
[server]
466 466
bind = "0.0.0.0:7300"          # plain HTTP
467 467
tls_bind = "0.0.0.0:7343"      # HTTPS, when tls.cert and tls.key (or self_signed) are set
468 -
base_url = "https://earth.andymccall.xyz:7343"
468 +
base_url = "https://oxygenhub.io"
469 469
behind_proxy = false            # trust X-Forwarded-* when true
470 470
471 471
[tls]
…
83 unchanged lines