12 Commits

Author SHA1 Message Date
e67677d57d 0.0.6 2016-06-18 16:03:58 +02:00
d5b5e8d612 update Readme 2016-06-18 16:03:46 +02:00
bbee7923e4 more structure 2016-06-18 15:59:03 +02:00
04be5f88eb 0.0.5 2016-06-18 15:42:53 +02:00
3c626908f1 compile 2016-06-18 15:42:49 +02:00
821b2f95b0 fix repo link 2016-06-18 15:42:09 +02:00
c0753c185f 0.0.4 2016-06-18 15:13:06 +02:00
dad659e2ed fix description 2016-06-18 15:13:02 +02:00
d1f1ae271a 0.0.3 2016-06-18 15:09:48 +02:00
7bd18cb927 fix branches for ci 2016-06-18 15:09:44 +02:00
56b5adac16 0.0.2 2016-06-18 15:08:06 +02:00
56180af583 integrate gitlab ci 2016-06-18 15:07:54 +02:00
18 changed files with 171 additions and 11 deletions

38
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,38 @@
image: hosttoday/ht-docker-node:npmts
stages:
- test
- release
testLEGACY:
stage: test
script:
- npmci test legacy
tags:
- docker
- lossless
testLTS:
stage: test
script:
- npmci test lts
tags:
- docker
- lossless
testSTABLE:
stage: test
script:
- npmci test stable
tags:
- docker
- lossless
release:
stage: release
script:
- npmci publish npm
only:
- tags
tags:
- lossless

View File

@ -1,16 +1,22 @@
# Cert
Easily obain SSL certificates from LetsEncrypt. Supports DNS-01 challenge. TypeScript ready.
> Note: this package is in pre-alpha stage and will be ready soon.
## Usage
```typescript
import {Cert} from "cert";
myCert = new Cert({
cfEmail = "some@cloudflare.email",
cfKey = "someCloudflareApiKey",
outputPath = "someOutputPath" // NOTE: if you already have certificates, make sure you put them in here, so cert only requires the missing ones
let myCert = new Cert({
cfEmail: "some@cloudflare.email",
cfKey: "someCloudflareApiKey",
sslDir: "someOutputPath", // NOTE: if you already have certificates, make sure you put them in here, so cert only requires the missing ones
gitOriginRepo: "git@githhub.com/someuser/somereopo" // good for pesistence in highly volatile environments like docker
});
myCert.getDomainCert("example.com");
```
```
### sslDir
to use the certificates it is important to understand what the structure of the ssl directory looks like.

View File

3
dist/cert.hook.js vendored Normal file
View File

@ -0,0 +1,3 @@
"use strict";
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjZXJ0Lmhvb2suanMiLCJzb3VyY2VzQ29udGVudCI6W119

2
dist/cert.paths.d.ts vendored Normal file
View File

@ -0,0 +1,2 @@
import "typings-global";
export import path = require("path");

5
dist/cert.paths.js vendored Normal file
View File

@ -0,0 +1,5 @@
"use strict";
require("typings-global");
exports.path = require("path");
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNlcnQucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQyIsImZpbGUiOiJjZXJ0LnBhdGhzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmV4cG9ydCBpbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuXG4iXX0=

0
dist/cert.plugins.d.ts vendored Normal file
View File

3
dist/cert.plugins.js vendored Normal file
View File

@ -0,0 +1,3 @@
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjZXJ0LnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6W119

18
dist/index.d.ts vendored Normal file
View File

@ -0,0 +1,18 @@
export declare class Cert {
cfEmail: string;
cfKey: string;
sslDir: string;
certificatesPresent: any;
certificatesValid: any;
gitOriginRepo: any;
constructor(optionsArg: {
cfEmail: string;
cfKey: string;
sslDir: string;
gitOriginRepo: string;
});
getDomainCert(): void;
}
export declare class Certificate {
constructor();
}

23
dist/index.js vendored Normal file
View File

@ -0,0 +1,23 @@
"use strict";
var Cert = (function () {
function Cert(optionsArg) {
this.cfEmail = optionsArg.cfEmail;
this.cfKey = optionsArg.cfKey;
this.sslDir = optionsArg.sslDir;
this.gitOriginRepo = optionsArg.gitOriginRepo;
}
;
Cert.prototype.getDomainCert = function () { };
;
return Cert;
}());
exports.Cert = Cert;
var Certificate = (function () {
function Certificate() {
}
;
return Certificate;
}());
exports.Certificate = Certificate;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTtJQU9JLGNBQVksVUFLWDtRQUNHLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUNsRCxDQUFDOztJQUNELDRCQUFhLEdBQWIsY0FBZ0IsQ0FBQzs7SUFDckIsV0FBQztBQUFELENBbkJBLEFBbUJDLElBQUE7QUFuQlksWUFBSSxPQW1CaEIsQ0FBQTtBQUVEO0lBQ0k7SUFFQSxDQUFDOztJQUNMLGtCQUFDO0FBQUQsQ0FKQSxBQUlDLElBQUE7QUFKWSxtQkFBVyxjQUl2QixDQUFBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aHMgZnJvbSBcIi4vY2VydC5wYXRoc1wiO1xuXG5leHBvcnQgY2xhc3MgQ2VydCB7XG4gICAgY2ZFbWFpbDpzdHJpbmc7XG4gICAgY2ZLZXk6c3RyaW5nO1xuICAgIHNzbERpcjpzdHJpbmc7XG4gICAgY2VydGlmaWNhdGVzUHJlc2VudDtcbiAgICBjZXJ0aWZpY2F0ZXNWYWxpZDtcbiAgICBnaXRPcmlnaW5SZXBvO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6e1xuICAgICAgICBjZkVtYWlsOnN0cmluZyxcbiAgICAgICAgY2ZLZXk6c3RyaW5nLFxuICAgICAgICBzc2xEaXI6c3RyaW5nLFxuICAgICAgICBnaXRPcmlnaW5SZXBvOnN0cmluZ1xuICAgIH0pe1xuICAgICAgICB0aGlzLmNmRW1haWwgPSBvcHRpb25zQXJnLmNmRW1haWw7XG4gICAgICAgIHRoaXMuY2ZLZXkgPSBvcHRpb25zQXJnLmNmS2V5O1xuICAgICAgICB0aGlzLnNzbERpciA9IG9wdGlvbnNBcmcuc3NsRGlyO1xuICAgICAgICB0aGlzLmdpdE9yaWdpblJlcG8gPSBvcHRpb25zQXJnLmdpdE9yaWdpblJlcG87XG4gICAgfTtcbiAgICBnZXREb21haW5DZXJ0KCl7fTtcbn1cblxuZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuXG4gICAgfTtcbn0iXX0=

0
dist/install.d.ts vendored Normal file
View File

10
dist/install.js vendored Normal file
View File

@ -0,0 +1,10 @@
"use strict";
var beautylog = require("beautylog");
var path = require("path");
var smartfile = require("smartfile");
beautylog.info("installing letsencrypt.sh locally...");
smartfile.remote.toFs("https://raw.githubusercontent.com/lukas2511/letsencrypt.sh/master/letsencrypt.sh", path.join(__dirname, "assets/", "le.sh")).then(function () {
beautylog.success("Done!");
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVksU0FBUyxXQUFNLFdBQVcsQ0FBQyxDQUFBO0FBQ3ZDLElBQVksSUFBSSxXQUFNLE1BQU0sQ0FBQyxDQUFBO0FBQzdCLElBQVksU0FBUyxXQUFNLFdBQVcsQ0FBQyxDQUFBO0FBQ3ZDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztBQUN2RCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsa0ZBQWtGLEVBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxPQUFPLENBQUMsQ0FDekMsQ0FBQyxJQUFJLENBQUM7SUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6Imluc3RhbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiZWF1dHlsb2cgZnJvbSBcImJlYXV0eWxvZ1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgc21hcnRmaWxlIGZyb20gXCJzbWFydGZpbGVcIjtcbmJlYXV0eWxvZy5pbmZvKFwiaW5zdGFsbGluZyBsZXRzZW5jcnlwdC5zaCBsb2NhbGx5Li4uXCIpO1xuc21hcnRmaWxlLnJlbW90ZS50b0ZzKFxuICAgIFwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1a2FzMjUxMS9sZXRzZW5jcnlwdC5zaC9tYXN0ZXIvbGV0c2VuY3J5cHQuc2hcIixcbiAgICBwYXRoLmpvaW4oX19kaXJuYW1lLFwiYXNzZXRzL1wiLFwibGUuc2hcIilcbikudGhlbigoKSA9PiB7XG4gICAgYmVhdXR5bG9nLnN1Y2Nlc3MoXCJEb25lIVwiKTtcbn0pOyJdfQ==

View File

@ -1,14 +1,14 @@
{
"name": "cert",
"version": "0.0.1",
"description": "automatic cert generation for coreos clusters",
"version": "0.0.6",
"description": "Easily obain SSL certificates from LetsEncrypt. Supports DNS-01 challenge. TypeScript ready.",
"main": "dist/index.js",
"scripts": {
"test": "(npmts)"
},
"repository": {
"type": "git",
"url": "git+https://github.com/pushrocks/cert.git"
"url": "git+https://gitlab.com/pushrocks/cert.git"
},
"keywords": [
"coreos",
@ -19,10 +19,19 @@
"author": "Lossless GmbH",
"license": "MIT",
"bugs": {
"url": "https://github.com/pushrocks/cert/issues"
"url": "https://gitlab.com/pushrocks/cert/issues"
},
"homepage": "https://github.com/pushrocks/cert#readme",
"homepage": "https://gitlab.com/pushrocks/cert#readme",
"dependencies": {
"letsencrypt": "^1.4.4"
"beautylog": "^5.0.12",
"cflare": "0.0.2",
"letsencrypt": "^1.4.4",
"smartcli": "^1.0.2",
"smartfile": "^3.0.10",
"smartgit": "0.0.10",
"typings-global": "^1.0.3"
},
"devDependencies": {
"npmts-g": "^5.2.6"
}
}

2
ts/cert.hook.ts Normal file
View File

@ -0,0 +1,2 @@
import * as smartcli from "smartcli";
import * as cflare from "cflare";

3
ts/cert.paths.ts Normal file
View File

@ -0,0 +1,3 @@
import "typings-global";
export import path = require("path");

0
ts/cert.plugins.ts Normal file
View File

View File

@ -0,0 +1,28 @@
import * as paths from "./cert.paths";
export class Cert {
cfEmail:string;
cfKey:string;
sslDir:string;
certificatesPresent;
certificatesValid;
gitOriginRepo;
constructor(optionsArg:{
cfEmail:string,
cfKey:string,
sslDir:string,
gitOriginRepo:string
}){
this.cfEmail = optionsArg.cfEmail;
this.cfKey = optionsArg.cfKey;
this.sslDir = optionsArg.sslDir;
this.gitOriginRepo = optionsArg.gitOriginRepo;
};
getDomainCert(){};
}
export class Certificate {
constructor(){
};
}

View File

@ -0,0 +1,10 @@
import * as beautylog from "beautylog";
import * as path from "path";
import * as smartfile from "smartfile";
beautylog.info("installing letsencrypt.sh locally...");
smartfile.remote.toFs(
"https://raw.githubusercontent.com/lukas2511/letsencrypt.sh/master/letsencrypt.sh",
path.join(__dirname,"assets/","le.sh")
).then(() => {
beautylog.success("Done!");
});