{"id":20992228,"url":"https://github.com/ethiclab/easy-proxy","last_synced_at":"2026-05-09T01:38:46.958Z","repository":{"id":54816321,"uuid":"199064279","full_name":"ethiclab/easy-proxy","owner":"ethiclab","description":"Provision multiple sites as subdomains of your own domain with HTTPS enabled","archived":false,"fork":false,"pushed_at":"2021-11-17T14:05:18.000Z","size":44,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-26T10:39:34.479Z","etag":null,"topics":["docker","letsencrypt","nginx"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethiclab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-26T18:38:20.000Z","updated_at":"2021-12-28T19:22:29.000Z","dependencies_parsed_at":"2022-08-14T03:40:42.693Z","dependency_job_id":null,"html_url":"https://github.com/ethiclab/easy-proxy","commit_stats":null,"previous_names":["ethiclab/docker-nginx-http-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ethiclab/easy-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Feasy-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Feasy-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Feasy-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Feasy-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethiclab","download_url":"https://codeload.github.com/ethiclab/easy-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Feasy-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32804405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","letsencrypt","nginx"],"created_at":"2024-11-19T07:09:59.286Z","updated_at":"2026-05-09T01:38:46.945Z","avatar_url":"https://github.com/ethiclab.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# inspired by\n\nThis project was initially based on https://github.com/jwilder/nginx-proxy \n\n# what\n\nThe idea behind this project is to be able to provision web interfaces and expose them through a reverse proxy by using a CLI interface.\n\nIf you are a network administrator within your company, or if you only need to setup a test environment, this proxy can be useful.\n\nFor instance, let's say that you have a joomla server running on port 8888 somewhere in your network, for instance at address 192.168.1.123, and let's say that you have an http server running on port 80 in a server that is configured to be reached from internet by accessing the root domain example.com as well as the subdomains; for instance, a.example.com, b.example.com, etc.\n\nIf you want to expose your joomla instance, you have to setup a reverse proxy within the exposed http server so that every request to myjoomla.example.com, for instance, is transparently forwarded to 192.168.1.123:8888\n\nIn order to do that you have to manually edit nginx configuration or add a manually created file within the sites-available folder.\n\nThings get more complicated if you want to use SSL.\n\nThis project tries to solve this by providing a CLI interface that allows you to provision a new subdomain site without editing any nginx configuration file manually.\n\n# getting started\n\n    npm install -g @ethiclab/easy-cli\n    easy\n\nYou should see and output like:\n\n    2019-08-12 15:35:44.117224966 - [INFO ] - found EASY_DIR=/home/montoyaedu/docker-nginx-http-proxy\n    2019-08-12 15:35:44.120070955 - [INFO ] - EASY_LETSENCRYPT_DIR is not set!\n\nJust define the following environment variables into your profile file:\n\n    export EASY_LETSENCRYPT_DIR=/some_persistent_backed_up_folder\n    export EASY_DOMAINS_DIR=/some_other_persistent_backed_up_folder\n\nThen when you execute the `easy` command you get:\n\n    2019-08-12 15:37:14.923010417 - [INFO ] - found EASY_DIR=/home/montoyaedu/docker-nginx-http-proxy\n    2019-08-12 15:37:14.926147567 - [INFO ] - Invalid command: \n    2019-08-12 15:37:14.928410671 - [INFO ] - Available commands are:\n\tproxy\n\n# help\n\nFor obtaining a list of possible commands that you can use with `easy proxy` you can try the command `easy proxy help`\n\n    easy proxy help\n    usage:\n        easy proxy create\n        easy proxy sh\n        easy proxy log\n        easy proxy build\n        easy proxy new\n        easy proxy id\n        easy proxy status\n        easy proxy start\n        easy proxy stop\n        easy proxy destroy\n        easy proxy restart\n        easy proxy reload\n        easy proxy certbot\n        easy proxy rfc2136\n        easy proxy help\n\n# easy proxy create\n\nThe command `easy proxy create` creates and starts the nginx proxy.\n\nIf you obtain something like:\n\n    easy proxy\n    Unable to find image 'ethiclab/nginx-easy:latest' locally\n    docker: Error response from daemon: manifest for ethiclab/nginx-easy:latest not found.\n    See 'docker run --help'.\n    \nIt means that you need to build the docker image first. Please execute the following command first:\n\n    easy proxy build\n\n# start nginx proxy (needs docker)\n\n    easy proxy\n    docker network create network1\n    docker run -d --name server1 nginx\n    docker network connect network1 $(easy proxy status)\n    docker network connect network1 server1\n    easy proxy new http server1.example.com example.com http://server1\n    easy proxy reload\n\nnow visit: http://server1.example.com\n\nIMPORTANT: Remember that server1.example.com must resolve to the ip address where the proxy is running.\n\n# development\n\n## link easy with your local working folder\n\n    git clone git@github.com:ethiclab/docker-nginx-http-proxy.git\n    cd docker-nginx-http-proxy\n    . ./configure-local-devenv\n\n## start a local dns\n\n    docker run -d -p 53:53/tcp -p 53:53/udp -p10000:10000/tcp sameersbn/bind\n\n## visit webmin\n\n  open https://localhost:10000\n  with user root and password password\n  \nconfigure a new domain with wildcard support.\n\n## Mac OSX\n\n    networksetup -listallnetworkservices\n    networksetup -getdnsservers \u003cnetworkservice\u003e\n    networksetup -setdnsservers \u003cnetworkservice\u003e \u003cdns1\u003e [dns2] [...]\n    \n## How to publish npm package\n\n```\nnpm login\n\nnpm publish\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethiclab%2Feasy-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethiclab%2Feasy-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethiclab%2Feasy-proxy/lists"}