{"id":50983962,"url":"https://github.com/valkyoth/fluxheim-website","last_synced_at":"2026-06-19T17:03:32.313Z","repository":{"id":358871389,"uuid":"1243218699","full_name":"valkyoth/fluxheim-website","owner":"valkyoth","description":"Official website for the Fluxheim edge server — built with HTML5, Tailwind CSS, and served by Fluxheim itself.","archived":false,"fork":false,"pushed_at":"2026-06-13T20:49:23.000Z","size":6987,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-13T22:23:47.755Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fluxheim.eu","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valkyoth.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.html","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["eldryoth"],"thanks_dev":"u/gh/eldryoth"}},"created_at":"2026-05-19T06:38:45.000Z","updated_at":"2026-06-13T20:49:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/valkyoth/fluxheim-website","commit_stats":null,"previous_names":["valkyoth/fluxheim-website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/valkyoth/fluxheim-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Ffluxheim-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Ffluxheim-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Ffluxheim-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Ffluxheim-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valkyoth","download_url":"https://codeload.github.com/valkyoth/fluxheim-website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Ffluxheim-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34540570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-19T17:03:31.411Z","updated_at":"2026-06-19T17:03:32.304Z","avatar_url":"https://github.com/valkyoth.png","language":"HTML","funding_links":["https://github.com/sponsors/eldryoth","https://thanks.dev/u/gh/eldryoth"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/img/fluxheim-logo.webp\" alt=\"Fluxheim\" width=\"80\"\u003e\n  \u003ch1\u003eFluxheim Website\u003c/h1\u003e\n  \u003cp\u003e\n    The official project website for \u003ca href=\"https://github.com/valkyoth/fluxheim\"\u003eFluxheim\u003c/a\u003e —\n    a high-performance edge server and reverse proxy built in Rust.\n  \u003c/p\u003e\n\n  ![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=flat-square\u0026logo=html5\u0026logoColor=white)\n  ![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=flat-square\u0026logo=tailwind-css\u0026logoColor=white)\n  ![Alpine.js](https://img.shields.io/badge/Alpine.js-8BC0D0?style=flat-square\u0026logo=alpine.js\u0026logoColor=black)\n  ![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue?style=flat-square)\n\u003c/div\u003e\n\n---\n\n## Overview\n\nA 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.\n\nThe 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.\n\n## Pages\n\n| Page | Path | Description |\n|------|------|-------------|\n| Landing | `index.html` | Hero, feature grid, quick-start tabs, architecture overview |\n| Download | `download.html` | Release cards, install instructions, all-releases table |\n| Changelog | `changelog.html` | Timeline-style release history |\n| Docs — Hub | `docs/index.html` | Documentation landing with section cards |\n| Docs — Installation | `docs/getting-started.html` | Tarball, container, and source install guides |\n| Docs — Config Reference | `docs/configuration.html` | Full TOML configuration reference |\n| Docs — Feature Matrix | `docs/features.html` | Cargo features and build profile table |\n| Docs — TLS \u0026 ACME | `docs/tls-acme.html` | TLS backends, managed ACME, EAB issuers |\n| Docs — Cache System | `docs/cache.html` | Memory/disk/tiered cache, range caching, admin API |\n| Docs — Deployment | `docs/deployment.html` | Systemd, containers, Podman Quadlet |\n| Docs — Observability | `docs/observability.html` | Prometheus, OpenTelemetry, structured logging |\n| Docs — Advanced | `docs/advanced.html` | PHP-FPM, fluxheim-acme, config-tester, WAF, WASM |\n| Docs — Source Reference | `docs/reference.html` | Vendored upstream Fluxheim Markdown docs from main |\n\n## Tech Stack\n\nAll assets are vendored locally — no runtime CDN calls.\n\n| Library | Version | Purpose |\n|---------|---------|---------|\n| Vendored Tailwind browser build | v3 | Utility-first styling, responsive dark and light themes |\n| [Alpine.js](https://alpinejs.dev) | v3.14.1 | Mobile drawer, tabs, sidebar active state |\n| [Prism.js](https://prismjs.com) | v1.29.0 | Syntax highlighting (TOML, Bash, Rust) |\n\n**Design:** `#030712` (gray-950) dark background · `#22d3ee` (cyan-400) accent · violet secondary\n\n## Running Locally\n\nNo build step — open any HTML file directly in a browser, or serve with any static file server:\n\n```bash\n# Python (built-in)\npython3 -m http.server 8000\n\n# Or with Fluxheim itself (see Docker section below)\n```\n\n## Docker / Podman\n\n`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:\n\n1. **Builder** — `rust:1.96-slim-bookworm`: clones and compiles Fluxheim v1.6.13 with `profile-static-site`\n2. **Site** — `alpine:3`: packages the local HTML, docs, assets, and config\n3. **Runtime** — `cgr.dev/chainguard/wolfi-base`: hardened Wolfi image, non-root user, binary + site files baked in\n\n### Build and run with Podman Compose\n\n```bash\npodman-compose -f container/podman-compose.yml up --build\n```\n\nThe site will be available at **http://localhost:8080**.\n\n### Build and run manually\n\n```bash\n# Build — context is repo root, Dockerfile is in container/\npodman build -f container/Dockerfile -t fluxheim-website:1.6.13 .\n\n# Run rootless on port 8080\npodman run -d \\\n  --name fluxheim-website \\\n  --restart unless-stopped \\\n  -p 8080:8080 \\\n  fluxheim-website:1.6.13\n```\n\n### Override the config without rebuilding\n\n```bash\npodman run -d \\\n  --name fluxheim-website \\\n  -p 8080:8080 \\\n  -v ./conf/fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro,z \\\n  fluxheim-website:1.6.13\n```\n\n## Project Structure\n\n```\nfluxheim-website/\n├── index.html              # Landing page\n├── download.html           # Downloads \u0026 install guide\n├── changelog.html          # Release history\n├── docs/\n│   ├── index.html          # Docs hub\n│   ├── getting-started.html\n│   ├── configuration.html\n│   ├── features.html\n│   ├── tls-acme.html\n│   ├── cache.html\n│   ├── deployment.html\n│   ├── observability.html\n│   ├── advanced.html\n│   ├── reference.html\n│   └── source/               # Vendored Markdown plus rendered source-doc HTML\n├── assets/\n│   ├── css/\n│   │   ├── prism-dark.min.css\n│   │   └── theme.css\n│   ├── js/\n│   │   ├── tailwind.js\n│   │   ├── theme.js\n│   │   ├── alpine.min.js\n│   │   ├── prism.min.js\n│   │   ├── prism-bash.min.js\n│   │   ├── prism-toml.min.js\n│   │   └── prism-rust.min.js\n│   └── img/\n│       ├── fluxheim-logo.webp\n│       └── fluxheim-overview.webp\n├── conf/\n│   └── fluxheim.toml       # Fluxheim vhost config for serving this site\n├── container/\n│   ├── Dockerfile          # Multi-stage: Rust/Debian builder → Wolfi runtime\n│   └── podman-compose.yml\n├── tools/\n│   └── render-source-docs.py\n├── .dockerignore\n└── .containerignore\n```\n\n## Fluxheim Config\n\n`conf/fluxheim.toml` configures Fluxheim to serve this site on port 8080 under the `fluxheim.eu` virtual host:\n\n```toml\n[server]\nlisten = [\"0.0.0.0:8080\"]\ndefault_vhost = \"site\"\n\n[[vhosts]]\nname = \"site\"\nhosts = [\"fluxheim.eu\"]\n\n[vhosts.web]\nroot = \"/srv/sites/fluxheim\"\nindex_files = [\"index.html\"]\ndeny_dotfiles = true\n```\n\n## Contributing\n\n1. Edit the HTML files directly — no compilation needed.\n2. Keep all assets local (download and vendor any new JS/CSS into `assets/`).\n3. Test by opening the page in a browser or running a local server.\n4. The site targets the current stable Fluxheim release — update version strings in all pages when a new release ships.\n\n## License\n\nThis 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)**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalkyoth%2Ffluxheim-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalkyoth%2Ffluxheim-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalkyoth%2Ffluxheim-website/lists"}