diff --git a/README.md b/README.md index 58e3742..856246a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ CLI for node-letsencrypt modeled after the official client. +(IN-PROGRESS) + ## Install ```bash @@ -27,3 +29,52 @@ letsencrypt certonly \ --webroot --webroot-path /srv/www/acme-challenge \ --domains example.com,www.example.com ``` + +## Command line Options + +``` +Usage: + letsencrypt [OPTIONS] [ARGS] + +Options: + --email EMAIL Email used for registration and recovery contact. (default: null) + + --domains URL Domain names to apply. For multiple domains you can enter a comma + separated list of domains as a parameter. (default: []) + + --duplicate BOOLEAN Allow getting a certificate that duplicates an existing one + + --agree-tos BOOLEAN Agree to the Let's Encrypt Subscriber Agreement + + --debug BOOLEAN show traces and logs + + --tls-sni-01-port NUMBER Port number to perform tls-sni-01 challenge. + Boulder in testing mode defaults to 5001. (default: 443 and 5001) + + --http-01-port [NUMBER] Port used in the SimpleHttp challenge. (Default is 80) + + --rsa-key-size [NUMBER] Size (in bits) of the RSA key. (Default is 2048) + + --cert-path STRING Path to where new cert.pem is saved + (Default is :conf/live/:hostname/cert.pem) + + --fullchain-path [STRING] Path to where new fullchain.pem (cert + chain) is saved + (Default is :conf/live/:hostname/fullchain.pem) + + --chain-path [STRING] Path to where new chain.pem is saved + (Default is :conf/live/:hostname/chain.pem) + + --domain-key-path STRING Path to privkey.pem to use for domain (default: generate new) + + --config-dir STRING Configuration directory. + + --server [STRING] ACME Directory Resource URI. (Default is https://acme-v01.api.letsencrypt.org/directory)) + + --standalone [BOOLEAN] Obtain certs using a "standalone" webserver. (Default is true) + + --webroot BOOLEAN Obtain certs by placing files in a webroot directory. + + --webroot-path STRING public_html / webroot path. + + -h, --help Display help and usage details +``` diff --git a/bin/letsencrypt.js b/bin/letsencrypt.js new file mode 100755 index 0000000..fd5dd82 --- /dev/null +++ b/bin/letsencrypt.js @@ -0,0 +1,29 @@ +#!/usr/bin/env node +'use strict'; + +var cli = require('cli'); + +cli.parse({ + email: [ false, " Email used for registration and recovery contact. (default: null)", 'email' ] +, domains: [ false, " Domain names to apply. For multiple domains you can enter a comma separated list of domains as a parameter. (default: [])", 'string' ] +, duplicate: [ false, " Allow getting a certificate that duplicates an existing one", 'boolean', false ] +, 'agree-tos': [ false, " Agree to the Let's Encrypt Subscriber Agreement", 'boolean', false ] +, debug: [ false, " show traces and logs", 'boolean', false ] +, 'tls-sni-01-port': [ false, " Port number to perform tls-sni-01 challenge. Boulder in testing mode defaults to 5001. (default: 443 and 5001)", 'int' ] +, 'http-01-port': [ false, " Port used in the SimpleHttp challenge.", 'int', 80 ] +, 'rsa-key-size': [ false, " Size (in bits) of the RSA key.", 'int', 2048 ] +, 'cert-path': [ false, " Path to where new cert.pem is saved", 'string',':conf/live/:hostname/cert.pem' ] +, 'fullchain-path': [ false, " Path to where new fullchain.pem (cert + chain) is saved", 'string', ':conf/live/:hostname/fullchain.pem' ] +, 'chain-path': [ false, " Path to where new chain.pem is saved", 'string', ':conf/live/:hostname/chain.pem' ] +, 'domain-key-path': [ false, " Path to privkey.pem to use for domain (default: generate new)", 'string' ] +, 'config-dir': [ false, " Configuration directory.", 'string'/*, '/etc/letsencrypt'*/ ] +, server: [ false, " ACME Directory Resource URI.", 'string', 'https://acme-v01.api.letsencrypt.org/directory)' ] +, standalone: [ false, " Obtain certs using a \"standalone\" webserver.", 'boolean', true ] +//, manual: [ false, " Provide laborious manual instructions for obtaining a cert (default: false)", 'boolean', false ] +, webroot: [ false, " Obtain certs by placing files in a webroot directory.", 'boolean', false ] +, 'webroot-path': [ false, " public_html / webroot path.", 'string' ] +//, 'standalone-supported-challenges': [ false, " Supported challenges, order preferences are randomly chosen. (default: http-01,tls-sni-01)", 'string', 'http-01,tls-sni-01'] +}); + +cli.main(function(args, options) { +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..477f7df --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "letsencrypt-cli", + "version": "1.0.0", + "description": "CLI for node-letsencrypt modeled after the official client", + "main": "index.js", + "bin": { + "letsencrypt": "bin/letsencrypt.js", + "letsencrypt-node": "bin/letsencrypt.js" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/Daplie/node-letsencrypt-cli.git" + }, + "keywords": [ + "node", + "nodejs", + "acme", + "boulder", + "letsencrypt", + "le", + "ssl", + "https", + "tls", + "free" + ], + "author": "AJ ONeal (https://daplie.com)", + "license": "(MIT OR Apache-2.0)", + "bugs": { + "url": "https://github.com/Daplie/node-letsencrypt-cli/issues" + }, + "homepage": "https://github.com/Daplie/node-letsencrypt-cli", + "dependencies": { + "cli": "^0.11.1" + } +}