145 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # [Greenlock Manager](https://git.rootprojects.org/root/greenlock-manager.js)
 | |
| 
 | |
| 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).
 | |
| 
 | |
| ## Install
 | |
| 
 | |
| ```bash
 | |
| npm install --save greenlock@4
 | |
| npm install --save greenlock-manager@3
 | |
| ```
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| To enable encrypted cloud backup, when it becomes available:
 | |
| 
 | |
| ```js
 | |
| npx greenlock init --manager cloud --config-dir './greenlock.d'
 | |
| ```
 | |
| 
 | |
| For local file system only:
 | |
| 
 | |
| ```js
 | |
| npx greenlock init --manager fs --config-dir './greenlock.d'
 | |
| ```
 | |
| 
 | |
| Or, place this file in the root of your project:
 | |
| 
 | |
| `.greenlockrc`:
 | |
| 
 | |
| ```json
 | |
| {
 | |
|     "manager": { "module": "@greenlock/manager" },
 | |
|     "configDir": "./greenlock.d"
 | |
| }
 | |
| ```
 | |
| 
 | |
| # 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
 | |
| npx greenlock init --manager cloud --config-dir './greenlock.d'
 | |
| ```
 | |
| 
 | |
| 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,
 | |
|     configDir: "./greenlock.d",
 | |
|     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"
 | |
| });
 | |
| ```
 |