Still Maintained

Self-hosted Web Servers: what licence are you actually agreeing to

“Self-hosted” and “open source” are not the same promise, and the lists that recommend these projects rarely separate them. This page sorts 20 web servers projects by the licence you are actually agreeing to, as read on 2026-08-20.

13 of 20 are permissive: run them, change them, keep your changes to yourself. 3 are AGPL, where serving a modified copy over a network obliges you to publish those changes, which is the clause that catches people who self-host for a team. 0 are not open source at all, carrying a proprietary or restricted-use licence. The remaining 4 are ordinary copyleft.

ProjectLicenceWhat that meansStarsMaintenanceLanguage
CaddyApache-2.0Permissive, no strings75,040ActiveGo
TraefikMITPermissive, no strings64,505ActiveGo
Nginx Proxy ManagerMITPermissive, no strings33,912ActiveTypeScript
NGINXBSD-2-ClausePermissive, no strings31,455ActiveC
PomeriumApache-2.0Permissive, no strings4,965ActiveGo
go-doxyMITPermissive, no strings4,084ActiveGo
godoxyMITPermissive, no strings4,084ActiveGo
AlgernonBSD-3-ClausePermissive, no strings3,024ActiveJavaScript
Static Web ServerApache-2.0, MITPermissive, no strings2,331ActiveRust
FerronMITPermissive, no strings2,117ActiveRust
Apache HTTP ServerApache-2.0Permissive, no strings-Not measuredC
LighttpdBSD-3-ClausePermissive, no strings-Not measuredC
Vinyl CacheBSD-2-ClausePermissive, no strings-Not measuredGo
SafeLineGPL-3.0Copyleft, publish your changes22,403ActiveGo
SWAG (Secure Web Application Gateway)GPL-3.0Copyleft, publish your changes3,712ActiveDockerfile
UUSEC WAFGPL-3.0Copyleft, publish your changes1,704ActiveShell
HAProxyGPL-2.0Copyleft, publish your changes-Not measuredC
PangolinAGPL-3.0AGPL, network copyleft22,392ActiveTypeScript
BunkerWebAGPL-3.0AGPL, network copyleft10,830ActivePython
ZoraxyAGPL-3.0AGPL, network copyleft5,394ActiveHTML

What the licence column means

The Maintenance column is a second, independent check: the age of the most recent commit on the default branch, read from the GitHub API on 2026-08-20. Active is within 180 days, Slowing is 180 to 365, Dormant is over a year, Archived means the maintainer marked the repo read-only, and Not measured means the project is hosted outside GitHub so the check does not apply.

Source data from awesome-selfhosted-data, used under CC BY-SA 3.0. Licence family grouping and maintenance status are computed by this site (from the upstream licence fields and the GitHub API) and are not part of the upstream dataset. Licence classification is a summary, not legal advice: check the project’s own LICENSE file before you rely on it. This page is published under the same licence.