Still Maintained

Self-hosted Automation: 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 33 automation projects by the licence you are actually agreeing to, as read on 2026-08-20.

18 of 33 are permissive: run them, change them, keep your changes to yourself. 6 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. 3 are not open source at all, carrying a proprietary or restricted-use licence. The remaining 6 are ordinary copyleft.

ProjectLicenceWhat that meansStarsMaintenanceLanguage
HuginnMITPermissive, no strings49,823ActiveRuby
Apache AirflowApache-2.0Permissive, no strings46,543ActivePython
changedetection.ioApache-2.0Permissive, no strings33,260ActivePython
KestraApache-2.0Permissive, no strings27,857ActiveJava
ActivepiecesMITPermissive, no strings23,921ActiveTypeScript
LeonMITPermissive, no strings17,448ActiveTypeScript
GotenbergMITPermissive, no strings12,890ActiveGo
HealthchecksBSD-3-ClausePermissive, no strings10,264ActivePython
StackStormApache-2.0Permissive, no strings6,522ActivePython
CronicleMITPermissive, no strings5,801ActiveJavaScript
DittofeedMITPermissive, no strings2,908ActiveTypeScript
FredyApache-2.0Permissive, no strings1,429ActiveJavaScript
µTaskBSD-3-ClausePermissive, no strings1,394ActiveGo
KibitzrMITPermissive, no strings715ActivePython
gocronMITPermissive, no strings549ActiveGo
flowctlApache-2.0Permissive, no strings330ActiveGo
feedmixerWTFPLPermissive, no strings237SlowingPython
HomeButlerMITPermissive, no strings188ActiveGo
DaguGPL-3.0Copyleft, publish your changes3,780ActiveGo
MatcheringGPL-3.0Copyleft, publish your changes2,609ActivePython
Discount BanditGPL-3.0Copyleft, publish your changes729ActivePHP
BookBountyMPL-2.0Copyleft, publish your changes289ActivePython
Mylar3GPL-3.0Copyleft, publish your changes102ActivePython
LazyLibrarianGPL-3.0Copyleft, publish your changes-Not measuredPython
AutomatischAGPL-3.0AGPL, network copyleft13,938SlowingJavaScript
pyLoadAGPL-3.0AGPL, network copyleft3,836ActivePython
OliveTinAGPL-3.0AGPL, network copyleft3,761ActiveGo
CronmasterAGPL-3.0AGPL, network copyleft1,348ActiveTypeScript
ChiefOnboardingAGPL-3.0AGPL, network copyleft923ActivePython
HandBrake WebAGPL-3.0AGPL, network copyleft794ActiveTypeScript
n8nApache-2.0, Commons-ClauseNot open source, restricted use201,271ActiveTypeScript
Ctfreak⊘ ProprietaryNot open source, restricted use-Not measuredUnknown
CxReports⊘ ProprietaryNot open source, restricted use-Not measuredDocker

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.