{"id":20989313,"url":"https://github.com/aquaron/anle","last_synced_at":"2026-05-04T20:38:02.742Z","repository":{"id":56585044,"uuid":"73459818","full_name":"aquaron/anle","owner":"aquaron","description":"Alpine Nginx Let's Encrypt Reverse Proxy","archived":false,"fork":false,"pushed_at":"2020-10-30T05:25:52.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T11:44:10.785Z","etag":null,"topics":["alpine","certbot","certificate","docker","letsencrypt","nginx"],"latest_commit_sha":null,"homepage":"https://store.docker.com/community/images/aquaron/anle","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aquaron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-11T08:30:50.000Z","updated_at":"2020-10-30T05:25:51.000Z","dependencies_parsed_at":"2022-08-15T21:30:39.655Z","dependency_job_id":null,"html_url":"https://github.com/aquaron/anle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aquaron/anle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aquaron%2Fanle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aquaron%2Fanle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aquaron%2Fanle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aquaron%2Fanle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aquaron","download_url":"https://codeload.github.com/aquaron/anle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aquaron%2Fanle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262834788,"owners_count":23371849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","certbot","certificate","docker","letsencrypt","nginx"],"created_at":"2024-11-19T06:24:29.334Z","updated_at":"2026-05-04T20:38:02.693Z","avatar_url":"https://github.com/aquaron.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ANLE Reverse Proxy Image\n\nNginx build on Alpine with Certbot to use as a reverse proxy.\n\n## `runme.sh`\n\nLaunches `nginx` by default. If configuration is not found, initializes with default configuration.\n`runme.sh` accepts these commands:\n\n| Command   | Description                                      |\n| --------- | ------------------------------------------------ |\n| init      | initialize directories if they're empty          |\n| renew     | similar to `init` but renews certs instead       |\n| daemon    | run in non-detached mode                         |\n| certbot   | create/renew certificate                         |\n| start     | start `nginx` server                             |\n| stop      | stop `nginx` server                              |\n| quit      | gracefully stop `nginx` server                   |\n| reload    | reloads `nginx` configurations                   |\n| reopen    | reopens `nginx` log files                        |\n| kill      | `killall nginx`                                  |\n| test      | check `nginx`'s configuration                    |\n\n### `init`\n\nInitializes the server with all the necessary configurations and certificate.\nExample:\n\n    runme.sh init virtual-host.example.com certs@example.com\n\n`virtual-host.example.com` is the target to get Let's Encrypt certificate for.\n`certs@example.com` is your email address required by LE.\n\n### `renew`\n\nRenewing certificates by initializing with renewal instead of creating new certs:\n\n    runme.sh renew\n\n### `daemon`\n\nPut `nginx` in the foreground so that it wouldn't stop when the container detatches.\n\n### `certbot`\n\nGet or renew a certificate for the specified host:\n\n    runme.sh certbot virtual-host.example.com certs@example.com\n\nYou can also use the script `get-cert.sh` located in the `etc` directory to\ngenerate new LE certificates.\n\n### `start`, `stop`, `quit`, `kill`\n\nThese are convenience commands when you're inside the running container use for\nstarting and stopping.\n\n### `reload`, `reopen`, `test`\n\nWhen you change configurations, reload and test it.\n\n-------------------------------------------------------------------------------\n\n# `\u003clocal-dir\u003e/data`\n\n`anle` requires this stucture if you're not using the `init` command to create\n\n    /\u003clocal-dir\u003e/data (anywhere you want)\n    |\n    +-- /etc                (configurations)\n    |   |\n    |   +-- nginx.conf      (default)\n    |   +-- mime.types      (default)\n    |   +-- /conf.d\n    |       |\n    |       +-- proxy.conf  (default)\n    |       +-- mime.types  (auto generated)\n    |       +-- 80.conf     (auto generated)\n    |       +-- 443.conf    (auto generated, edit REQUIRED)\n    |       +-- get-cert.sh (re/new certificate for a host)\n    |    \n    +-- /html               (root)\n    |   |\n    |   +-- index.html      (default)\n    |   +-- 50x.html        (soft-link to index.html)\n    |\n    +-- /letsencrypt        (certificates)\n    |   |\n    |   +-- dhparam.pem     (default)\n    |   +-- /accounts       (le auto generated)\n    |   +-- /keys           (le auto generated)\n    |   +-- /csr            (le auto generated)\n    |   +-- /renewal        (le auto generated)\n    |   +-- /live           (le auto generated - REQUIRED)\n    |   +-- /archive        (le auto generated)\n    |\n    +-- /log                (logs and pid files)\n\nAll the default files are required, donnot delete. \n`auto generated` files are not required, they will be generated.\n\n-------------------------------------------------------------------------------\n\n# Usage Instruction\n\n## Initialize \u0026 Let's Encrypt Certificate\n\nInitialize the configurations and get the certificate:\n\n    docker run --rm -t -v \u003clocal-dir\u003e:/data \\\n        -p 80:80 -p 443:443 \\\n        aquaron/anle \\\n            init \u003chostname\u003e \u003cemail\u003e\n\n### Edit `443.conf`\n\nEdit `\u003clocal-dir\u003e/etc/conf.d/443.conf` and change\nconfiguration for `upstream` hosts to match your virtual hosts settings.\n\n### `install-systemd.sh`\n\nInstalls `docker-anle.service` to your `systemd` configuration.\nFind this script in your `\u003clocal-dir\u003e/etc` directory.\n\n## Run Daemon\n\n### Using `systemctl`\n\nIf you've used the `install-systemd.sh` script, you can issue these commands\nto start/stop your service:\n\n    systemctl start docker-anle.service\n    systemctl stop docker-anle.service\n\n### Manual\n\nYou can manually start the container by running the commands found in `docker-anle.service`:\n\n    docker run -v \u003clocal-dir\u003e:/data \\\n        -p 80:80 -p 443:443 \\\n        --name anle -h anle \\\n        -d aquaron/anle\n\n\n## Debugging\n\nEnter the container and poke around:\n\n    docker run --rm -it -v \u003clocal-dir\u003e:/data \\\n        -p 80:80 -p 443:443 \\\n        --entrypoint=/bin/sh \\\n        aquaron/anle\n\nOnce inside use the `runme.sh` to control the server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faquaron%2Fanle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faquaron%2Fanle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faquaron%2Fanle/lists"}