Support disabling the web UI with disableWebFeatures. Closes #32

This commit is contained in:
Gabe Kangas 2020-07-06 21:53:30 -07:00
parent 259923b303
commit ba69221394
3 changed files with 30 additions and 18 deletions

View File

@ -14,16 +14,17 @@ import (
var Config *config
type config struct {
IPFS ipfs `yaml:"ipfs"`
PublicHLSPath string `yaml:"publicHLSPath"`
PrivateHLSPath string `yaml:"privateHLSPath"`
VideoSettings videoSettings `yaml:"videoSettings"`
Files files `yaml:"files"`
FFMpegPath string `yaml:"ffmpegPath"`
WebServerPort int `yaml:"webServerPort"`
S3 s3 `yaml:"s3"`
InstanceDetails InstanceDetails `yaml:"instanceDetails"`
VersionInfo string `yaml:"-"`
IPFS ipfs `yaml:"ipfs"`
PublicHLSPath string `yaml:"publicHLSPath"`
PrivateHLSPath string `yaml:"privateHLSPath"`
VideoSettings videoSettings `yaml:"videoSettings"`
Files files `yaml:"files"`
FFMpegPath string `yaml:"ffmpegPath"`
WebServerPort int `yaml:"webServerPort"`
S3 s3 `yaml:"s3"`
InstanceDetails InstanceDetails `yaml:"instanceDetails"`
VersionInfo string `yaml:"-"`
DisableWebFeatures bool `yaml:"disableWebFeatures"`
}
// InstanceDetails defines the user-visible information about this particular instance.

View File

@ -29,9 +29,18 @@ type MetadataPage struct {
func IndexHandler(w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(&w)
isIndexRequest := r.URL.Path == "/" || r.URL.Path == "/index.html"
// Reject requests for the web UI if it's disabled.
if isIndexRequest && config.Config.DisableWebFeatures {
w.WriteHeader(http.StatusNotFound)
w.Write([]byte("404 - y u ask 4 this? If this is an error let us know: https://github.com/gabek/owncast/issues"))
return
}
ua := user_agent.New(r.UserAgent())
if ua != nil && ua.Bot() && (r.URL.Path == "/" || r.URL.Path == "/index.html") {
if ua != nil && ua.Bot() && isIndexRequest {
handleScraperMetadataPage(w, r)
return
}

View File

@ -14,9 +14,6 @@ import (
//Start starts the router for the http, ws, and rtmp
func Start() error {
// websocket chat server
go chat.Start()
// start the rtmp server
go rtmp.Start()
@ -26,11 +23,16 @@ func Start() error {
// status of the system
http.HandleFunc("/status", controllers.GetStatus)
// chat rest api
http.HandleFunc("/chat", controllers.GetChatMessages)
if !config.Config.DisableWebFeatures {
// websocket chat server
go chat.Start()
// web config api
http.HandleFunc("/config", controllers.GetWebConfig)
// chat rest api
http.HandleFunc("/chat", controllers.GetChatMessages)
// web config api
http.HandleFunc("/config", controllers.GetWebConfig)
}
port := config.Config.WebServerPort