| .forgejo/workflows | ||
| docs | ||
| templates | ||
| LICENSE | ||
| README.md | ||
FlexHub
Where I flex my projects, code, and stuff. A place to flex.
FlexHub is the brand wrapped around the operator's self-hosted Forgejo instance. Same git host, same backing store — different paint job.
- Canonical URL: https://git.s8n.ru/ (admin / push / clone)
- FlexHub-branded entry: https://flexhub.s8n.ru/ (public showcase)
Both hostnames hit the same Forgejo container on nullstone. Repos,
PATs, SSH keys, issues — all identical. Login sessions are independent
(separate cookies per hostname).
This repository holds the customisations that turn vanilla Forgejo into FlexHub: the homepage template, the theme CSS, the logo set, and the deploy notes that wire it all together.
What's in this repo
| Path | Purpose |
|---|---|
templates/home.tmpl |
FlexHub homepage. Wordmark + tagline + 4-card "agent grid" feature list. |
public/assets/css/theme-flexhub.css (planned) |
The orange/black/white theme. DEFAULT_THEME = flexhub in app.ini. |
public/assets/img/ (planned) |
Logo + wordmark + favicons (logo.svg, flexhub-wordmark.png, etc). |
docs/DEPLOY.md |
How to roll a change out to the live nullstone Forgejo container. |
LICENSE |
MIT. |
The repo is currently template-only; assets get checked in as the
operator pulls them out of the live Forgejo custom/ tree. The
authoritative copies live on nullstone until then.
How it's wired up
Forgejo loads any file under custom/ to override the equivalent
built-in. On nullstone that directory is bind-mounted from the host:
/home/docker/forgejo/data/gitea/ → /var/lib/gitea/ (in-container)
└─ custom/
├─ conf/app.ini
├─ templates/home.tmpl ← from this repo
├─ public/assets/css/... ← from this repo
└─ public/assets/img/... ← from this repo
The Forgejo container itself is described by the compose file at
/opt/docker/forgejo/docker-compose.yml. Container data + customisations
live under /home/docker/forgejo/ because the root volume on nullstone
is small.
Key settings in app.ini that drive the rebrand:
APP_NAME = FlexHub
DEFAULT_THEME = flexhub
THEMES = forgejo-auto,forgejo-light,forgejo-dark,flexhub,veilor
The two hostnames are split at the Traefik layer, not Forgejo:
git.s8n.ru— docker-provider router, gated byno-guest@fileACL.flexhub.s8n.ru— file-provider router, public, nono-guest, rate-limited login. Serviceflexhub-svcpoints athttp://forgejo:3000directly (avoids the file→docker provider race; see DEPLOY.md).
Contributing
Don't. This is the operator's personal git host — accounts are invite-only, registration is disabled. If you've found a real bug in Forgejo itself, file it upstream at https://codeberg.org/forgejo/forgejo. If you've found a typo on the homepage, open an issue here and the operator will get to it.
Public read access is intentional: browse repos, clone what's MIT or AGPL, mirror what you like. That's the "flex" part.
See also
- Deploy + update workflow:
docs/DEPLOY.md - Initial Forgejo bring-up runbook (operator-internal):
_github/infra/forgejo/DEPLOY.mdin theai-labrepo. - ARRFLIX project references
flexhub.s8n.ruas a mirror — that's this instance.