CI PyPI Python MIT

Ship an HTML file.
Get a real website.

Self-hosted, one-command HTML deployment. Publishing, versioned rollback, an in-browser editor, a database for static pages, security scanning and an admin console β€” all on infrastructure you own.

~/reports
$ pip install html-golive
$ golive publish q3-report.html

πŸ” scanning for secrets… clean
🎨 style: minimal Β· assets bundled (4 β†’ 1 file)
πŸ“¦ published

   slug      q3-report
   url       http://localhost:8787/s/q3-report
   size      86 KB Β· snapshot #1 saved

Why it exists

You have an HTML file β€” a report, a dashboard, an internal tool β€” and you need it on a URL your colleagues can open. The usual answers are a cloud platform that can't touch your data, or a bare nginx that gives you nothing but a file server. html-golive is the middle ground: run it yourself, keep everything inside your network, and still get the conveniences you expect.

πŸ”’

Your data stays put

Runs entirely on your own machine or server. No account, no telemetry, no outbound calls by default β€” works airgapped.

πŸͺΆ

Zero dependencies to start

The core install is standard-library only. Local filesystem plus SQLite; no database or object store to provision.

πŸ“ˆ

Grows with you

Swap in Supabase or any S3-compatible store (MinIO, COS, OSS, TOS) with one yaml file. Same commands, bigger backend.

What you get

Everything below ships in the box β€” one install, no plugins to hunt down.

πŸš€

Publish & roll back

Every publish snapshots the previous version. golive rollback returns to any of them instantly.

✏️

Edit in the browser

Owners and maintainers get an inline editor on the live page β€” fix a typo without touching the source file. Saves are scanned and snapshotted.

πŸ—„οΈ

A database for static pages

window.TemplateAPI and window.SupabaseAPI are injected into your page, so plain HTML can read and write real rows.

πŸ›‘οΈ

Secrets scanning

Rule-based detection of API keys, tokens and personal data before anything goes live β€” with optional LLM second-pass review.

🎨

19 built-in styles

Turn an unstyled document into something presentable with --style. Fonts come from public CDNs or your own mirror.

πŸ§‘β€πŸ’Ό

Admin console

A self-contained web portal at /admin: all sites, ownership transfer, maintainers, rollback, stats and an audit trail.

πŸ”‘

Real authentication

Static token for quick setups, or OIDC with one-line presets for Google, Auth0, Okta, Azure AD, Keycloak and Authentik.

πŸ•ΈοΈ

Clone any page

golive clone <url> snapshots a public page, inlines its assets and republishes it as your own.

🐳

Docker ready

A Dockerfile and a compose file with an optional MinIO profile β€” from zero to a running server in one command.

Quickstart

Three steps, about a minute. No configuration file needed to begin.

Install

Python 3.9 or newer. Optional extras add image compression and S3 support.

$ pip install html-golive

Publish a page

Point it at any HTML file. It scans for secrets, applies a style, bundles assets and registers the site.

$ golive publish report.html --style minimal

Serve it

Binds to localhost by default. Add --host 0.0.0.0 when you're ready to share β€” pair it with a token or OIDC.

$ golive serve πŸš€ http://localhost:8787/ Β· admin portal: /admin

Architecture

Three pluggable interfaces. Start on the left column, move to the right when you outgrow it β€” your commands and your pages don't change.

Storage

  • local filesystem (default)
  • supabase storage bucket
  • s3 MinIO / COS / OSS / TOS

Registry

  • sqlite single file (default)
  • supabase Postgres table

Data

  • none static pages only
  • postgrest Supabase / any PostgREST

Identity

  • none loopback-only access
  • token shared bearer token
  • oidc Google, Okta, Keycloak…

Command reference

Thirteen commands cover the whole lifecycle. Full detail lives in the user manual.

CommandWhat it does
publishScan, style, bundle and deploy an HTML file
listShow every registered site with size and owner
rollbackRestore a previous snapshot
serveRun the HTTP server and the admin portal
previewServe a local file without registering it
cloneSnapshot a public page and republish it
maintainerGrant or revoke edit rights on a site
adminOpen the admin console
stylesList the 19 built-in visual styles
data / dbInspect and manage the data backend
migrate-checkFind environment-specific references in an HTML file
doctorDiagnose configuration and connectivity

Try it

MIT licensed. 413 tests, CI on Python 3.9 / 3.11 / 3.12. Issues and pull requests welcome.