# [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" }); ```