diff --git a/srcpkgs/ampache/files/nginx-example.conf b/srcpkgs/ampache/files/nginx-example.conf new file mode 100644 index 00000000000..ced95492581 --- /dev/null +++ b/srcpkgs/ampache/files/nginx-example.conf @@ -0,0 +1,80 @@ +server { + listen 80; + server_name FQDN; + charset utf-8; + + root PATH; + index index.php; + + # Rewrite rule for Subsonic backend + if ( !-d $request_filename ) { + rewrite ^/rest/(.*).view$ /rest/index.php?action=$1 last; + rewrite ^/rest/fake/(.+)$ /play/$1 last; + } + + # Rewrite rule for Plex backend + if ( !-d $request_filename ) { + rewrite ^/plex/(.*)$ /plex/index.php?action=$1 last; + } + + # Rewrite rule for Channels + if (!-d $request_filename){ + rewrite ^/channel/([0-9]+)/(.*)$ /channel/index.php?channel=$1&target=$2 last; + } + + # Beautiful URL Rewriting + rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&name=$5 last; + rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(.*)/noscrobble/([0-1])/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&name=$7 last; + location /play { + if (!-e $request_filename) { + rewrite ^/play/art/([^/]+)/([^/]+)/([0-9]+)/thumb([0-9]*)\.([a-z]+)$ /image.php?object_type=$2&object_id=$3&auth=$1; + break; + } + + rewrite ^/([^/]+)/([^/]+)(/.*)?$ /play/$3?$1=$2; + rewrite ^/(/[^/]+|[^/]+/|/?)$ /play/index.php last; + break; + } + + location /rest { + limit_except GET POST { + deny all; + } + } + + location /plex { + limit_except GET POST { + deny all; + } + } + + location ^~ /bin/ { + deny all; + return 403; + } + + location ^~ /config/ { + deny all; + return 403; + } + + location / { + limit_except GET POST HEAD{ + deny all; + } + } + + location ~ ^/.*.php { + # PHP config... + } + + # Rewrite rule for WebSocket + location /ws { + rewrite ^/ws/(.*) /$1 break; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_pass http://127.0.0.1:8100/; + } +} diff --git a/srcpkgs/ampache/template b/srcpkgs/ampache/template new file mode 100644 index 00000000000..af42bd45933 --- /dev/null +++ b/srcpkgs/ampache/template @@ -0,0 +1,21 @@ +# Template file for 'ampache' +pkgname=ampache +version=3.8.0 +revision=1 +noarch=yes +build_style=fetch +depends="php mysql" +short_desc="Web-based tool for managing your audio/video files" +maintainer="Steve Prybylski " +license="GPL-2" +homepage="http://ampache.org" +distfiles="https://github.com/${pkgname}/${pkgname}/archive/${version}.tar.gz>${pkgname}-${version}.tar.gz" +checksum=10a167b162af9b0f2c17a6cf0d92bbc6fc3c80b4be802d77defcfe761f177304 + +do_install() { + tar -zxvf ${pkgname}-${version}.tar.gz + vmkdir srv/httpd/ + vcopy ${pkgname}-${version} srv/httpd/ampache + + vinstall ${FILESDIR}/nginx-example.conf 644 usr/share/doc/${pkgname}/ +}