From 3d07dd20a3ed71329b0ab287376dc3175cb8b342 Mon Sep 17 00:00:00 2001 From: dimaslz Date: Sun, 4 Feb 2024 18:47:47 +0100 Subject: [PATCH] chore(readme): update main readme --- Readme.md | 72 ++++++++++++++++++++++++++----------- local-ssl-list-example.png | Bin 28101 -> 15155 bytes 2 files changed, 51 insertions(+), 21 deletions(-) diff --git a/Readme.md b/Readme.md index ee96f81..24811ff 100644 --- a/Readme.md +++ b/Readme.md @@ -1,12 +1,14 @@ # Local SSL Management -This project is the iteration of [https://github.com/dimaslz/local-ssl-management-docker](https://github.com/dimaslz/local-ssl-management-docker), to do the same but throuth a UI or CLI. +This project is the iteration of [https://github.com/dimaslz/local-ssl-management-docker](https://github.com/dimaslz/local-ssl-management-docker), to do the same but throuth a UI or CLI (currently the only option). -CLI to manage local SSL certifications by [mkcert](https://github.com/FiloSottile/mkcert). The key of this script: do not use ports in the domain and use all of them through port 443. +This CLI is to manage local SSL certifications by [mkcert](https://github.com/FiloSottile/mkcert). The key of this script: do not use ports in the domain and use all of them through port 443. + +The solution is simple, it is running a Nginx container as reverse proxy. **Example:** -https://local.your-domain.tld:3000 → https://local.your-domain.tld + → > ℹī¸ At the moment, just tested in MacOS @@ -43,6 +45,7 @@ Request to will serve will serve [https://www.npmjs.com/package/@dimaslz/local-ssl-management-cli](https://www.npmjs.com/package/@dimaslz/local-ssl-management-cli) -Then the CLI will be `local-ssl ...` +Then the CLI will be + +```sh +$ local-ssl +Usage: local-ssl [options] [command] + +Options: + -h, --help display help for command + +Commands: + create [options] Create domain + list List domains + update [options] update domain + remove [options] Remove domain + reset Remove all domain in `/etc/hosts` created by this cli + help [command] display help for command +``` ## Commands -> Is important to know that you need to setup the domains into your `/etc/hosts` +> By default, the CLI will ask to your system password to be able to updathe the `/etc/hosts` file. If you skip it, keep in mind that you need to update it manually. > > ```bash +> [...] +> #--------------- LOCAL SSL ---------------# > your-domain.com 127.0.0.1 +> #--------------- LOCAL SSL ---------------# > ``` > -> This will be automatically on the next version +> always at the end of the file ### create domain config ```bash $ local-ssl create local.your-name.com --location / --port 3000 - -# note: --location is "/"" by default. ``` Now, go to your favourite browser and visit and should be serving what is serving on . @@ -153,28 +173,32 @@ Yes, this is a specific use case but for me, sometimes is very useful and, I do ![Local SSL Management - Project idea](/architecture-schema.png) -Basically, the script creates a container based on [nginx](https://hub.docker.com/_/nginx), and this container works as proxy for local domains, like in a server. +Basically, the script creates a container based on [nginx](https://hub.docker.com/_/nginx), and this container works as reverse proxy for local domains, like in a server. ## How to use > By default, always is created the certifications for `https://localhost` -**#1 - Update your /hosts**: +**#1 - Update your /etchosts**: MacOS and Linux: +> Do it manually or the script will do it. + ```bash ... +#--------------- LOCAL SSL ---------------# 127.0.0.1 local.your-domain.com +#--------------- LOCAL SSL ---------------# ``` **#2 - Create new domain**: -`$ local-ssl create local.your-domain.com --port 4200` +`$ local-ssl create local.your-domain.com --location / --port 4200` or for multiple domains... -`$ local-ssl create local.your-domain.com,local.your-domain.es --port 4200` +`$ local-ssl create local.your-domain.com,local.your-domain.es --location / --port 4200` List domain to check it @@ -206,6 +230,8 @@ For sure, if the service is not working, the result will response a server error - [ ] Allow edit Nginx config - [ ] Add certs manually - [ ] Add custom nginx config +- [ ] Test on Windows +- [ ] Allow do not use HTTPS ## Packages @@ -215,12 +241,16 @@ UI of the project (WIP) ### cli -Command line to manage local SSL certificates. +Command line to manage local SSL certificates. (all information on this readme) ### core Common methods and functions to use in `app` and `cli`. At the moment not very useful because the `app` is not ready. +### landing page + +Landing page to present the project. (coming soon...) + ## Author ```json @@ -237,11 +267,11 @@ Common methods and functions to use in `app` and `cli`. At the moment not very u ## My other projects -* [https://ng-heroicons.dimaslz.dev/](https://ng-heroicons.dimaslz.dev/): An Angular components library to use Heroicons.com in your Angular projects. -* [https://randomdata.loremapi.io/](https://randomdata.loremapi.io/): A tool to create mock Api responses with your custom schema. -* [https://svg-icon-2-fw-component.dimaslz.dev](https://svg-icon-2-fw-component.dimaslz.dev): A tool to create a framework icon component from a SVG -* [https://loremapi.io](https://loremapi.io): Mock and document your Api's -* [https://cv.dimaslz.dev](https://cv.dimaslz.dev): My online CV -* [https://api.dimaslz.dev](https://api.dimaslz.dev): My professional info by API -* [https://dimaslz.dev](https://dimaslz.dev): Dev landing -* [https://dimaslz.com](https://dimaslz.com): Profesional landing profile +- [https://ng-heroicons.dimaslz.dev/](https://ng-heroicons.dimaslz.dev/): An Angular components library to use Heroicons.com in your Angular projects. +- [https://randomdata.loremapi.io/](https://randomdata.loremapi.io/): A tool to create mock Api responses with your custom schema. +- [https://svg-icon-2-fw-component.dimaslz.dev](https://svg-icon-2-fw-component.dimaslz.dev): A tool to create a framework icon component from a SVG +- [https://loremapi.io](https://loremapi.io): Mock and document your Api's +- [https://cv.dimaslz.dev](https://cv.dimaslz.dev): My online CV +- [https://api.dimaslz.dev](https://api.dimaslz.dev): My professional info by API +- [https://dimaslz.dev](https://dimaslz.dev): Dev landing +- [https://dimaslz.com](https://dimaslz.com): Profesional landing profile diff --git a/local-ssl-list-example.png b/local-ssl-list-example.png index cc0ebf61c892d50bc25084337b594ce560f62787..207db6309683afdaef3edceb8fcf81a443e63ef9 100644 GIT binary patch literal 15155 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

BSU5 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