This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const axios = require('axios'); | |
| const querystring = require('querystring'); | |
| const keys = require('../config/keys'); | |
| const getAccessToken = async refreshToken => { | |
| try { | |
| const accessTokenObj = await axios.post( | |
| 'https://www.googleapis.com/oauth2/v4/token', | |
| querystring.stringify({ | |
| refresh_token: refreshToken, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module.exports = { | |
| email: { | |
| address: '[email protected]', | |
| password: 'clever-password' | |
| } | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| server { | |
| server_name www.goforself.me goforself.me; | |
| listen 80; | |
| client_max_body_size 20M; | |
| port_in_redirect off; | |
| access_log /var/log/nginx/goforself.me.access.log; | |
| error_log /var/log/nginx/goforself.me.error.log error; | |
| root /var/www/goforself; | |
| index index.php; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| server { | |
| listen 80 default_server; | |
| listen [::]:80 default_server; | |
| server_name my-server.com www.my-server.com; | |
| return 301 https://$server_name$request_uri; | |
| } | |
| server { | |
| # SSL configuration | |
| listen 443 ssl http2 default_server; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # renew_before_expiry = 30 days | |
| version = 0.19.0 | |
| archive_dir = /etc/letsencrypt/archive/my-domain.com | |
| cert = /etc/letsencrypt/live/my-domain.com/cert.pem | |
| privkey = /etc/letsencrypt/live/my-domain.com/privkey.pem | |
| chain = /etc/letsencrypt/live/my-domain.com/chain.pem | |
| fullchain = /etc/letsencrypt/live/my-domain.com/fullchain.pem | |
| # Options used in the renewal process | |
| [renewalparams] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| NODE_ENV=production | |
| PATH=/root/.nvm/versions/node/v8.11.1/bin:$PATH | |
| @reboot cd /var/server/script-directory && /root/.nvm/versions/node/v8.11.1/bin/forever start myscript.js |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const moment = require('moment-timezone'); // https://momentjs.com/timezone/ | |
| const timestamp = new Date(); | |
| console.log( | |
| moment(timestamp) | |
| .tz('America/Vancouver') // find your zone here https://momentjs.com/timezone/docs/#/data-loading/getting-zone-names/ | |
| .format('dddd, MMMM Do YYYY, h:mm:ss a (UTC Z)') | |
| ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const tweetnacl = require('tweetnacl'); // https://github.com/dchest/tweetnacl-js | |
| tweetnacl.util = require('tweetnacl-util'); // https://github.com/dchest/tweetnacl-util-js | |
| // utility function to display the Uint8Array | |
| const asciiArmored = arr => tweetnacl.util.encodeBase64(arr); | |
| // generate the key to encrypt a message | |
| const secretKey = tweetnacl.randomBytes(32); | |
| console.log(`secret key: ${asciiArmored(secretKey)}`); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const moment = require('moment'); | |
| const someAction = () => console.log('Actioning...'); | |
| const wait = ms => new Promise((resolve, reject) => setTimeout(resolve, ms)); | |
| const startCron = async () => { | |
| while (true) { | |
| if ( | |
| moment().date() === |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| sudo apt-get update | |
| sudo apt-get install software-properties-common | |
| sudo add-apt-repository ppa:certbot/certbot | |
| sudo apt-get update | |
| sudo apt-get install python-certbot-nginx |