# This file controls environment settings for your Funkwhale pod. # If you change any of the variables in this file, remember to restart Funkwhale. # See https://docs.funkwhale.audio/administrator/configuration/env-file.html for more information # Required settings # ----------------- # These settings are required for all Funkwhale deployments # The DJANGO_SECRET_KEY is cryptographic key used to secure Django # You can generate a random key by running `openssl rand -base64 45` DJANGO_SECRET_KEY= # FUNKWHALE_HOSTNAME is your pod's domain name. Don't include the protocol (for example: `https`). # The FUNKWHALE_HOSTNAME must be a root domain or a subdomain (for example: `example.com` or `subdomain.example.com) # You can't run Funkwhale on a subpath (for example: `example.com/funkwhale`) FUNKWHALE_HOSTNAME= # Additional required settings for Docker # --------------------------------------- # If you're running Funkwhale using Docker, you must configure these variables. # Enter the Funkwhale version you want to run. # This value is interpolated in the Docker compose file. # To use the latest release of Funkwhale, use `latest`. # If you want to run the develop branch, use `develop`. # To use a specific version, use the full semantic version number (for example: 1.3.0) # You don't need to comment this variable out for non-Docker deployments FUNKWHALE_VERSION=latest # Additional required settings for non-Docker deployments # ------------------------------------------------------- # If you run Funkwhale outside of Docker, you must configure these variables. # The DATABASE_URL is the address of your postgres database. # Funkwhale uses this value to connect to postgres. # This variable uses the following format: `postgresql://:@:/` # Uncomment the line below to set your URL. # Use the provided value if you followed the Debian installation guide. # DATABASE_URL=postgresql://funkwhale@:5432/funkwhale # The CACHE_URL is the address of your redis instance. # Funkwhale uses this value to connect to redis. # This variable uses the following format: `redis://:/` # To include a password, add it before the hostname. # For example: `redis://:@:/` # Uncomment the line below to set your URL. # Use the provided value if you followed the Debian installation guide. # CACHE_URL=redis://127.0.0.1:6379/0 # Network configuration # --------------------- # Use these variables to configure the network settings of your Funkwhale pod. # The FUNKWHALE_API_IP is the address that serves the Funkwhale API. # Change this variable if you host the API on a different IP address. FUNKWHALE_API_IP=127.0.0.1 # The FUNKWHALE_API_PORT is the port the Funkwhale API is served on. # Change this variable if you host the API on a different port. FUNKWHALE_API_PORT=5000 # The REVERSE_PROXY_TYPE refers to the web server you use as a reverse proxy. # If you followed the Debian installation guide, you're using `nginx` # Available values: `nginx`, `apache2` REVERSE_PROXY_TYPE=nginx # The FUNKWHALE_PROTOCOL is the protocol your pod is served on. # In most cases, you will use a secure (`https`) connection. # Only change this if you need to serve Funkwhale over an insecure connection. # Available values: `https`, `http` FUNKWHALE_PROTOCOL=https # The NGINX_MAX_BODY_SIZE variable controls what size of files Nginx allows. # Adjust this variable to set the size of individual files that users can upload. NGINX_MAX_BODY_SIZE=100M # The FUNKWHALE_FRONTEND_PATH variable controls where frontend files are served from. # Only change this if you're serving the Funkwhale web app from a custom directory. FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist # The FUNKWHALE_WEB_WORKERS variable sets the number of web workers to start in parallel. # More workers means the server can handle more concurrent requests. # More workers also increases the memory/CPU usage of your server. FUNKWHALE_WEB_WORKERS=4 # The CELERYD_CONCURRENCY variable controls how many celeryworker processes run. # Celery workers handle background tasks (such as file imports and federation messaging). # The more processes a worker gets, the more tasks it can perform in the background. # More workers also increases the memory/CPU usage of your server. # If set to `0`, celery will create one worker per CPU core on your server. CELERYD_CONCURRENCY=0 # Where media files (such as album covers or audio tracks) should be stored # on your system? # (Ensure this directory actually exists) MEDIA_ROOT=/srv/funkwhale/data/media # Where static files (such as API css or icons) should be compiled # on your system? # (Ensure this directory actually exists) STATIC_ROOT=/srv/funkwhale/data/static # Email configuration # ------------------- # Use these variables to configure email sending on your pod. # Funkwhale uses email to confirm user identity and allow users to self-serve password resets. # The EMAIL_CONFIG variable controls how email is sent. # You can send emails using SMTP, or output to a different source. # Use `consolemail://` to output emails to the console # Use `dummymail://` to disable sending email # If you want to send email, enter your SMTP server settings in the following format: # `://:@:` # For example: # `smtp://user:password@youremail.host:25` # `smtp+ssl://user:password@youremail.host:465` # `smtp+tls://user:password@youremail.host:587` # If your username contains special characters, you need to URL encode it. # You can use Python to encode your username as follows: # `python3 -c 'import urllib.parse; print(urllib.parse.quote_plus("noreply@youremail.host"))'` EMAIL_CONFIG=consolemail:// # The ACCOUNT_EMAIL_VERIFICATION_ENFORCE variable allows you to require users to verify their email. ACCOUNT_EMAIL_VERIFICATION_ENFORCE=false # The DEFAULT_FROM_EMAIL variable sets the email address used to send emails to users. # This is the address that users see when they receive an email from your pod. # DEFAULT_FROM_EMAIL=noreply@yourdomain # Storage configuration # --------------------- # Use these variables to configure S3-compatible storage. # The AWS_S3_ENDPOINT_URL is the full URL of your S3-compatible storage service. # You only need to configure this variable if you use a service other than Amazon S3. # For example: `https://minio.mydomain.com` # AWS_S3_ENDPOINT_URL= # If you serve media from Amazon S3, you need to specify which AWS region your bucket is in. # If you are using Amazon S3 to serve media directly, you will need to specify your region # For example: `eu-west-2` # AWS_S3_REGION_NAME= # Use the following settings to configure access to your bucket. # These values are available in the interface of your storage provider. # AWS_ACCESS_KEY_ID= # AWS_SECRET_ACCESS_KEY= # AWS_STORAGE_BUCKET_NAME= # The AWS_LOCATION variable controls which directory your Funkwhale files are stored in. # By default, Funkwhale stores files in the root of your S3 bucket. # AWS_LOCATION= # The AWS_QUERYSTRING_EXPIRE variable controls how long generated URLs are valid for. # Longer expiry times reduce security, but make caching more effective. # The default value is 3600 (60 minutes). The maximum accepted value is 604800 (7 days). # AWS_QUERYSTRING_EXPIRE= # The AWS_DEFAULT_ACL variable allows you to set custom Access Control List settings for object uploads. # For example: `public-read` # Funkwhale uses the default settings provided by boto3 by default. # Available options can be found here: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl # AWS_DEFAULT_ACL= # If you want to serve media directly from your S3 bucket rather than through a proxy, # set this to false # PROXY_MEDIA=false # Django configuration # -------------------- # The DJANGO_SETTINGS_MODULE variable controls what settings are loaded by Django. # Don't change this variable unless you need to use a custom settings module. DJANGO_SETTINGS_MODULE=config.settings.production # The DJANGO_ADMIN_URL variable is the subpath used to access the Django admin panel. # By default, you can access Django at `/api/admin` # DJANGO_ADMIN_URL=^api/admin/ # In-place import configuration # ----------------------------- # You can safely leave those settings uncommented if you don't plan to use # in place imports. # Typical docker setup: # MUSIC_DIRECTORY_PATH=/music # docker-only # MUSIC_DIRECTORY_SERVE_PATH=/srv/funkwhale/data/music # Typical non-docker setup: # MUSIC_DIRECTORY_PATH=/srv/funkwhale/data/music # # MUSIC_DIRECTORY_SERVE_PATH= # stays commented, not needed MUSIC_DIRECTORY_PATH=/srv/funkwhale/data/music MUSIC_DIRECTORY_SERVE_PATH=/srv/funkwhale/data/music # Feature configuration # --------------------- # Use these variables to control optional features on Funkwhale # Typesense is a search engine that Funkwhale uses to improve content discovery # To use Typesense, set the TYPESENSE_API_KEY variable # You can generate a random key by running `openssl rand -base64 45` # TYPESENSE_API_KEY= # Logging configuration # --------------------- # Use these variables to configure logging on your Funkwhale pod. # The LOGLEVEL variable controls how verbose your Funkwhale server logs are. # Available values: `debug`, `info`, `warning`, `error`, `critical` LOGLEVEL=error # Funkwhale supports error logging using Sentry-compatible APIs. # The FUNKWHALE_SENTRY_DSN variable controls where Sentry sends these logs. # You can use the value provided to send logs directly to the Funkwhale project. # FUNKWHALE_SENTRY_DSN=https://5840197379c64f65aad3c5c09274994d@am.funkwhale.audio/1 # LDAP settings # ------------- # These variables enable you to authenticate on your Funkwhale instance using LDAP. # See https://docs.funkwhale.audio/administrator/configuration/ldap.html for more information. # LDAP_ENABLED=False # LDAP_SERVER_URI=ldap://your.server:389 # LDAP_BIND_DN=cn=admin,dc=domain,dc=com # LDAP_BIND_PASSWORD=bindpassword # LDAP_SEARCH_FILTER=(|(cn={0})(mail={0})) # LDAP_START_TLS=False # LDAP_ROOT_DN=dc=domain,dc=com