func New() *Firetest {
	secret := []byte(fmt.Sprint(time.Now().UnixNano()))
	return &Firetest{
		db:          newNotifyDB(),
		Secret:      base64.URLEncoding.EncodeToString(secret),
		requireAuth: new(int32),
	}
}
New creates a new Firetest server
package firetest
import (
	"crypto/hmac"
	"crypto/sha256"
	"encoding/base64"
	"encoding/json"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"net"
	"net/http"
	"strings"
	"sync/atomic"
	"time"
)
var (
	missingJSONExtension = []byte("append .json to your request URI to use the REST API")
	missingBody          = []byte(`{"error":"Error: No data supplied."}`)
	invalidJSON          = []byte(`{"error":"Invalid data; couldn't parse JSON object, array, or value. Perhaps you're using invalid characters in your key names."}`)
	invalidAuth          = []byte(`{"error" : "Could not parse auth token."}`)
)
type Firetest struct {
	URL string
	Secret string
	listener net.Listener
	db       *notifyDB
	requireAuth *int32
}