mirror of
https://github.com/yusing/godoxy.git
synced 2025-07-22 20:24:03 +02:00
fixed startup crash for file provider
This commit is contained in:
parent
a29bf880bc
commit
26e2154c64
6 changed files with 29 additions and 18 deletions
11
README.md
11
README.md
|
@ -74,10 +74,13 @@ A lightweight, easy-to-use, and [performant](docs/benchmark_result.md) reverse p
|
||||||
|
|
||||||
### Environment variables
|
### Environment variables
|
||||||
|
|
||||||
| Environment Variable | Description | Default | Values |
|
| Environment Variable | Description | Default | Values |
|
||||||
| ------------------------------ | ------------------------- | ------- | ------- |
|
| ------------------------------ | ----------------------------- | ------- | ------- |
|
||||||
| `GOPROXY_NO_SCHEMA_VALIDATION` | disable schema validation | `false` | boolean |
|
| `GOPROXY_NO_SCHEMA_VALIDATION` | disable schema validation | `false` | boolean |
|
||||||
| `GOPROXY_DEBUG` | enable debug behaviors | `false` | boolean |
|
| `GOPROXY_DEBUG` | enable debug behaviors | `false` | boolean |
|
||||||
|
| `GOPROXY_HTTP_PORT` | http server port | `80` | integer |
|
||||||
|
| `GOPROXY_HTTPS_PORT` | http server port (if enabled) | `443` | integer |
|
||||||
|
| `GOPROXY_API_PORT` | api server port | `8888` | integer |
|
||||||
|
|
||||||
### Use JSON Schema in VSCode
|
### Use JSON Schema in VSCode
|
||||||
|
|
||||||
|
|
|
@ -37,12 +37,6 @@ const (
|
||||||
|
|
||||||
const DockerHostFromEnv = "$DOCKER_HOST"
|
const DockerHostFromEnv = "$DOCKER_HOST"
|
||||||
|
|
||||||
const (
|
|
||||||
ProxyHTTPPort = ":80"
|
|
||||||
ProxyHTTPSPort = ":443"
|
|
||||||
APIHTTPPort = ":8888"
|
|
||||||
)
|
|
||||||
|
|
||||||
var WellKnownHTTPPorts = map[uint16]bool{
|
var WellKnownHTTPPorts = map[uint16]bool{
|
||||||
80: true,
|
80: true,
|
||||||
8000: true,
|
8000: true,
|
||||||
|
|
|
@ -6,9 +6,22 @@ import (
|
||||||
U "github.com/yusing/go-proxy/utils"
|
U "github.com/yusing/go-proxy/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var NoSchemaValidation = getEnvBool("GOPROXY_NO_SCHEMA_VALIDATION")
|
var (
|
||||||
var IsDebug = getEnvBool("GOPROXY_DEBUG")
|
NoSchemaValidation = getEnvBool("GOPROXY_NO_SCHEMA_VALIDATION")
|
||||||
|
IsDebug = getEnvBool("GOPROXY_DEBUG")
|
||||||
|
ProxyHTTPPort = ":" + getEnv("GOPROXY_HTTP_PORT", "80")
|
||||||
|
ProxyHTTPSPort = ":" + getEnv("GOPROXY_HTTPS_PORT", "443")
|
||||||
|
APIHTTPPort = ":" + getEnv("GOPROXY_API_PORT", "8888")
|
||||||
|
)
|
||||||
|
|
||||||
func getEnvBool(key string) bool {
|
func getEnvBool(key string) bool {
|
||||||
return U.ParseBool(os.Getenv(key))
|
return U.ParseBool(os.Getenv(key))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getEnv(key string, defaultValue string) string {
|
||||||
|
value, ok := os.LookupEnv(key)
|
||||||
|
if !ok {
|
||||||
|
value = defaultValue
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ import (
|
||||||
R "github.com/yusing/go-proxy/route"
|
R "github.com/yusing/go-proxy/route"
|
||||||
"github.com/yusing/go-proxy/server"
|
"github.com/yusing/go-proxy/server"
|
||||||
F "github.com/yusing/go-proxy/utils/functional"
|
F "github.com/yusing/go-proxy/utils/functional"
|
||||||
W "github.com/yusing/go-proxy/watcher"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -92,7 +91,6 @@ func main() {
|
||||||
l.Warn(err)
|
l.Warn(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
W.InitFileWatcherHelper()
|
|
||||||
cfg.WatchChanges()
|
cfg.WatchChanges()
|
||||||
|
|
||||||
onShutdown.Add(docker.CloseAllClients)
|
onShutdown.Add(docker.CloseAllClients)
|
||||||
|
|
|
@ -30,6 +30,10 @@ type (
|
||||||
var NewProxyEntries = F.NewMapOf[string, *ProxyEntry]
|
var NewProxyEntries = F.NewMapOf[string, *ProxyEntry]
|
||||||
|
|
||||||
func (e *ProxyEntry) SetDefaults() {
|
func (e *ProxyEntry) SetDefaults() {
|
||||||
|
if e.ProxyProperties == nil {
|
||||||
|
e.ProxyProperties = &D.ProxyProperties{}
|
||||||
|
}
|
||||||
|
|
||||||
if e.Scheme == "" {
|
if e.Scheme == "" {
|
||||||
switch {
|
switch {
|
||||||
case strings.ContainsRune(e.Port, ':'):
|
case strings.ContainsRune(e.Port, ':'):
|
||||||
|
|
|
@ -20,11 +20,10 @@ func NewFileWatcher(filename string) Watcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fileWatcher) Events(ctx context.Context) (<-chan Event, <-chan E.NestedError) {
|
func (f *fileWatcher) Events(ctx context.Context) (<-chan Event, <-chan E.NestedError) {
|
||||||
|
if fwHelper == nil {
|
||||||
|
fwHelper = newFileWatcherHelper(common.ConfigBasePath)
|
||||||
|
}
|
||||||
return fwHelper.Add(ctx, f)
|
return fwHelper.Add(ctx, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitFileWatcherHelper() {
|
|
||||||
fwHelper = newFileWatcherHelper(common.ConfigBasePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
var fwHelper *fileWatcherHelper
|
var fwHelper *fileWatcherHelper
|
||||||
|
|
Loading…
Add table
Reference in a new issue