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.

Not the right match-up?
Featureacme.shlego
Deploy effortRead-the-docs projectUnder-an-hour setup
Health score100 · Excellent93 · Excellent
CategoryReverse Proxy & GatewaysReverse Proxy & Gateways
LicenseGPL-3.0MIT
LanguageShellGo
Setup difficultyEasyEasy
Min. RAM32 MB64 MB
Deploymentbinary, sourcebinary, docker
GitHub stars★ 47,697★ 9,886
First released20162015
ReplacesCertbotCertbot

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

Read the full acme.sh guide →

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
acme.sh details

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
lego details

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.

Related comparisons