woah
This commit is contained in:
1 parent
8b06cc1c2e
commit
0069aeaa24
9 files changed
+78
-64
No files matched your search
File renamed without changes.
@@ -16,7 +16,7 @@ func home(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
fmt.Println(r.URL.Path)
|
||||
|
||||
ts, err := template.ParseFiles("../../ui/html/home.page.tmpl", "../../ui/html/base.layout.tmpl")
|
||||
ts, err := template.ParseFiles("ui/html/home.page.tmpl", "ui/html/base.layout.tmpl")
|
||||
if err != nil {
|
||||
log.Println(err.Error())
|
||||
http.Error(w, "Internal Server Error", 500)
|
||||
@@ -0,0 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func (app *application) healthcheckHandler(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprintln(w, "status: available")
|
||||
fmt.Fprintf(w, "environment: %s\n", app.config.env)
|
||||
fmt.Fprintf(w, "version: %s\n", version)
|
||||
}
|
||||
@@ -12,6 +12,24 @@ import (
|
||||
"github.com/jackc/pgx/v5"
|
||||
)
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
const version = "1.0.0"
|
||||
|
||||
type config struct {
|
||||
port int
|
||||
env string
|
||||
}
|
||||
|
||||
type application struct {
|
||||
config config
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
type Message struct {
|
||||
Type string `json:"type"`
|
||||
Timestamp string `json:"timestamp"`
|
||||
@@ -25,10 +43,23 @@ var upgrader = websocket.Upgrader{
|
||||
}
|
||||
|
||||
func main() {
|
||||
addr := flag.String("addr", ":8443", "HTTP network address")
|
||||
|
||||
|
||||
var cfg config
|
||||
|
||||
flag.IntVar(&cfg.port, "port", 4000, "API server port")
|
||||
flag.StringVar(&cfg.env, "env", "development", "Environment (development|staging|production)")
|
||||
//addr := flag.String("addr", ":8443", "HTTP network address")
|
||||
flag.Parse()
|
||||
|
||||
|
||||
logger := log.New(os.Stdout, "", log.Ldate | log.Ltime)
|
||||
|
||||
app := &application{
|
||||
config: cfg,
|
||||
logger: logger,
|
||||
}
|
||||
|
||||
conn, err := pgx.Connect(context.Background(), "postgres://party:iK2SoVbDhdCki5n3LxGyP6zKpLspt4@losandesgames.com:5432/party")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@@ -38,24 +69,26 @@ func main() {
|
||||
|
||||
database_init(conn)
|
||||
|
||||
mux := http.NewServeMux()
|
||||
fileServer := http.FileServer(http.Dir("../../ui/static"))
|
||||
fileServer := http.FileServer(http.Dir("ui/static"))
|
||||
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("/", home)
|
||||
mux.HandleFunc("/ws", ws)
|
||||
mux.Handle("/static/", http.StripPrefix("/static", fileServer))
|
||||
mux.HandleFunc("/v1/healthcheck", app.healthcheckHandler)
|
||||
|
||||
go func() {
|
||||
err := http.ListenAndServe(":8080", http.HandlerFunc(redirectToHTTPS))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
srv := &http.Server{
|
||||
Addr: fmt.Sprintf(":%d", cfg.port),
|
||||
Handler: mux,
|
||||
IdleTimeout: time.Minute,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
WriteTimeout: 30 * time.Second,
|
||||
}
|
||||
|
||||
log.Println("Starting server on", *addr)
|
||||
logger.Printf("starting %s server on %s", cfg.env, srv.Addr);
|
||||
|
||||
// Start HTTPS server (requires cert.pem and key.pem in current dir)
|
||||
err = http.ListenAndServeTLS(*addr, "cert.pem", "key.pem", mux)
|
||||
err = srv.ListenAndServe()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDXzCCAkegAwIBAgIUFLBXeBoRiWo+BlKfVFxGAOU9uwgwDQYJKoZIhvcNAQEL
|
||||
BQAwPzELMAkGA1UEBhMCQVQxDTALBgNVBAgMBFdpZW4xDTALBgNVBAcMBFdpZW4x
|
||||
EjAQBgNVBAoMCURpZSBQYXJ0eTAeFw0yNTA5MTExNzUyNTZaFw0yNjA5MTExNzUy
|
||||
NTZaMD8xCzAJBgNVBAYTAkFUMQ0wCwYDVQQIDARXaWVuMQ0wCwYDVQQHDARXaWVu
|
||||
MRIwEAYDVQQKDAlEaWUgUGFydHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||
AoIBAQDpNdBYKyc2z9hadellByc/CIPoDtHRVvjt94AMJFQ52Fu/yaN9/FX25egV
|
||||
S9st9TbIJkJ2rMX8gaposF1Z1fN0uEujwuRv/l3MnvKEtYcVJtcc96/KdV/JD0kX
|
||||
lTTr8WX6C5uJ8J9gZx4epc3SUVUevKvyjGjtO/1pGsS/JKpE1fgpa8V5TYaitL8t
|
||||
EIMp7DOH2ebc8YXFb/nyr4mlsRTbheD/BJgAqWKi3kKJuml9etzWFlwoMli/nONJ
|
||||
pj/KGCJLXABczwHehBIu4rBl56R9qtnRtPN9i9AEotRQHla5125mRyCCd2PRRITu
|
||||
RiSdB0y8kImhROlzpacDSBPh0sJhAgMBAAGjUzBRMB0GA1UdDgQWBBQJP+zNoNNG
|
||||
RQh0cgt42u0qGuMRkTAfBgNVHSMEGDAWgBQJP+zNoNNGRQh0cgt42u0qGuMRkTAP
|
||||
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAINSMWHokDTqoQodHY
|
||||
IJH0p0NxEqoQMhrt44medHWPYMlk4k3mWn5JD/9e29hsmovaobLPmW4+Qh90+vMu
|
||||
/+yu1YBkjsNhyZ7INyPjT2UhC6JWxJTSBFtkfL8/sg61gjDSo2ERzlC/MkQ3wozr
|
||||
bLsIf9Kj8FWMotfp71Anrrf6K83BQv6Xz5Vl/pCge0bUFkwAnoupEuiAGhLcflUH
|
||||
0p/KX72qq1fdZjd6HRm2RodtJGT8wve3HWCzJcNA45DFbuF3RCH5o3Ntc+nLX8oF
|
||||
OhYq/a8agiEWzaKwqZZ7LNyDQk65HcQDAi0qG31IdBBd6OM6DEvlh0DZIDzL7igj
|
||||
g2C/
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,28 +0,0 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDpNdBYKyc2z9ha
|
||||
dellByc/CIPoDtHRVvjt94AMJFQ52Fu/yaN9/FX25egVS9st9TbIJkJ2rMX8gapo
|
||||
sF1Z1fN0uEujwuRv/l3MnvKEtYcVJtcc96/KdV/JD0kXlTTr8WX6C5uJ8J9gZx4e
|
||||
pc3SUVUevKvyjGjtO/1pGsS/JKpE1fgpa8V5TYaitL8tEIMp7DOH2ebc8YXFb/ny
|
||||
r4mlsRTbheD/BJgAqWKi3kKJuml9etzWFlwoMli/nONJpj/KGCJLXABczwHehBIu
|
||||
4rBl56R9qtnRtPN9i9AEotRQHla5125mRyCCd2PRRITuRiSdB0y8kImhROlzpacD
|
||||
SBPh0sJhAgMBAAECggEARvLKOaiXO4OsDIlGwieU9wY+KwEnMArHnI3pdMgwn5CF
|
||||
CSntBU0ZUg3Lt37mZWruiaGqIrSZXyKLl2HgZI5EjMPsrxuBp9i47KGGon0fZX31
|
||||
f6iS4IMo6uAtmnEYMpe0MIgLf8GmmwuEDErg/RUlUj6QCTBSU6omhC1SodwjuODS
|
||||
7iCl11XcamqmVUY/VIByQH38rGzPuvNVHjc9w0nyop4TSLaoxAH/yyrg2oFfc/Ra
|
||||
h3bgsrYoasDjI1+BzreDiyoCJBwTlpG11DTmlO2bYYUgt3lgwQz12McdNJK+1s+R
|
||||
60M0BkD4TiglvHSHaUenDtXT93D8JlzOrrwYSNe0qQKBgQD7RPy3EO4KXij7QSAs
|
||||
8aM5kJQjV0JKzmLH2+/WeIjFGiJLVqWbMLF2NSaKPjh5ktXT1YmkJgbfgLw7M4q3
|
||||
a/TWdAxPpjT4GhZh8AdqEKAlpLxaweu2umKsgmPwk12/nsB/vmEZG96vhHviC5PI
|
||||
+KHKqTvGtdBsTMWhA0z0zf9GQwKBgQDtmcnirPD9QLtQd5O6dqNVUmgH8/wqGLrD
|
||||
Y88H6Yv5nmd9Oex9JoZLOQO0oXRNRUU+eCxDm6volKgI0W6XT3U1+qBicLmGdYy6
|
||||
4MHQ7Zu4e8+TNmGeAWlnOrCf8nmEQz9KjW8kOGLY09pHj6U8xxoICi2DPmNQgN6s
|
||||
t8KJQCY0iwKBgFI4Z81rj8j6uMRGskWiqDuc8KyD0CB0WmR1toxikraUb6Zhav1W
|
||||
OKuqhrrz0z0M7EVN+aUqAFPAZ1ej7P9KJyrJfIHPrEOHHc3cYkC1wgGvXyb/j6cS
|
||||
ZFl4rUU6o5GhW/IxFMrHkN20J2l3SluX6DFNoU7LjbDyijS+xL7SbXbLAoGBAJJ1
|
||||
AoGsEpw44311R+VfLczxD9kfJueX+L9p7Xq2FicW4jnJk6GNNqh1i3gzMWpT8ZvR
|
||||
HY/LDEtAHtfYqK+yNdDBHU2wqFteaBHlavLrE9rCzq+yjLeFrUAJaEgfgZHqlb/R
|
||||
sJmF/EAlTl5gB/2PyNb91xIYScWcuiWC2/IYTbSDAoGAZfDgx5CZZirYjzyTxDGM
|
||||
+Ex06mqgDO+fWDm/Uyug4Ja3gk10Iu88F8MB6btm2yIras88RwnMPicBSq++yE0R
|
||||
/ilOe5KSFyfQ3uu63gUgTKwCgb4LrdC6hMsD4ILnH44VH2zQ9yyLjrOq/8nsEq7v
|
||||
E9VeQGnFHeM6Rpl1KUHTnnY=
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in new issue
Block a user