mirror of
https://github.com/dstotijn/hetty.git
synced 2025-07-01 18:47:29 -04:00
Scaffold admin app
This commit is contained in:
5
admin/.gitignore
vendored
Normal file
5
admin/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/node_modules
|
||||
/.next
|
||||
/build
|
||||
|
||||
*.log*
|
16
admin/package.json
Normal file
16
admin/package.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "gurp-admin",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"export": "next build && next export -o build"
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "9.1.4",
|
||||
"react": "16.12.0",
|
||||
"react-dom": "16.12.0"
|
||||
}
|
||||
}
|
3
admin/pages/index.js
Normal file
3
admin/pages/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
const Page = () => <div>Gurp</div>
|
||||
|
||||
export default Page
|
BIN
admin/public/favicon.ico
Normal file
BIN
admin/public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
5499
admin/yarn.lock
Normal file
5499
admin/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,13 +6,18 @@ import (
|
||||
"flag"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
|
||||
"github.com/dstotijn/gurp/proxy"
|
||||
"github.com/dstotijn/gurp/pkg/proxy"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
var (
|
||||
caCertFile = flag.String("cert", "", "CA certificate file path")
|
||||
caKeyFile = flag.String("key", "", "CA private key file path")
|
||||
dev = flag.Bool("dev", false, "Run in development mode")
|
||||
adminPath = flag.String("adminPath", "", "File path to admin build")
|
||||
)
|
||||
|
||||
func main() {
|
||||
@ -47,9 +52,27 @@ func main() {
|
||||
}
|
||||
})
|
||||
|
||||
router := mux.NewRouter().SkipClean(true)
|
||||
adminRouter := router.Host("gurp.proxy")
|
||||
|
||||
if *dev {
|
||||
adminURL, err := url.Parse("http://localhost:3000")
|
||||
if err != nil {
|
||||
log.Fatalf("[FATAL] Invalid admin URL: %v", err)
|
||||
}
|
||||
adminRouter.Handler(httputil.NewSingleHostReverseProxy(adminURL))
|
||||
} else {
|
||||
if *adminPath == "" {
|
||||
log.Fatal("[FATAL] `adminPath` must be set")
|
||||
}
|
||||
adminRouter.Handler(http.FileServer(http.Dir(*adminPath)))
|
||||
}
|
||||
|
||||
router.PathPrefix("").Handler(p)
|
||||
|
||||
s := &http.Server{
|
||||
Addr: ":8080",
|
||||
Handler: p,
|
||||
Handler: router,
|
||||
TLSNextProto: map[string]func(*http.Server, *tls.Conn, http.Handler){}, // Disable HTTP/2
|
||||
}
|
||||
|
2
go.mod
2
go.mod
@ -1,3 +1,5 @@
|
||||
module github.com/dstotijn/gurp
|
||||
|
||||
go 1.13
|
||||
|
||||
require github.com/gorilla/mux v1.7.3
|
||||
|
2
go.sum
2
go.sum
@ -0,0 +1,2 @@
|
||||
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
||||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||
|
@ -1,6 +1,12 @@
|
||||
@cert = $HOME/.ssh/gurp_cert.pem
|
||||
@key = $HOME/.ssh/gurp_key.pem
|
||||
@dev = false
|
||||
@adminPath = $PWD/admin/build
|
||||
|
||||
**/*.go {
|
||||
daemon +sigterm: go run . -cert @cert -key @key
|
||||
daemon +sigterm: go run ./cmd \
|
||||
-cert=@cert \
|
||||
-key=@key \
|
||||
-dev=@dev \
|
||||
-adminPath=@adminPath
|
||||
}
|
Reference in New Issue
Block a user