@@ -6,6 +6,8 @@ import * as helmet from 'helmet';
66import { CloudflareChallenge } from '@interactivetraining/le-challenge-cloudflare' ;
77import { IPackageParams } from './interfaces' ;
88import { downloadPackage } from './helpers' ;
9+ import { GCloudStoreCreate } from '@interactivetraining/le-store-gcloud-storage'
10+ import * as http from 'http' ;
911
1012require ( 'dotenv' ) . config ( ) ;
1113
@@ -53,24 +55,36 @@ app.get(['/:scope?/:package@:version/*', '/:scope?/:package/*'], async (req, res
5355 }
5456} ) ;
5557
56- require ( 'greenlock-express' ) . create ( {
57- version : 'draft-11' ,
58- server : 'https://acme-v02.api.letsencrypt.org/directory' ,
59- email : process . env . LETS_ENCRYPT_EMAIL ,
60- agreeTos : ( process . env . LETS_ENCRYPT_AGREE_TO_TOS . trim ( ) === 'true' ) ,
61- approveDomains : [
62- process . env . DOMAIN
63- ] ,
64- configDir : 'acme/' ,
65- app : app ,
66- challengeType : 'dns-01' ,
67- challenge : new CloudflareChallenge ( {
68- cloudflare : {
69- email : process . env . CLOUDFLARE_EMAIL ,
70- key : process . env . CLOUDFLARE_API_KEY
71- } ,
72- acmePrefix : '_acme-challenge' ,
73- verifyPropagation : { waitFor : 5000 , retries : 50 } ,
74- useDNSOverHTTPS : false
75- } )
76- } ) . listen ( 80 , 443 , ( ) => console . log ( `Listening...` ) ) ;
58+ if ( process . env . ENABLE_SSL === "1" ) {
59+ require ( 'greenlock-express' ) . create ( {
60+ version : 'draft-11' ,
61+ server : 'https://acme-v02.api.letsencrypt.org/directory' ,
62+ //server: 'https://acme-staging-v02.api.letsencrypt.org/directory',
63+ email : process . env . LETS_ENCRYPT_EMAIL ,
64+ agreeTos : ( process . env . LETS_ENCRYPT_AGREE_TO_TOS . trim ( ) === 'true' ) ,
65+ approveDomains : [
66+ process . env . DOMAIN
67+ ] ,
68+ configDir : 'acme/' ,
69+ app : app ,
70+ store : GCloudStoreCreate ( {
71+ bucketName : process . env . GOOGLE_CLOUD_BUCKET_NAME ,
72+ projectId : process . env . GOOGLE_CLOUD_PROJECT_ID ,
73+ keyFilename : process . env . GOOGLE_CLOUD_KEY_FILE_PATH ,
74+ dbFileName : process . env . GOOGLE_CLOUD_CERT_DB_FILE
75+ } ) ,
76+ challengeType : 'dns-01' ,
77+ challenge : new CloudflareChallenge ( {
78+ cloudflare : {
79+ email : process . env . CLOUDFLARE_EMAIL ,
80+ key : process . env . CLOUDFLARE_API_KEY
81+ } ,
82+ acmePrefix : '_acme-challenge' ,
83+ verifyPropagation : { waitFor : 5000 , retries : 50 } ,
84+ useDNSOverHTTPS : false
85+ } )
86+ } ) . listen ( 80 , 443 , ( ) => console . log ( `Listening...` ) ) ;
87+ } else {
88+ http . createServer ( app ) . listen ( 80 , ( ) => console . log ( `Listening...` ) ) ;
89+ }
90+
0 commit comments