From 7743ab939b3ddf858a5d442a1816f15485e48301 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Thu, 25 May 2017 12:04:35 -0400 Subject: [PATCH] Add ampache-git --- src/ampache-git/PKGBUILD | 44 ++++++++++++++ src/ampache-git/ampache.install | 25 ++++++++ src/ampache-git/nginx-example.conf | 95 ++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 src/ampache-git/PKGBUILD create mode 100644 src/ampache-git/ampache.install create mode 100644 src/ampache-git/nginx-example.conf diff --git a/src/ampache-git/PKGBUILD b/src/ampache-git/PKGBUILD new file mode 100644 index 0000000..8625fc9 --- /dev/null +++ b/src/ampache-git/PKGBUILD @@ -0,0 +1,44 @@ +#Maintainer: max-k +#Contributor: Jonathan 'gishten' Gustafsson + +pkgname=ampache-git +_gitname=ampache +pkgver=3.8.2.239.ge91c7863 +pkgrel=1 +pkgdesc="A PHP-based tool for managing and playing your audio/video files via a web interface" +arch=('i686' 'x86_64') +url="http://www.ampache.org/" +license=('GPL') +depends=('mariadb>=5.0' 'php>=5.4' 'curl') +makedepends=('git' 'php-composer') +optdepends=('ffmpeg: all transcoding/downsampling' + 'lame: mp3 transcoding/downsampling' + 'vorbis-tools: ogg transcoding/downsampling' + 'flac: flac transcoding/downsampling' + 'faad2: m4a transcoding/downsampling' + 'mp3splt: mp3, ogg and flac downsampling') +conflicts=('ampache' 'ampache-development') +install=${_gitname}.install +source=(git://github.com/${_gitname}/${_gitname}.git 'nginx-example.conf') +sha256sums=('SKIP' + 'efb63c0ac7e6462ee5c705b9c1998a1d2462502e19e7e5c97fce2c5142b8e62e') + +pkgver() { + cd ${_gitname} + git describe --long --tags | sed 's|-|.|g' +} + +build() { + echo "" > /dev/null +} + +package() { + cd ${srcdir}/${_gitname} + mkdir -p ${pkgdir}/srv/http/${_gitname} + cp -a * ${pkgdir}/srv/http/${_gitname}/ + cd ${pkgdir}/srv/http/${_gitname} + composer install --prefer-source --no-interaction + mkdir -p ${pkgdir}/usr/share/doc/${_gitname} + install -D -m644 ${srcdir}/nginx-example.conf ${pkgdir}/usr/share/doc/${_gitname}/ +} + diff --git a/src/ampache-git/ampache.install b/src/ampache-git/ampache.install new file mode 100644 index 0000000..d140698 --- /dev/null +++ b/src/ampache-git/ampache.install @@ -0,0 +1,25 @@ +post_install() { + cat << EOF +==> If you want to use Ampache's transcoding and/or downsampling you'll + need the packages specified in optdepends. + Check out http://wiki.archlinux.org/index.php/Ampache and + https://github.com/ampache/ampache/wiki/Transcoding for more info. +==> Please enable curl, iconv and pdo_mysql modules in php.ini. +==> Database will be upgraded automatically in case of update from 3.7. + Check out https://github.com/ampache/ampache/wiki/Installation for + more info about installation process. +==> An nginx example vhost in provided in /usr/share/doc/ampache/nginx-example.conf + To use it, follow following instructions : + * Copy the file to /etc/nginx/ampache.conf + * Customize server_name directive using your FQDN + * Add all your music local directories to open_basedir directive + * Add this line to /etc/nginx/nginx.conf : + include ampache.conf; + * Reload nginx using : systemctl reload nginx +EOF + /bin/true +} + +post_upgrade() { + post_install +} diff --git a/src/ampache-git/nginx-example.conf b/src/ampache-git/nginx-example.conf new file mode 100644 index 0000000..1ec364f --- /dev/null +++ b/src/ampache-git/nginx-example.conf @@ -0,0 +1,95 @@ +server { + listen 80; + server_name FQDN; + charset utf-8; + + root /srv/http/ampache; + index index.php; + + access_log /var/log/nginx/ampache.access.log; + error_log /var/log/nginx/ampache.error.log; + + client_max_body_size 1G; + client_body_buffer_size 128k; + + # 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... + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass unix:/run/php-fpm/php-fpm.sock; + fastcgi_index index.php; + fastcgi_param PHP_ADMIN_VALUE "open_basedir=/tmp/:/srv/http/ampache/:/var/log:/usr/bin"; + include /etc/nginx/fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; + } + + # 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/; + } +}