acme-dns-01-digitalocean.js/README.md

123 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2019-06-13 09:42:00 +00:00
# [acme-dns-01-digitalocean](https://git.rootprojects.org/root/acme-dns-01-digitalocean.js) | a [Root](https://rootrpojects.org) project
2019-06-07 05:11:33 +00:00
2019-06-07 07:57:54 +00:00
Digital Ocean DNS + Let's Encrypt for Node.js
2019-06-07 05:11:33 +00:00
2019-06-07 07:57:54 +00:00
This handles ACME dns-01 challenges, compatible with ACME.js and Greenlock.js.
2019-06-13 09:38:50 +00:00
Passes [acme-dns-01-test](https://git.rootprojects.org/root/acme-dns-01-test.js).
2019-06-07 07:57:54 +00:00
2019-06-15 17:30:02 +00:00
## Features
- Compatible
- [x] Let's Encrypt v2.1 / ACME draft 18 (2019)
- [x] Digital Ocean v2 API
- [x] ACME.js, Greenlock.js, and others
- Quality
- [x] node v6 compatible VanillaJS
- [x] < 150 lines of code
- [x] **Zero Dependencies**
2019-06-07 07:57:54 +00:00
# Install
```bash
npm install --save acme-dns-01-digitalocean@3.x
```
2019-06-15 17:30:02 +00:00
Generate Digital Ocean API Token:
- <https://cloud.digitalocean.com/account/api/tokens>
2019-06-07 07:57:54 +00:00
# Usage
First you create an instance with your credentials:
2019-06-07 05:11:33 +00:00
2019-06-07 07:57:54 +00:00
```js
var dns01 = require('acme-dns-01-digitalocean').create({
2019-06-15 17:30:02 +00:00
baseUrl: 'https://api.digitalocean.com/v2/domains', // default
token: 'xxxx'
2019-06-07 07:57:54 +00:00
});
2019-06-07 05:11:33 +00:00
```
2019-06-07 07:57:54 +00:00
2019-06-15 17:30:02 +00:00
Then you can use it with any compatible ACME library,
2019-06-07 07:57:54 +00:00
such as Greenlock.js or ACME.js.
### Greenlock.js
```js
var Greenlock = require('greenlock-express');
var greenlock = Greenlock.create({
challenges: {
'dns-01': dns01
// ...
}
2019-06-07 07:57:54 +00:00
});
```
2019-06-15 17:30:02 +00:00
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.
2019-06-07 07:57:54 +00:00
### ACME.js
```js
// TODO
```
See the [ACME.js](https://git.rootprojects.org/root/acme-v2.js) for more details.
### Build your own
2019-06-15 17:30:02 +00:00
There are only 5 methods:
- `init(config)`
- `zones(opts)`
- `set(opts)`
- `get(opts)`
- `remove(opts)`
2019-06-07 07:57:54 +00:00
```js
dns01
2019-06-15 17:30:02 +00:00
.set({
identifier: { value: 'foo.example.co.uk' },
wildcard: false,
dnsZone: 'example.co.uk',
dnsPrefix: '_acme-challenge.foo',
dnsAuthorization: 'xxx_secret_xxx'
})
.then(function() {
console.log('TXT record set');
})
.catch(function() {
console.log('Failed to set TXT record');
});
2019-06-07 07:57:54 +00:00
```
See [acme-dns-01-test](https://git.rootprojects.org/root/acme-dns-01-test.js)
2019-06-07 07:57:54 +00:00
for more implementation details.
2019-06-07 07:57:54 +00:00
# Tests
```bash
2019-06-07 05:11:33 +00:00
# node ./test.js domain-zone api-token
node ./test.js example.com xxxxxx
```
2019-06-15 17:30:02 +00:00
# Authors
- Aneem Patrabansha
- AJ ONeal
See AUTHORS for contact info.
<!-- {{ if .Legal }} -->
# Legal
[acme-dns-01-digitalocean.js](https://git.coolaj86.com/coolaj86/acme-dns-01-digitalocean.js) |
MPL-2.0 |
[Terms of Use](https://therootcompany.com/legal/#terms) |
[Privacy Policy](https://therootcompany.com/legal/#privacy)
Copyright 2019 The Root Group LLC
<!-- {{ end }} -->