acme.sh vs lego
A side-by-side comparison of two self-hosted reverse proxy & gateways options — licensing, setup difficulty, resource needs, and what each one replaces.
| Feature | acme.sh | lego |
|---|---|---|
| Deploy effort | Read-the-docs project | Under-an-hour setup |
| Health score | 100 · Excellent | 93 · Excellent |
| Category | Reverse Proxy & Gateways | Reverse Proxy & Gateways |
| License | GPL-3.0 | MIT |
| Language | Shell | Go |
| Setup difficulty | Easy | Easy |
| Min. RAM | 32 MB | 64 MB |
| Deployment | binary, source | binary, docker |
| GitHub stars | ★ 47,697 | ★ 9,886 |
| First released | 2016 | 2015 |
| Replaces | Certbot | Certbot |
What are acme.sh and lego?
acme.sh
acme.sh is an open-source ACME protocol client implemented entirely in shell script for obtaining and renewing TLS certificates. It has no dependencies and is widely self-hosted on servers and routers.
- Pure shell implementation
- No dependencies
- Many DNS provider APIs
- Automatic renewal
lego
lego is an open-source ACME client and library for obtaining TLS certificates from Let's Encrypt and other ACME providers. It supports many DNS providers and is self-hosted for certificate automation.
- ACME certificate client
- 150+ DNS providers
- Single binary
- Usable as a library
acme.sh vs lego: key differences
Acme.sh is written in Shell, while lego is built with Go. Licensing differs — GPL-3.0 for acme.sh versus MIT for lego. Acme.sh is the lighter option, starting around 32 MB of RAM against 64 MB for lego. Acme.sh has the considerably larger community, at 47,697 GitHub stars versus 9,886. Lego lists first-class Docker deployment; acme.sh does not.
Why pick each one
Choose acme.sh if…
- Zero dependencies
- Huge DNS provider support
- Runs almost anywhere
Watch out for
- CLI only
- Shell scripts to debug
Choose lego if…
- Released under the MIT license
- Easy to set up — beginner-friendly
- First-class Docker support for quick deployment
- Mature project with 9.9k GitHub stars
Frequently asked questions
Is acme.sh or lego better?
Neither is universally better. acme.sh has the larger community; both share a easy setup difficulty, so the decision comes down to features and licensing.
Are acme.sh and lego free and open-source?
Yes. acme.sh is licensed under GPL-3.0 and lego under MIT. Both can be self-hosted at no software cost.
Can I run acme.sh and lego with Docker?
acme.sh: check the project docs for container support. lego: yes.
Which is lighter on resources, acme.sh or lego?
acme.sh has the smaller minimum footprint at 32 MB of RAM, compared to about 64 MB for lego. Real-world usage depends on library size, user count, and enabled features.