Support setting admin password and temp stream key via cli flag
This commit is contained in:
parent
5d51c73cd9
commit
842bdcc808
@ -40,6 +40,9 @@ var BuildPlatform = "dev"
|
|||||||
// EnableAutoUpdate will explicitly enable in-place auto-updates via the admin.
|
// EnableAutoUpdate will explicitly enable in-place auto-updates via the admin.
|
||||||
var EnableAutoUpdate = false
|
var EnableAutoUpdate = false
|
||||||
|
|
||||||
|
// A temporary stream key that can be set via the command line.
|
||||||
|
var TemporaryStreamKey = ""
|
||||||
|
|
||||||
// GetCommit will return an identifier used for identifying the point in time this build took place.
|
// GetCommit will return an identifier used for identifying the point in time this build took place.
|
||||||
func GetCommit() string {
|
func GetCommit() string {
|
||||||
if GitCommit == "" {
|
if GitCommit == "" {
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"github.com/nareix/joy5/format/rtmp"
|
"github.com/nareix/joy5/format/rtmp"
|
||||||
|
"github.com/owncast/owncast/config"
|
||||||
"github.com/owncast/owncast/core/data"
|
"github.com/owncast/owncast/core/data"
|
||||||
"github.com/owncast/owncast/models"
|
"github.com/owncast/owncast/models"
|
||||||
)
|
)
|
||||||
@ -87,6 +88,11 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test against the temporary key if it was set at runtime.
|
||||||
|
if config.TemporaryStreamKey != "" && secretMatch(config.TemporaryStreamKey, c.URL.Path) {
|
||||||
|
accessGranted = true
|
||||||
|
}
|
||||||
|
|
||||||
if !accessGranted {
|
if !accessGranted {
|
||||||
log.Errorln("invalid streaming key; rejecting incoming stream")
|
log.Errorln("invalid streaming key; rejecting incoming stream")
|
||||||
_ = nc.Close()
|
_ = nc.Close()
|
||||||
|
16
main.go
16
main.go
@ -23,7 +23,8 @@ var (
|
|||||||
enableDebugOptions = flag.Bool("enableDebugFeatures", false, "Enable additional debugging options.")
|
enableDebugOptions = flag.Bool("enableDebugFeatures", false, "Enable additional debugging options.")
|
||||||
enableVerboseLogging = flag.Bool("enableVerboseLogging", false, "Enable additional logging.")
|
enableVerboseLogging = flag.Bool("enableVerboseLogging", false, "Enable additional logging.")
|
||||||
restoreDatabaseFile = flag.String("restoreDatabase", "", "Restore an Owncast database backup")
|
restoreDatabaseFile = flag.String("restoreDatabase", "", "Restore an Owncast database backup")
|
||||||
newStreamKey = flag.String("streamkey", "", "Set your stream key/admin password")
|
newAdminPassword = flag.String("adminpassword", "", "Set your admin password")
|
||||||
|
newStreamKey = flag.String("streamkey", "", "Set a temporary stream key for this session")
|
||||||
webServerPortOverride = flag.String("webserverport", "", "Force the web server to listen on a specific port")
|
webServerPortOverride = flag.String("webserverport", "", "Force the web server to listen on a specific port")
|
||||||
webServerIPOverride = flag.String("webserverip", "", "Force web server to listen on this IP address")
|
webServerIPOverride = flag.String("webserverip", "", "Force web server to listen on this IP address")
|
||||||
rtmpPortOverride = flag.Int("rtmpport", 0, "Set listen port for the RTMP server")
|
rtmpPortOverride = flag.Int("rtmpport", 0, "Set listen port for the RTMP server")
|
||||||
@ -101,15 +102,20 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handleCommandLineFlags() {
|
func handleCommandLineFlags() {
|
||||||
if *newStreamKey != "" {
|
if *newAdminPassword != "" {
|
||||||
if err := data.SetAdminPassword(*newStreamKey); err != nil {
|
if err := data.SetAdminPassword(*newAdminPassword); err != nil {
|
||||||
log.Errorln("Error setting your stream key.", err)
|
log.Errorln("Error setting your admin password.", err)
|
||||||
log.Exit(1)
|
log.Exit(1)
|
||||||
} else {
|
} else {
|
||||||
log.Infoln("Stream key changed")
|
log.Infoln("Admin password changed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if *newStreamKey != "" {
|
||||||
|
log.Println("Temporary stream key is set for this session.")
|
||||||
|
config.TemporaryStreamKey = *newStreamKey
|
||||||
|
}
|
||||||
|
|
||||||
// Set the web server port
|
// Set the web server port
|
||||||
if *webServerPortOverride != "" {
|
if *webServerPortOverride != "" {
|
||||||
portNumber, err := strconv.Atoi(*webServerPortOverride)
|
portNumber, err := strconv.Atoi(*webServerPortOverride)
|
||||||
|
Loading…
Reference in New Issue
Block a user