Finishing this guide you'll get:
- A running Ghost installation
- Amazon SES mail configuration
- Simple ssh hardenings
- Nginx proxy
- Node.js configured with forever
Specification of latest running installation:
| makecert -pe -n "CN=ppistablet" -a sha256 -sky Exchange -eku 1.3.6.1.5.5.7.3.3 -ic c:\ppis\CA.cer -iv c:\ppis\CA.pvk -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -cy end -sv c:\ppis\ppistablet.pvk c:\ppis\ppistablet.cer | |
| pvk2pfx -pvk c:\ppis\ppistablet.pvk -spc c:\ppis\ppistablet.cer -pfx c:\ppis\ppistablet.pfx -pi xxxxx |
| { | |
| "value": [ | |
| { | |
| "id": "/subscriptions/<subscriptionId>/providers/Microsoft.Batch", | |
| "namespace": "Microsoft.Batch", | |
| "resourceTypes": [ | |
| { | |
| "resourceType": "batchAccounts", | |
| "locations": [ |
| * { | |
| font-size: 12pt; | |
| font-family: monospace; | |
| font-weight: normal; | |
| font-style: normal; | |
| text-decoration: none; | |
| color: black; | |
| cursor: default; | |
| } |
| Get-ChildItem -r * |? {$_.GetType().Name -match "File" } |? {$_.fullname.length -ge 250} | ` | |
| %{ Write-Host $_.fullname.length.ToString() "|" $_.fullname} |
| <configuration> | |
| <system.webServer> | |
| <security> | |
| <requestFiltering removeServerHeader="true"/> | |
| </security> | |
| <httpProtocol> | |
| <customHeaders> | |
| <remove name="X-Powered-By" /> | |
| <remove name="X-Cache" /> | |
| </customHeaders> |
Finishing this guide you'll get:
Specification of latest running installation:
| var Fiber = require('fibers') | |
| var getResp = function (url, callback) { | |
| var fn = Fiber(function () { | |
| var resp = handleRequest(url); | |
| if (resp.statusCode != 200) { | |
| //handle success response | |
| } else { | |
| //handle other responses here | |
| } |
#Bottled Water
##Summary
Bottled water takes advantage of logical decoding (available with PostgreSQL 9.4) to funnel changes made to the database to a Kakfka stream in an Avro format which can then be transformed and sent somewhere else in a stream. Until PostgreSQL 9.4, if you wanted to stream changes you had to use triggers which is unappealing because of the burden they place on the databse servers.
| var crypto = require('crypto'); | |
| var util = require('util'); | |
| var request = require('request'); | |
| var sbNamespace = '{YOUR NAMESPACE}'; | |
| var sbEntityPath = '{YOUR QUEUE}'; | |
| var sharedAccessKey = 'LBgdFoE........lFyvW4='; | |
| var sharedAccessKeyName = '{POLICY NAME}'; | |
| var sas = getSASToken(sbNamespace, sbEntityPath, sharedAccessKeyName, sharedAccessKey); |