From 286577dd90dff13a07edba384ce28463f1d5b1e5 Mon Sep 17 00:00:00 2001 From: NXShock Date: Tue, 3 Jun 2025 13:33:05 +0500 Subject: [PATCH] Allow to listen unix socket --- PKGBUILD | 2 +- main.go | 18 +++++++++++++++++- promodj.conf | 12 ++++++------ promodj.service | 2 ++ 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index a91c9bc..a94baaf 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,5 +1,5 @@ pkgname=promodj -pkgver=0.2.0 +pkgver=0.2.1 pkgrel=0 pkgdesc="Proxy client for promodj.com" arch=('x86_64' 'aarch64') diff --git a/main.go b/main.go index 52dab36..e381b71 100644 --- a/main.go +++ b/main.go @@ -2,7 +2,9 @@ package main import ( "log" + "net" "net/http" + "net/url" "os" "time" ) @@ -40,7 +42,21 @@ func main() { http.HandleFunc("/stream", handleStream) http.HandleFunc("/player", handlePlayer) - err := http.ListenAndServe(config.ListenAddr, nil) + u, err := url.Parse(config.ListenAddr) + if err != nil { + log.Fatalln(err) + } + + listener, err := net.Listen(u.Scheme, u.Host+u.Path) + if err != nil { + log.Fatalln(err) + } + + if err = os.Chmod(u.Host+u.Path, 0660); err != nil { + log.Fatalln(err) + } + + err = http.Serve(listener, http.DefaultServeMux) if err != nil { log.Fatalln(err) } diff --git a/promodj.conf b/promodj.conf index 88dea59..8114721 100644 --- a/promodj.conf +++ b/promodj.conf @@ -1,6 +1,6 @@ -ListenAddr = ":80" # addr:port or :port -BufferSize = 128 # encoded file buffer in MiB -Bitrate = 32 # encoded file bitrate in kbit/s -Codec = "libopus" # ffmpeg codec -Format = "opus" # ffmpeg format -ContentType = "audio/ogg" # Content-Type header for served files +ListenAddr = "http://0.0.0.0:80" # addr:port or :port or path to unix socket +BufferSize = 128 # encoded file buffer in MiB +Bitrate = 32 # encoded file bitrate in kbit/s +Codec = "libopus" # ffmpeg codec +Format = "opus" # ffmpeg format +ContentType = "audio/ogg" # Content-Type header for served files diff --git a/promodj.service b/promodj.service index 8024d26..3ca8e27 100644 --- a/promodj.service +++ b/promodj.service @@ -6,6 +6,8 @@ Wants=network-online.target [Service] Type=simple User=promodj +Group=promodj +RuntimeDirectory=promodj ExecStart=/usr/bin/promodj Restart=on-failure RestartSec=10s