| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | # [Greenlock Manager](https://git.rootprojects.org/root/greenlock-manager.js)
 | 
					
						
							| 
									
										
										
										
											2019-11-04 22:06:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | Manages SSL Certificate issue and renewal for [Greenlock](https://git.rootprojects.org/root/greenlock-manager.js). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Saves global and per-site config to a local File Sytem (current), with optional encrypted Cloud backup (coming soon). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:40:28 -07:00
										 |  |  | ## Install
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | ```bash | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  | npm install --save greenlock@4 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | npm install --save greenlock-manager@3 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:40:28 -07:00
										 |  |  | ## Usage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To enable encrypted cloud backup, when it becomes available: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  | npx greenlock init --manager cloud --config-dir './greenlock.d' | 
					
						
							| 
									
										
										
										
											2019-11-04 21:40:28 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For local file system only: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  | npx greenlock init --manager fs --config-dir './greenlock.d' | 
					
						
							| 
									
										
										
										
											2019-11-04 21:40:28 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Or, place this file in the root of your project: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `.greenlockrc`: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```json | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  |     "manager": { "module": "@greenlock/manager" }, | 
					
						
							|  |  |  |     "configDir": "./greenlock.d" | 
					
						
							| 
									
										
										
										
											2019-11-04 21:40:28 -07:00
										 |  |  | } | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | # Greenlock Manager CLI & API
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | All manager plugins have the **same API**. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The manager-specific implementation is overlaid by Greenlock with error handling and common utilities, | 
					
						
							|  |  |  | and then exposed as documented here. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | **Note**: Most people do not need to (and should not) not use the JavaScript API. | 
					
						
							|  |  |  | Instead, use the CLI (current) or Web API (coming soon). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Initialize the Manager
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  | npx greenlock init --manager cloud --config-dir './greenlock.d' | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Note: You **should not** initialize greenlock directly as | 
					
						
							|  |  |  | this may make it incompatible with the CLI and Web GUI. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Instead use the file generated by the CLI `init` (shown above). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | Greenlock.create({ | 
					
						
							|  |  |  |     manager: "@greenlock/manager", | 
					
						
							|  |  |  |     cloud: true, | 
					
						
							| 
									
										
										
										
											2019-11-30 13:52:55 -07:00
										 |  |  |     configDir: "./greenlock.d", | 
					
						
							| 
									
										
										
										
											2019-11-04 21:28:49 -07:00
										 |  |  |     packageRoot: __dirname | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Set Subscriber and other global Defaults
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npx greenlock defaults --subscriber-email jon@example.com --agree-to-terms true | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | greenlock.manager.defaults({ | 
					
						
							|  |  |  |     subscriberEmail: "jon@example.com", | 
					
						
							|  |  |  |     agreeToTerms: true | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Site Management
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | By "site" we mean a primary domain and, optionally, secondary domains, to be listed on an ssl certificate, | 
					
						
							|  |  |  | along with any configuration that is necessary for getting and renewing those certificates. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Add a sites - domains and SSL certificates
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npx greenlock add --subject example.com --altnames 'example.com,www.example.com' | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | greenlock.sites.add({ | 
					
						
							|  |  |  |     subject: "example.com", | 
					
						
							|  |  |  |     altnames: ["example.com", "www.example.com"] | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## View site config
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npx greenlock config --subject example.com | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | greenlock.sites.get({ | 
					
						
							|  |  |  |     servername: "www.example.com", | 
					
						
							|  |  |  |     wildname: "*.example.com" | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Update site config
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npx greenlock update --subject example.com --challenge-dns-01 acme-dns-01-ovh --challenge-dns-01-token xxxx | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | greenlock.sites.update({ | 
					
						
							|  |  |  |     subject: "www.example.com", | 
					
						
							|  |  |  |     challenges: { | 
					
						
							|  |  |  |         "dns-01": { | 
					
						
							|  |  |  |             module: "acme-dns-01-ovh", | 
					
						
							|  |  |  |             token: "xxxx" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Remove a site
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To stop automatic renewal of SSL certificates for a particular site. | 
					
						
							|  |  |  | You to restart renewal you must use `add()`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```bash | 
					
						
							|  |  |  | npx greenlock remove --subject example.com | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | greenlock.sites.remove({ | 
					
						
							|  |  |  |     subject: "example.com" | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | ``` |