Funkwhale ansible role
An ansible role to install and update Funkwhale.
Summary
Using this role, you can install and upgrade a Funkwhale pod, closely matching our standard installation guide. The role will take care of:
- Installing and configure dependencies and packages
- Install and configure PostgreSQL, Redis and Nginx (optional)
- Install and configure Funkwhale and it's dependencies
- Install and configure a SSL certificate with Let's Encrypt (optional)
Usage
Add the following to your playbook:
- hosts: servers
roles:
- role: funkwhale
funkwhale_hostname: yourdomain.funkwhale
funkwhale_version: 0.18.3
funkwhale_letsencrypt_email: contact@youremail.com
See below for a full documentation on available variables.
Role Variables
Required variables
name | Example | Description |
---|---|---|
funkwhale_hostname |
yourdomain.funkwhale |
The domain name of your Funkwhale pod |
funkwhale_version |
0.18.3 |
The version to install/upgrade to. You can also use develop to run the development branch |
funkwhale_letsencrypt_email |
contact@youremail.com |
The email to associate with your Let's Encrypt certificate (not needed if you set funkwhale_letsencrypt_enabled: false , see below) |
Optional variables
name | Default | Description |
---|---|---|
funkwhale_api_ip |
127.0.0.1 |
IP adress to bind the Funkwhale server to |
funkwhale_api_port |
5000 |
Port to bind the Funkwhale server to |
funkwhale_config_path |
/srv/funkwhale/config |
Path to Funkwhale's configuration directory |
funkwhale_database_managed |
true |
If true , the role will manage the database server and Funkwhale's database |
funkwhale_database_name |
funkwhale |
Name of the Funkwhale database to use |
funkwhale_database_user |
funkwhale |
Postgresql username to login as |
funkwhale_env_vars |
[] |
List of environment variables to append to the generated .env file. Example: ["AWS_ACCESS_KEY_ID=myawsid", "AWS_SECRET_ACCESS_KEY=myawskey"]
|
funkwhale_external_storage_enabled |
false |
If true , set up the proper configuration to use an extenal storage for media files |
funkwhale_install_path |
/srv/funkwhale |
Path were frontend, api and virtualenv files should be stored (no trailing slash) |
funkwhale_letsencrypt_certbot_flags |
null |
Additional flags to pass to certbot
|
funkwhale_letsencrypt_enabled |
true |
If true , will configure SSL with certbot and Let's Encrypt |
funkwhale_media_path |
/srv/funkwhale/data/media |
Path were audio and uploaded files should be stored (no trailing slash) |
funkwhale_music_path |
/srv/funkwhale/data/music |
Path to your existing music library, to use with CLI import (no trailing slash) |
funkwhale_nginx_managed |
true |
If true , will install and configure nginx |
funkwhale_nginx_max_body_size |
100M |
Value of nginx's max_body_size parameter to use |
funkwhale_protocol |
https |
If set to https , will configure Funkwhale and Nginx to work behind HTTPS. Use http to completely disable SSL. |
funkwhale_redis_managed |
true |
If true , will install and configure redis |
funkwhale_ssl_cert_path |
`` | Path to an existing SSL certificate to use (use in combination with funkwhale_letsencrypt_enabled: false ) |
funkwhale_ssl_key_path |
`` | Path to an existing SSL key to use (use in combination with funkwhale_letsencrypt_enabled: false ) |
funkwhale_static_path |
/srv/funkwhale/data/static |
Path were Funkwhale static files should be stored |
funkwhale_systemd_after |
redis.service postgresql.service |
Configuration used for Systemd After= directive. Modify it if you have a database or redis server on a separate host |
funkwhale_systemd_service_name |
funkwhale |
Name of the generated Systemd service, e.g when calling systemctl start <xxx>
|
funkwhale_username |
funkwhale |
Username of the system user and owner of Funkwhale data, files and configuration |
Supported platforms
- Debian 9
- More to come
Dependencies
This roles has no other dependencies.
License
AGPL3
Author Information
Contact us at https://funkwhale.audio/community/