diff --git a/README.md b/README.md index b5acedf..a1bbb7b 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,8 @@ Usage yt-dlp-webui: yt-dlp executable path (default "yt-dlp") -out string Where files will be saved (default ".") + -host string + Host where server will listen at (default "0.0.0.0") -port int Port where server will listen at (default 3033) -qs int diff --git a/main.go b/main.go index 72b9a15..b9978a6 100644 --- a/main.go +++ b/main.go @@ -14,6 +14,7 @@ import ( ) var ( + host string port int queueSize int configFile string @@ -36,6 +37,7 @@ var ( func init() { + flag.StringVar(&host, "host", "0.0.0.0", "Host where server will listen at") flag.IntVar(&port, "port", 3033, "Port where server will listen at") flag.IntVar(&queueSize, "qs", runtime.NumCPU(), "Download queue size") @@ -61,6 +63,7 @@ func main() { c := config.Instance() + c.Host = host c.Port = port c.QueueSize = queueSize c.DownloadPath = downloadPath @@ -76,5 +79,5 @@ func main() { log.Println(cli.BgRed, "config", cli.Reset, "no config file found") } - server.RunBlocking(port, frontend, localDatabasePath) + server.RunBlocking(host, port, frontend, localDatabasePath) } diff --git a/server/config/parser.go b/server/config/parser.go index 3074fca..10bd6aa 100644 --- a/server/config/parser.go +++ b/server/config/parser.go @@ -8,6 +8,7 @@ import ( ) type Config struct { + Host string `yaml:"host"` Port int `yaml:"port"` DownloadPath string `yaml:"downloadPath"` DownloaderPath string `yaml:"downloaderPath"` diff --git a/server/server.go b/server/server.go index 61a7bd6..346fd40 100644 --- a/server/server.go +++ b/server/server.go @@ -28,13 +28,14 @@ import ( type serverConfig struct { frontend fs.FS + host string port int mdb *internal.MemoryDB db *sql.DB mq *internal.MessageQueue } -func RunBlocking(port int, frontend fs.FS, dbPath string) { +func RunBlocking(host string, port int, frontend fs.FS, dbPath string) { var mdb internal.MemoryDB mdb.Restore() @@ -53,6 +54,7 @@ func RunBlocking(port int, frontend fs.FS, dbPath string) { srv := newServer(serverConfig{ frontend: frontend, + host: host, port: port, mdb: &mdb, mq: mq, @@ -99,7 +101,7 @@ func newServer(c serverConfig) *http.Server { r.Route("/api/v1", rest.ApplyRouter(c.db, c.mdb, c.mq)) return &http.Server{ - Addr: fmt.Sprintf(":%d", c.port), + Addr: fmt.Sprintf("%s:%d", c.host, c.port), Handler: r, } }