unix socket support (useful behind nginx proxy) (#143)
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -15,3 +15,4 @@ config.yml
|
|||||||
cookies.txt
|
cookies.txt
|
||||||
__debug*
|
__debug*
|
||||||
ui/
|
ui/
|
||||||
|
.idea
|
||||||
@@ -7,10 +7,12 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/rpc"
|
"net/rpc"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -76,9 +78,20 @@ func RunBlocking(host string, port int, frontend fs.FS, dbPath string) {
|
|||||||
go gracefulShutdown(srv, &mdb)
|
go gracefulShutdown(srv, &mdb)
|
||||||
go autoPersist(time.Minute*5, &mdb, logger)
|
go autoPersist(time.Minute*5, &mdb, logger)
|
||||||
|
|
||||||
logger.Info("yt-dlp-webui started", slog.Int("port", port))
|
network := "tcp"
|
||||||
|
address := fmt.Sprintf("%s:%d", host, port)
|
||||||
|
if strings.HasPrefix(host, "/") {
|
||||||
|
network = "unix"
|
||||||
|
address = host
|
||||||
|
}
|
||||||
|
listener, err := net.Listen(network, address)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("failed to listen", slog.String("err", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if err := srv.ListenAndServe(); err != nil {
|
logger.Info("yt-dlp-webui started", slog.String("address", address))
|
||||||
|
if err := srv.Serve(listener); err != nil {
|
||||||
logger.Warn("http server stopped", slog.String("err", err.Error()))
|
logger.Warn("http server stopped", slog.String("err", err.Error()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -135,10 +148,7 @@ func newServer(c serverConfig) *http.Server {
|
|||||||
// Logging
|
// Logging
|
||||||
r.Route("/log", logging.ApplyRouter())
|
r.Route("/log", logging.ApplyRouter())
|
||||||
|
|
||||||
return &http.Server{
|
return &http.Server{Handler: r}
|
||||||
Addr: fmt.Sprintf("%s:%d", c.host, c.port),
|
|
||||||
Handler: r,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func gracefulShutdown(srv *http.Server, db *internal.MemoryDB) {
|
func gracefulShutdown(srv *http.Server, db *internal.MemoryDB) {
|
||||||
|
|||||||
Reference in New Issue
Block a user