mirror of
				https://github.com/owncast/owncast.git
				synced 2025-10-31 18:18:06 +08:00 
			
		
		
		
	 7b64fc7c30
			
		
	
	7b64fc7c30
	
	
	
		
			
			* Create http auth middleware * Add support for ending the inbound stream. Closes #191 * Add a simple success response to API requests
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package router
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"net/http"
 | |
| 
 | |
| 	log "github.com/sirupsen/logrus"
 | |
| 
 | |
| 	"github.com/gabek/owncast/config"
 | |
| 	"github.com/gabek/owncast/controllers"
 | |
| 	"github.com/gabek/owncast/core/chat"
 | |
| 	"github.com/gabek/owncast/core/rtmp"
 | |
| 	"github.com/gabek/owncast/router/middleware"
 | |
| )
 | |
| 
 | |
| //Start starts the router for the http, ws, and rtmp
 | |
| func Start() error {
 | |
| 	// start the rtmp server
 | |
| 	go rtmp.Start()
 | |
| 
 | |
| 	// static files
 | |
| 	http.HandleFunc("/", controllers.IndexHandler)
 | |
| 
 | |
| 	// status of the system
 | |
| 	http.HandleFunc("/api/status", controllers.GetStatus)
 | |
| 
 | |
| 	// custom emoji supported in the chat
 | |
| 	http.HandleFunc("/api/emoji", controllers.GetCustomEmoji)
 | |
| 
 | |
| 	if !config.Config.DisableWebFeatures {
 | |
| 		// websocket chat server
 | |
| 		go chat.Start()
 | |
| 
 | |
| 		// chat rest api
 | |
| 		http.HandleFunc("/api/chat", controllers.GetChatMessages)
 | |
| 
 | |
| 		// web config api
 | |
| 		http.HandleFunc("/api/config", controllers.GetWebConfig)
 | |
| 
 | |
| 		// chat embed
 | |
| 		http.HandleFunc("/embed/chat", controllers.GetChatEmbed)
 | |
| 
 | |
| 		// video embed
 | |
| 		http.HandleFunc("/embed/video", controllers.GetVideoEmbed)
 | |
| 	}
 | |
| 
 | |
| 	// Authenticated admin requests
 | |
| 
 | |
| 	// Disconnect inbound stream
 | |
| 	http.HandleFunc("/api/admin/disconnect", middleware.RequireAdminAuth(controllers.DisconnectInboundConnection))
 | |
| 
 | |
| 	port := config.Config.GetPublicWebServerPort()
 | |
| 
 | |
| 	log.Infof("Web server running on port: %d", port)
 | |
| 
 | |
| 	return http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
 | |
| }
 |