A lightweight static HTTP server written in Go, designed for quick local development and file serving.
Serve is a minimal static HTTP server written in Go that allows developers to quickly serve files from any directory. It provides essential HTTP server features like HTTPS/TLS support, CORS, request logging, and basic authentication without complex configuration. It solves the problem of needing a simple, reliable way to serve static files for local development, testing, or sharing over a network.
Developers who need a lightweight, zero-configuration static file server for local development, testing web applications, or quickly sharing files over a network. It's particularly useful for Go developers who want an embeddable file server or Docker users who need a simple containerized static server.
Developers choose Serve over alternatives because it combines the simplicity of Python's SimpleHTTPServer with modern features like HTTPS, CORS, and Docker integration, all in a single binary. Its unique selling point is being a production-ready static server that's both minimal enough for quick local use and extensible enough for embedding in Go applications or running in Docker containers.
🍽️ a static http server anywhere you need one.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Installable via Homebrew or Docker with a single command, and defaults allow instant use without configuration, as shown in the TL;DR comparison to Python's SimpleHTTPServer.
Includes HTTPS/TLS encryption and Basic Authentication via a users file, providing necessary security for development and file sharing, highlighted in the features list.
Seamlessly runs as a Docker container with volume mounting and can be embedded into Go applications using net/http compatibility, evidenced by the Docker examples and development section.
Written in Go, it compiles to a single binary for multiple platforms and has official Docker images, ensuring consistent performance across environments, as seen in installation options.
Only the PORT environment variable is currently supported, with other settings requiring CLI flags, and the README admits future work is needed for full 12-factor app compatibility.
The main branch is in 'active R&D' with no stability guarantees, forcing users to rely on previous releases, indicating potential breaking changes and lack of production readiness for the latest version.
Lacks advanced features like gzip compression, custom middleware, or detailed logging options, which might be necessary for more complex static serving scenarios beyond minimal use.