diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index adaa6734..8c22b7ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,6 +53,14 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin + - name: Install snapcraft + run: sudo snap install snapcraft --classic + + - name: Snapcraft login + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }} + run: snapcraft login + - name: Set up QEMU uses: docker/setup-qemu-action@v3 diff --git a/.goreleaser.yml b/.goreleaser.yml index 469a7c79..59674a28 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -141,3 +141,31 @@ dockers: - '--label=org.opencontainers.image.revision={{.FullCommit}}' - '--label=org.opencontainers.image.version={{.Version}}' - '--platform=linux/arm/v7' + +snapcrafts: + - name: lego + grade: stable + confinement: strict + license: MIT + base: core22 + publish: true + summary: Lego is a Let's Encrypt/ACME client. + description: | + Lego is a Let's Encrypt/ACME client written in Go. + + The lego snap makes it easy to install and use Lego on any Linux distribution that supports snaps. + + Usage: + * `sudo snap install lego` + * `sudo lego --email="you@example.com" --domains="example.com" --server=https://acme-staging-v02.api.letsencrypt.org/directory --http --http.port :8080 run + + channel_templates: + - edge + + apps: + lego: + command: bin/lego + environment: + LEGO_PATH: /var/snap/lego/common/.lego + plugs: + - network-bind diff --git a/docs/content/installation/_index.md b/docs/content/installation/_index.md index dfc581dc..3cad4648 100644 --- a/docs/content/installation/_index.md +++ b/docs/content/installation/_index.md @@ -30,6 +30,12 @@ docker run goacme/lego -h yay -S lego-bin ``` +- [Snap](https://snapcraft.io/lego) (official): + + ```bash + sudo snap install lego + ``` + - [FreeBSD (Ports)](https://www.freshports.org/security/lego) (unofficial): ```bash