This commit is contained in:
42
roles/ampache/tasks/ampache.yml
Normal file
42
roles/ampache/tasks/ampache.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
|
||||
## Remove the previous app & install the new version
|
||||
- name: Remove Ampache previous version
|
||||
ansible.builtin.file:
|
||||
state: absent
|
||||
dest: "{{ ampache_app_home }}"
|
||||
|
||||
- name: Create app home
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
dest: "{{ ampache_app_home }}"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "0o750"
|
||||
|
||||
- name: Install ampache application
|
||||
ansible.builtin.unarchive:
|
||||
remote_src: true
|
||||
src: "{{ ampache_url }}"
|
||||
dest: "{{ ampache_app_home }}"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "a-rwx,u+rwX,g+rX"
|
||||
# exclude: "{{ firefly3_userdata_app_dirs | map('regex_replace', '^', './') }}"
|
||||
|
||||
- name: Put config file
|
||||
ansible.builtin.template:
|
||||
src: "ampache.cfg.php.j2"
|
||||
dest: "{{ ampache_app_home }}/config/ampache.cfg.php"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "0o640"
|
||||
|
||||
## Ensure the data dirs exists, populate them if not
|
||||
- name: Create data home
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: "{{ ampache_data_home }}"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: "0o750"
|
20
roles/ampache/tasks/db.yml
Normal file
20
roles/ampache/tasks/db.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
|
||||
- name: Create ampache db
|
||||
community.mysql.mysql_db:
|
||||
login_unix_socket: "/var/run/mysqld/mysqld.sock"
|
||||
login_user: root
|
||||
login_password: "{{ mariadb_root_pass }}"
|
||||
name: "{{ ampache_maria_database }}"
|
||||
state: present
|
||||
encoding: utf8mb4
|
||||
collation: utf8mb4_general_ci
|
||||
|
||||
- name: Create ampache db read/write user
|
||||
community.mysql.mysql_user:
|
||||
login_unix_socket: "/var/run/mysqld/mysqld.sock"
|
||||
login_user: root
|
||||
login_password: "{{ mariadb_root_pass }}"
|
||||
name: "{{ ampache_maria_user }}"
|
||||
password: "{{ ampache_maria_password }}"
|
||||
priv: "{{ ampache_maria_database }}.*:ALL"
|
10
roles/ampache/tasks/main.yml
Normal file
10
roles/ampache/tasks/main.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
- name: Init db
|
||||
ansible.builtin.include_tasks: db.yml
|
||||
|
||||
- name: Install ampache
|
||||
ansible.builtin.include_tasks: ampache.yml
|
||||
|
||||
#- name: Install firefly3 cron
|
||||
# ansible.builtin.include_tasks: cron.yml
|
1465
roles/ampache/templates/ampache.cfg.php.j2
Normal file
1465
roles/ampache/templates/ampache.cfg.php.j2
Normal file
File diff suppressed because it is too large
Load Diff
10
roles/ampache/vars/main.yml
Normal file
10
roles/ampache/vars/main.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
ampache_version: "7.7.2"
|
||||
ampache_url: "https://github.com/ampache/ampache/releases/download/{{ ampache_version }}/ampache-{{ ampache_version }}_all_php{{ php_version }}.zip"
|
||||
|
||||
ampache_access_url: "{{ web_hostname | selectattr('type', 'defined') | selectattr('type', '==', 'ampache') | map(attribute='host') | first }}"
|
||||
|
||||
# Access path
|
||||
ampache_app_home: "/var/www/{{ ampache_access_url }}"
|
||||
ampache_data_home: "/srv/www-data/{{ ampache_access_url }}"
|
82
roles/nginx/templates/vhosts/amp.mateu.be.conf.j2
Normal file
82
roles/nginx/templates/vhosts/amp.mateu.be.conf.j2
Normal file
@@ -0,0 +1,82 @@
|
||||
server {
|
||||
{% include './templates/header.conf.j2' %}
|
||||
root /var/www/amp.mateu.be/public/;
|
||||
index index.php;
|
||||
|
||||
# Somebody said this helps, in my setup it doesn't prevent temporary saving in files
|
||||
proxy_max_temp_file_size 0;
|
||||
|
||||
# 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 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/(\w+)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&name=$6 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&player=$6&name=$7 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/bitrate/([0-9]+)/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&bitrate=$6&player=$7&name=$8 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/transcode_to/(w+)/bitrate/([0-9]+)/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&transcode_to=$6&bitrate=$7&player=$8&name=$9 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/noscrobble/([0-1])/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&name=$7 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/noscrobble/([0-1])/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&player=$7&name=$8 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/noscrobble/([0-1])/bitrate/([0-9]+)/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&bitrate=$7&player=$8&name=$9 last;
|
||||
rewrite ^/play/ssid/(\w+)/type/(\w+)/oid/([0-9]+)/uid/([0-9]+)/client/(\w+)/noscrobble/([0-1])/transcode_to/(w+)/bitrate/([0-9]+)/player/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4&client=$5&noscrobble=$6&transcode_to=$7&bitrate=$8&player=$9&name=$10 last;
|
||||
|
||||
# the following line was needed for me to get downloads of single songs to work
|
||||
rewrite ^/play/ssid/(.*)/type/(.*)/oid/([0-9]+)/uid/([0-9]+)/action/(.*)/name/(.*)$ /play/index.php?ssid=$1&type=$2&oid=$3&uid=$4action=$5&name=$6 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 last;
|
||||
}
|
||||
|
||||
rewrite ^/([^/]+)/([^/]+)(/.*)?$ /play/$3?$1=$2;
|
||||
rewrite ^/(/[^/]+|[^/]+/|/?)$ /play/index.php last;
|
||||
break;
|
||||
}
|
||||
|
||||
location /rest {
|
||||
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 {
|
||||
fastcgi_index index.php;
|
||||
fastcgi_read_timeout 600s;
|
||||
include fastcgi_params;
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_pass unix:/run/php/php{{ php_version }}-fpm.sock;
|
||||
}
|
||||
|
||||
# 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/;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user