diff --git a/README.md b/README.md index a9b1e2f..38ac347 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,82 @@ # [acme-dns-01-namecheap](https://git.rootprojects.org/root/acme-dns-01-namecheap) | a [Root](https://rootrpojects.org) project -NameCheap DNS for Let's Encrypt / ACME dns-01 challenges with ACME.js and Greenlock.js (Node.js). +NameCheap DNS + Let's Encrypt -# In Development -The documentation for how to pass the tests is here: +This handles ACME dns-01 challenges, compatible with ACME.js and Greenlock.js. +Passes [acme-dns-01-test](https://git.rootprojects.org/root/acme-dns-01-test.js). + +# Install + +```bash +npm install --save acme-dns-01-namecheap@3.x +``` + +# Usage + +First you create an instance with your credentials: + +```js +var dns01 = require('acme-dns-01-namecheap').create({ + apiUser:'username', + apiKey : 'xxxx', + clientIp:'public ip', + username: 'api user', + baseUrl: 'sandbox or production', // default production +}); +``` + +Then you can use it with any compatible ACME module, +such as Greenlock.js or ACME.js. + +### Greenlock.js + +```js +var Greenlock = require('greenlock-express'); +var greenlock = Greenlock.create({ + challenges: { + 'dns-01': dns01 + // ... + } +}); +``` + +See [Greenlockā„¢ Express](https://git.rootprojects.org/root/greenlock-express.js) +and/or [Greenlock.js](https://git.rootprojects.org/root/greenlock.js) documentation for more details. + +### ACME.js + +```js +// TODO +``` + +See the [ACME.js](https://git.rootprojects.org/root/acme-v2.js) for more details. + +### Build your own + +```js +dns01 + .set({ + identifier: { value: 'foo.example.com' }, + wildcard: false, + dnsHost: '_acme-challenge.foo.example.com', + dnsAuthorization: 'xxx_secret_xxx' + }) + .then(function () { + console.log("TXT record set"); + }) + .catch(function () { + console.log("Failed to set TXT record"); + }); +``` + +See [acme-dns-01-test](https://git.rootprojects.org/root/acme-dns-01-test.js) +for more implementation details. -* https://git.rootprojects.org/root/acme-dns-01-test.js # Tests -``` -# node ./test.js domain-zone api-user api-key username [username is optional if similar to api-user] -node ./test.js example.com demo d41474b94e7d4536baabb074a09c96bd +```bash +# node ./test.js domain-zone api-user api-key client-ip username [username is optional if similar to api-user] +node ./test.js example.com demo 45.77.4.126 d41474b94e7d4536baabb074a09c96bd + ```