# If you have any doubts about what a setting does, # check https://docs.funkwhale.audio/configuration.html#configuration-reference # If you're tweaking this file from the template, ensure you edit at least the # following variables: # - DJANGO_SECRET_KEY # - FUNKWHALE_HOSTNAME # - EMAIL_CONFIG and DEFAULT_FROM_EMAIL if you plan to send e-mails) # On non-docker setup **only**, you'll also have to tweak/uncomment those variables: # - DATABASE_URL # - CACHE_URL # # You **don't** need to update those variables on pure docker setups. # # Additional options you may want to check: # - MUSIC_DIRECTORY_PATH and MUSIC_DIRECTORY_SERVE_PATH if you plan to use # in-place import # # Docker only # ----------- # The tag of the image we should use # (it will be interpolated in docker-compose file) # You can comment or ignore this if you're not using docker # FUNKWHALE_VERSION=latest # End of Docker-only configuration # General configuration # --------------------- # Set this variables to bind the API server to another interface/port # example: FUNKWHALE_API_IP=0.0.0.0 # example: FUNKWHALE_API_PORT=5678 FUNKWHALE_API_IP=127.0.0.1 FUNKWHALE_API_PORT=__PORT__ # The number of web workers to start in parallel. Higher means you can handle # more concurrent requests, but also leads to higher CPU/Memory usage FUNKWHALE_WEB_WORKERS=6 # Replace this by the definitive, public domain you will use for # your instance. It cannot be changed after initial deployment # without breaking your instance. FUNKWHALE_HOSTNAME=__DOMAIN__ FUNKWHALE_PROTOCOL=https # Log level (debug, info, warning, error, critical) LOGLEVEL=error # Configure e-mail sending using this variale # By default, funkwhale will output e-mails sent to stdout # here are a few examples for this setting # EMAIL_CONFIG=consolemail:// # output e-mails to console (the default) # EMAIL_CONFIG=dummymail:// # disable e-mail sending completely # On a production instance, you'll usually want to use an external SMTP server: # If `user` or `password` contain special characters (eg. # `noreply@youremail.host` as `user`), be sure to urlencode them, using # for example the command: # `python3 -c 'import urllib.parse; print(urllib.parse.quote_plus # ("noreply@youremail.host"))'` # (returns `noreply%40youremail.host`) # EMAIL_CONFIG=smtp://user:password@youremail.host:25 # EMAIL_CONFIG=smtp+ssl://user:password@youremail.host:465 # EMAIL_CONFIG=smtp+tls://user:password@youremail.host:587 EMAIL_CONFIG=smtp://localhost:25 # Make e-mail verification mandatory before using the service # Doesn't apply to admins. # ACCOUNT_EMAIL_VERIFICATION_ENFORCE=false # The e-mail address to use to send system e-mails. # DEFAULT_FROM_EMAIL=noreply@yourdomain # Depending on the reverse proxy used in front of your funkwhale instance, # the API will use different kind of headers to serve audio files # Allowed values: nginx, apache2 REVERSE_PROXY_TYPE=nginx # API/Django configuration # Database configuration # Examples: # DATABASE_URL=postgresql://:@:/ # DATABASE_URL=postgresql://funkwhale:passw0rd@localhost:5432/funkwhale_database # Use the next one if you followed Debian installation guide DATABASE_URL=postgresql://__DB_USER__:__DB_PWD__@:5432/__DB_NAME__ # Cache configuration # Examples: # CACHE_URL=redis://:/ # CACHE_URL=redis://localhost:6379/0c # With a password: # CACHE_URL=redis://:password@localhost:6379/0 # (the extra semicolon is important) # Use the next one if you followed Debian installation guide # CACHE_URL=redis://127.0.0.1:6379/__REDIS_DB__ # # If you want to use Redis over unix sockets, you'll actually need two variables: # For the cache part: # CACHE_URL=redis:///run/redis/redis.sock?db=0 # For the Celery/asynchronous tasks part: # CELERY_BROKER_URL=redis+socket:///run/redis/redis.sock?virtual_host=0 # Number of worker processes to execute. Defaults to 0, in which case it uses your number of CPUs # Celery workers handle background tasks (such file imports or federation # messaging). The more processes a worker gets, the more tasks # can be processed in parallel. However, more processes also means # a bigger memory footprint. # 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=__DATA_DIR__/data/media # Where static files (such as API css or icons) should be compiled # on your system? # (Ensure this directory actually exists) STATIC_ROOT=__DATA_DIR__/data/static # which settings module should django use? # You don't have to touch this unless you really know what you're doing DJANGO_SETTINGS_MODULE=config.settings.production # Generate one using `openssl rand -base64 45`, for example DJANGO_SECRET_KEY=__KEY__ # You don't have to edit this, but you can put the admin on another URL if you # want to # DJANGO_ADMIN_URL=^api/admin/ # In-place import settings # 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=__DATA_DIR__/data/music #MUSIC_DIRECTORY_SERVE_PATH=__DATA_DIR__/data/import # LDAP settings # Use the following options to allow authentication on your Funkwhale instance # using a LDAP directory. # Have a look at https://docs.funkwhale.audio/installation/ldap.html for # detailed instructions. LDAP_ENABLED=True LDAP_SERVER_URI=ldap://localhost:389 # enable anonymous searches https://django-auth-ldap.readthedocs.io/en/latest/authentication.html?highlight=anonymous#search-bind LDAP_BIND_DN='' LDAP_BIND_PASSWORD='' LDAP_SEARCH_FILTER=(|(uid={0})) LDAP_START_TLS=False LDAP_ROOT_DN=ou=users,dc=yunohost,dc=org LDAP_USER_ATTR_MAP=username:uid FUNKWHALE_FRONTEND_PATH=__INSTALL_DIR__/front/dist FUNKWHALE_SPA_HTML_ROOT=__INSTALL_DIR__/front/dist/index.html # Nginx related configuration NGINX_MAX_BODY_SIZE=100M ## External storages configuration # Funkwhale can store uploaded files on Amazon S3 and S3-compatible storages (such as Minio) # Uncomment and fill the variables below # AWS_ACCESS_KEY_ID= # AWS_SECRET_ACCESS_KEY= # AWS_STORAGE_BUCKET_NAME= # An optional bucket subdirectory were you want to store the files. This is especially useful # if you plan to use share the bucket with other services # AWS_LOCATION= # If you use a S3-compatible storage such as minio, set the following variable # the full URL to the storage server. Example: # AWS_S3_ENDPOINT_URL=https://minio.mydomain.com # AWS_S3_ENDPOINT_URL= # If you want to serve media directly from your S3 bucket rather than through a proxy, # set this to false # PROXY_MEDIA=false # If you are using Amazon S3 to serve media directly, you will need to specify your region # name in order to access files. Example: # AWS_S3_REGION_NAME=eu-west-2 # AWS_S3_REGION_NAME= # If you are using Amazon S3, use this setting to configure how long generated URLs should stay # valid. The default value is 3600 (60 minutes). The maximum accepted value is 604800 (7 days) # AWS_QUERYSTRING_EXPIRE= # If you are using an S3-compatible object storage provider, and need to provide a default # ACL for object uploads that is different from the default applied by boto3, you may # override it here. Example: # AWS_DEFAULT_ACL=public-read # Available options can be found here: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl # AWS_DEFAULT_ACL= # Funkwhale allows collecting errors using Sentry compatible APIs. If you want # to help us improving Funkwhale, feel free to use our instance: #FUNKWHALE_SENTRY_DSN=https://5840197379c64f65aad3c5c09274994d@am.funkwhale.audio/1