Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
🗂️ go-live is an ultra-light server utility that serves files, HTML or anything else, over HTTP.
go-live is a super-tiny Go command line utility that serves a file directory over HTTP, based on JavaScript's live-server, and supports Linux, Windows, macOS, and ARM. Written by antsankov, it serves the directory it is executed in by default and can be installed via Homebrew, Snapcraft, Docker, Go get, or direct binary download.
go-live is a command-line HTTP file server written in Go that turns any local directory into a web-accessible folder. It takes a directory path and port number as inputs, then produces an HTTP endpoint that serves static files with optional HTTPS/TLS encryption. The full binary is under 5 MB, making it one of the smallest static file servers available; the benchmark table shows go-live v1.3.0 at 5.8 MB compared to caddy v2.11.1 at 70 MB.
--https flag generates a self-signed certificate automatically, while --cert and --key let you supply custom PEM files.--serve starts the server on port 80 and suppresses browser opening, ideal for production serving.--port defaults to 9000 and --dir defaults to the current directory; both can be overridden.go-live in a project folder to get an instant HTTP server for testing frontend code.sudo go-live --dir ~/example.com/ --serve to serve a site on port 80.--https flag to get TLS encryption with a self-signed certificate.Install go-live, then run go-live in the terminal while inside the directory you want to serve. The tool starts an HTTP server on port 9000, or on the port specified with --port, and automatically opens a browser unless --quiet is used. To serve a different directory, pass --dir /path/to/folder; for production, use --serve to run on port 80 in quiet mode.
In the repository's benchmark on an Apple M2 Pro, go-live outperformed caddy, miniserve, and live-server across all file sizes and concurrency levels. For small files at 50 concurrent clients, go-live handled 22,421 requests per second — 2.9 times caddy, 1.7 times miniserve, and 4.8 times live-server. The performance advantage comes from Go's use of the sendfile syscall, which bypasses userspace memory copies.
go-live is free and open source. The GitHub repository includes no mention of paid tiers, licenses, or commercial restrictions, and all installation methods (Homebrew, Snapcraft, Docker, direct download) are available at no cost.
Yes, go-live is free and open source. It is hosted on GitHub with no mention of paid tiers, and every installation method — Homebrew, Snapcraft, Docker, direct binary, or Go get — costs nothing.
go-live supports Linux (x32, x64, ARM32, ARM64), macOS (Intel and Apple Silicon), and Windows. It also runs as a Docker container and is distributed as a Snap package.
Run go-live --https to use an auto-generated self-signed certificate. To use your own certificate, pass --cert server.pem --key server-key.pem; providing both flags automatically enables HTTPS.
By default, go-live does not allow browser caching, to avoid stale results. You can enable caching with the --cache flag if you want browsers to store files locally.
Yes, the --serve flag starts go-live on port 80 in quiet mode, and the tool is designed to serve static sites in production. The repository includes a tutorial on using it as a GitHub Pages alternative.
