1
0
mirror of https://github.com/SuperBFG7/ympd synced 2024-12-27 03:10:26 +00:00

Dont run under uid 0

Optimize mkdebug.sh and mkrelease.sh
This commit is contained in:
jcorporation 2018-06-21 23:15:54 +01:00
parent 1f81588973
commit 7cff777d05
4 changed files with 33 additions and 17 deletions

View File

@ -31,13 +31,9 @@ Unix Build Instructions
----------------------- -----------------------
1. install dependencies. cmake and libmpdclient (dev) are available from all major distributions. 1. install dependencies. cmake and libmpdclient (dev) are available from all major distributions.
2. create build directory ```cd /path/to/src; mkdir build; cd build``` 2. build and install it ```cd /path/to/src; ./mkrelease.sh```
3. create makefile ```cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE``` 3. Link your mpd music directory to ```/usr/share/mympd/htdocs/library``` and put ```folder.jpg``` files in your album directories
4. build ```make``` 4. Configure your mpd with http stream output to use the local player
5. install ```sudo make install```
6. change owner of /var/lib/mympd to user you will run mympd, default nobody (chown nobody /var/lib/mympd)
7. Link your mpd music directory to ```/usr/share/mympd/htdocs/library``` and put ```folder.jpg``` files in your album directories
8. Configure your mpd with http stream output to use the local player
Run flags Run flags
--------- ---------
@ -46,7 +42,7 @@ Usage: ./mympd [OPTION]...
-h, --host <host> connect to mpd at host [localhost] -h, --host <host> connect to mpd at host [localhost]
-p, --port <port> connect to mpd at port [6600] -p, --port <port> connect to mpd at port [6600]
-w, --webport [ip:]<port> listen interface/port for webserver [8080] -w, --webport <port> listen port for webserver [80]
-s, --streamport <port> connect to mpd http stream at port [8000] -s, --streamport <port> connect to mpd http stream at port [8000]
-u, --user <username> drop priviliges to user after socket bind -u, --user <username> drop priviliges to user after socket bind
-m, --mpdpass <password> specifies the password to use when connecting to mpd -m, --mpdpass <password> specifies the password to use when connecting to mpd

View File

@ -1,4 +1,4 @@
#/bin/bash #/bin/sh
[ -d debug ] || mkdir debug [ -d debug ] || mkdir debug
cd debug cd debug

View File

@ -1,4 +1,4 @@
#/bin/bash #/bin/sh
if [ -f buildtools/closure-compiler.jar ] if [ -f buildtools/closure-compiler.jar ]
then then
@ -7,8 +7,10 @@ then
[ htdocs/js/mpd.js -nt htdocs/js/mpd.min.js ] && \ [ htdocs/js/mpd.js -nt htdocs/js/mpd.min.js ] && \
java -jar buildtools/closure-compiler.jar htdocs/js/mpd.js > htdocs/js/mpd.min.js java -jar buildtools/closure-compiler.jar htdocs/js/mpd.js > htdocs/js/mpd.min.js
else else
cp htdocs/js/player.js htdocs/js/player.min.js [ htdocs/js/player.js -nt htdocs/js/player.min.js ] && \
cp htdocs/js/mpd.js htdocs/js/mpd.min.js cp htdocs/js/player.js htdocs/js/player.min.js
[ htdocs/js/mpd.js -nt htdocs/js/mpd.min.js ] && \
cp htdocs/js/mpd.js htdocs/js/mpd.min.js
fi fi
if [ -f buildtools/closure-stylesheets.jar ] if [ -f buildtools/closure-stylesheets.jar ]
@ -16,13 +18,26 @@ then
[ htdocs/css/mpd.css -nt htdocs/css/mpd.min.css ] && \ [ htdocs/css/mpd.css -nt htdocs/css/mpd.min.css ] && \
java -jar buildtools/closure-stylesheets.jar htdocs/css/mpd.css > htdocs/css/mpd.min.css java -jar buildtools/closure-stylesheets.jar htdocs/css/mpd.css > htdocs/css/mpd.min.css
else else
cp htdocs/css/mpd.css htdocs/css/mpd.min.css [ htdocs/css/mpd.css -nt htdocs/css/mpd.min.css ] && \
cp htdocs/css/mpd.css htdocs/css/mpd.min.css
fi fi
[ -d release ] || mkdir release [ -d release ] || mkdir release
cd release cd release
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE .. cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE ..
make make
make install sudo make install
sed -i -e 's/mpd\.css/mpd\.min\.css/' -e 's/mpd\.js/mpd\.min\.js/' /usr/share/mympd/htdocs/index.html cd ..
sed -i -e 's/mpd\.css/mpd\.min\.css/' -e 's/player\.js/player\.min\.js/' /usr/share/mympd/htdocs/player.html
sudo sed -i -e 's/mpd\.css/mpd\.min\.css/' -e 's/mpd\.js/mpd\.min\.js/' /usr/share/mympd/htdocs/index.html
sudo sed -i -e 's/mpd\.css/mpd\.min\.css/' -e 's/player\.js/player\.min\.js/' /usr/share/mympd/htdocs/player.html
sudo chown nobody /var/lib/mympd
[ -d /etc/systemd/system ] && \
sudo cp -v contrib/mympd.service /etc/systemd/system/
[ -d /etc/default ] && \
sudo cp -v contrib/mympd.default /etc/default/mympd
echo "myMPD installed"

View File

@ -103,7 +103,7 @@ int main(int argc, char **argv)
struct mg_connection *nc; struct mg_connection *nc;
unsigned int current_timer = 0, last_timer = 0; unsigned int current_timer = 0, last_timer = 0;
char *run_as_user = NULL; char *run_as_user = NULL;
char *webport = "8080"; char *webport = "80";
mpd.port = 6600; mpd.port = 6600;
strcpy(mpd.host, "127.0.0.1"); strcpy(mpd.host, "127.0.0.1");
streamport = 8000; streamport = 8000;
@ -204,6 +204,11 @@ int main(int argc, char **argv)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
} }
if (getuid() == 0) {
printf("myMPD should not be run with root privileges\n");
return EXIT_FAILURE;
}
mg_set_protocol_http_websocket(nc); mg_set_protocol_http_websocket(nc);
s_http_server_opts.document_root = SRC_PATH; s_http_server_opts.document_root = SRC_PATH;