https://github.com/valkyoth/fluxheim-website
Official website for the Fluxheim edge server — built with HTML5, Tailwind CSS, and served by Fluxheim itself.
https://github.com/valkyoth/fluxheim-website
Last synced: about 9 hours ago
JSON representation
Official website for the Fluxheim edge server — built with HTML5, Tailwind CSS, and served by Fluxheim itself.
- Host: GitHub
- URL: https://github.com/valkyoth/fluxheim-website
- Owner: valkyoth
- License: eupl-1.2
- Created: 2026-05-19T06:38:45.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-13T20:49:23.000Z (6 days ago)
- Last Synced: 2026-06-13T22:23:47.755Z (6 days ago)
- Language: HTML
- Homepage: https://fluxheim.eu
- Size: 6.66 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.html
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
Fluxheim Website
The official project website for Fluxheim —
a high-performance edge server and reverse proxy built in Rust.




---
## Overview
A fully static, multi-page project website — no build step, no Node.js, no framework. All JavaScript and CSS assets are vendored locally so the site works offline and can be served by any static file server, including Fluxheim itself.
The site is self-hosting: the included `container/Dockerfile` builds Fluxheim v1.6.13 from source and serves this website from inside a hardened Wolfi container.
## Pages
| Page | Path | Description |
|------|------|-------------|
| Landing | `index.html` | Hero, feature grid, quick-start tabs, architecture overview |
| Download | `download.html` | Release cards, install instructions, all-releases table |
| Changelog | `changelog.html` | Timeline-style release history |
| Docs — Hub | `docs/index.html` | Documentation landing with section cards |
| Docs — Installation | `docs/getting-started.html` | Tarball, container, and source install guides |
| Docs — Config Reference | `docs/configuration.html` | Full TOML configuration reference |
| Docs — Feature Matrix | `docs/features.html` | Cargo features and build profile table |
| Docs — TLS & ACME | `docs/tls-acme.html` | TLS backends, managed ACME, EAB issuers |
| Docs — Cache System | `docs/cache.html` | Memory/disk/tiered cache, range caching, admin API |
| Docs — Deployment | `docs/deployment.html` | Systemd, containers, Podman Quadlet |
| Docs — Observability | `docs/observability.html` | Prometheus, OpenTelemetry, structured logging |
| Docs — Advanced | `docs/advanced.html` | PHP-FPM, fluxheim-acme, config-tester, WAF, WASM |
| Docs — Source Reference | `docs/reference.html` | Vendored upstream Fluxheim Markdown docs from main |
## Tech Stack
All assets are vendored locally — no runtime CDN calls.
| Library | Version | Purpose |
|---------|---------|---------|
| Vendored Tailwind browser build | v3 | Utility-first styling, responsive dark and light themes |
| [Alpine.js](https://alpinejs.dev) | v3.14.1 | Mobile drawer, tabs, sidebar active state |
| [Prism.js](https://prismjs.com) | v1.29.0 | Syntax highlighting (TOML, Bash, Rust) |
**Design:** `#030712` (gray-950) dark background · `#22d3ee` (cyan-400) accent · violet secondary
## Running Locally
No build step — open any HTML file directly in a browser, or serve with any static file server:
```bash
# Python (built-in)
python3 -m http.server 8000
# Or with Fluxheim itself (see Docker section below)
```
## Docker / Podman
`container/Dockerfile` uses a three-stage build. It builds Fluxheim from the tagged upstream release and packages the website files from the local build context, so local container tests exercise the same files you are about to push:
1. **Builder** — `rust:1.96-slim-bookworm`: clones and compiles Fluxheim v1.6.13 with `profile-static-site`
2. **Site** — `alpine:3`: packages the local HTML, docs, assets, and config
3. **Runtime** — `cgr.dev/chainguard/wolfi-base`: hardened Wolfi image, non-root user, binary + site files baked in
### Build and run with Podman Compose
```bash
podman-compose -f container/podman-compose.yml up --build
```
The site will be available at **http://localhost:8080**.
### Build and run manually
```bash
# Build — context is repo root, Dockerfile is in container/
podman build -f container/Dockerfile -t fluxheim-website:1.6.13 .
# Run rootless on port 8080
podman run -d \
--name fluxheim-website \
--restart unless-stopped \
-p 8080:8080 \
fluxheim-website:1.6.13
```
### Override the config without rebuilding
```bash
podman run -d \
--name fluxheim-website \
-p 8080:8080 \
-v ./conf/fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro,z \
fluxheim-website:1.6.13
```
## Project Structure
```
fluxheim-website/
├── index.html # Landing page
├── download.html # Downloads & install guide
├── changelog.html # Release history
├── docs/
│ ├── index.html # Docs hub
│ ├── getting-started.html
│ ├── configuration.html
│ ├── features.html
│ ├── tls-acme.html
│ ├── cache.html
│ ├── deployment.html
│ ├── observability.html
│ ├── advanced.html
│ ├── reference.html
│ └── source/ # Vendored Markdown plus rendered source-doc HTML
├── assets/
│ ├── css/
│ │ ├── prism-dark.min.css
│ │ └── theme.css
│ ├── js/
│ │ ├── tailwind.js
│ │ ├── theme.js
│ │ ├── alpine.min.js
│ │ ├── prism.min.js
│ │ ├── prism-bash.min.js
│ │ ├── prism-toml.min.js
│ │ └── prism-rust.min.js
│ └── img/
│ ├── fluxheim-logo.webp
│ └── fluxheim-overview.webp
├── conf/
│ └── fluxheim.toml # Fluxheim vhost config for serving this site
├── container/
│ ├── Dockerfile # Multi-stage: Rust/Debian builder → Wolfi runtime
│ └── podman-compose.yml
├── tools/
│ └── render-source-docs.py
├── .dockerignore
└── .containerignore
```
## Fluxheim Config
`conf/fluxheim.toml` configures Fluxheim to serve this site on port 8080 under the `fluxheim.eu` virtual host:
```toml
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["fluxheim.eu"]
[vhosts.web]
root = "/srv/sites/fluxheim"
index_files = ["index.html"]
deny_dotfiles = true
```
## Contributing
1. Edit the HTML files directly — no compilation needed.
2. Keep all assets local (download and vendor any new JS/CSS into `assets/`).
3. Test by opening the page in a browser or running a local server.
4. The site targets the current stable Fluxheim release — update version strings in all pages when a new release ships.
## License
This website is part of the [Fluxheim](https://github.com/valkyoth/fluxheim) project and is licensed under the **[EUPL-1.2](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12)**.