funkwhale/docs/administrator/configuration/env-file.md

6.2 KiB

Customize your environment file

Your .env (environment) file contains variables you can change to customize your pod. You can change these variables at any time to alter how your pod runs.

You need to restart your Funkwhale services after changing your .env file.

::::{tab-set}

:::{tab-item} Debian :sync: debian

sudo systemctl restart funkwhale.target

:::

:::{tab-item} Docker :sync: docker

sudo docker compose restart

::: ::::

Variables


Some environment variables accept a URL as a value. To encode URLs and avoid problems with special characters, use `urllib.parse` on your URL value.

   ```py
   python3 -c 'import urllib.parse; print(urllib.parse.quote_plus("p@ssword"))
   ```

   ```{seealso}
      The [django-environ documentation](https://github.com/joke2k/django-environ/blob/main/docs/tips.rst#using-unsafe-characters-in-urls).
   ```

Pod configuration

.. autodata:: config.settings.common.FUNKWHALE_HOSTNAME
   :annotation: = mypod.audio
.. autodata:: config.settings.common.FUNKWHALE_PROTOCOL
   :annotation: =  https

Database and redis configuration

.. autodata:: config.settings.common.DATABASE_URL
   :annotation: = postgresql://<user>:<password>@<host>:<port>/<database>
.. autodata:: config.settings.common.DB_CONN_MAX_AGE
.. autodata:: config.settings.common.CACHE_URL
   :annotation: = redis://<host>:<port>/<database>
.. autodata:: config.settings.common.CELERY_BROKER_URL
   :annotation: = redis://127.0.0.1:6379/0

Accounts and registration


.. autodata:: config.settings.common.ACCOUNT_EMAIL_VERIFICATION_ENFORCE
   :annotation: = true
.. autodata:: config.settings.common.USERS_INVITATION_EXPIRATION_DAYS
   :annotation: = 7
.. autodata:: config.settings.common.DISABLE_PASSWORD_VALIDATORS
   :annotation: = true
.. autodata:: config.settings.common.ACCOUNT_USERNAME_BLACKLIST
   :annotation: = test,funkwhale
---
value: false
---

Whether to enable LDAP authentication.

See {doc}`/administrator/configuration/ldap` for more information.

Media storage and serving configuration


.. autodata:: config.settings.common.MEDIA_URL
   :annotation: = https://mypod.audio/media/
.. autodata:: config.settings.common.MEDIA_ROOT
   :annotation: = /srv/funkwhale/data/media
.. autodata:: config.settings.common.PROXY_MEDIA
   :annotation: = true
.. autodata:: config.settings.common.EXTERNAL_MEDIA_PROXY_ENABLED
   :annotation: = false
.. autodata:: config.settings.common.ATTACHMENTS_UNATTACHED_PRUNE_DELAY
   :annotation: = true
.. autodata:: config.settings.common.REVERSE_PROXY_TYPE
   :annotation: = nginx
.. autodata:: config.settings.common.PROTECT_FILES_PATH
   :annotation: = /_protected
.. py:data:: NGINX_MAX_BODY_SIZE
   :value: 100M

   Controls the maximum size of file that users can upload.

   .. note::
      You can control how much total storage a user can access with the :term:`Upload Quota` setting.

S3 storage configuration


.. autodata:: config.settings.common.AWS_QUERYSTRING_AUTH
.. autodata:: config.settings.common.AWS_QUERYSTRING_EXPIRE
.. autodata:: config.settings.common.AWS_ACCESS_KEY_ID
.. autodata:: config.settings.common.AWS_SECRET_ACCESS_KEY
.. autodata:: config.settings.common.AWS_STORAGE_BUCKET_NAME
.. autodata:: config.settings.common.AWS_S3_CUSTOM_DOMAIN
.. autodata:: config.settings.common.AWS_S3_ENDPOINT_URL
   :annotation: = https://minio.mydomain.com
.. autodata:: config.settings.common.AWS_S3_REGION_NAME
   :annotation: = eu-west-2
.. autodata:: config.settings.common.AWS_LOCATION
   :annotation: = funkwhale_music

In-place import configuration


.. autodata:: config.settings.common.MUSIC_DIRECTORY_PATH
   :annotation: = /srv/funkwhale/data/music
.. autodata:: config.settings.common.MUSIC_DIRECTORY_SERVE_PATH
   :annotation: = /srv/funkwhale/data/music

API configuration


.. autodata:: config.settings.common.THROTTLING_ENABLED
.. autodata:: config.settings.common.THROTTLING_RATES
   :annotation: = signup=5/d,password-reset=2/d,anonymous-reports=5/d

See Rate limit API endpoints for a list of available endpoints and their default limits.


.. autodata:: config.settings.common.ADMIN_URL
.. autodata:: config.settings.common.EXTERNAL_REQUESTS_VERIFY_SSL
.. autodata:: config.settings.common.EXTERNAL_REQUESTS_TIMEOUT

Federation configuration


.. autodata:: config.settings.common.FEDERATION_OBJECT_FETCH_DELAY
.. autodata:: config.settings.common.FEDERATION_DUPLICATE_FETCH_DELAY

Metadata configuration


.. autodata:: config.settings.common.TAGS_MAX_BY_OBJ
.. autodata:: config.settings.common.MUSICBRAINZ_HOSTNAME
.. autodata:: config.settings.common.MUSICBRAINZ_CACHE_DURATION

Channels and podcast configuration


.. autodata:: config.settings.common.PODCASTS_RSS_FEED_REFRESH_DELAY
.. autodata:: config.settings.common.PODCASTS_RSS_FEED_MAX_ITEMS
.. autodata:: config.settings.common.PODCASTS_THIRD_PARTY_VISIBILITY

Subsonic configuration


.. autodata:: config.settings.common.SUBSONIC_DEFAULT_TRANSCODING_FORMAT

Email configuration


.. autodata:: config.settings.common.EMAIL_CONFIG
   :annotation: = consolemail://
.. autodata:: config.settings.common.DEFAULT_FROM_EMAIL
   :annotation: = Funkwhale <noreply@yourdomain>
.. autodata:: config.settings.common.EMAIL_SUBJECT_PREFIX

Plugin configuration


.. autodata:: config.settings.common.FUNKWHALE_PLUGINS_PATH

---
value: "['funkwhale_api.contrib.scrobbler', 'funkwhale_api.contrib.listenbrainz', 'funkwhale_api.contrib.maloja']"
---

List of Funkwhale plugins to load.

Other settings


.. autodata:: config.settings.common.INSTANCE_SUPPORT_MESSAGE_DELAY
.. autodata:: config.settings.common.FUNKWHALE_SUPPORT_MESSAGE_DELAY
.. autodata:: config.settings.common.MIN_DELAY_BETWEEN_DOWNLOADS_COUNT
.. autodata:: config.settings.common.MARKDOWN_EXTENSIONS
.. autodata:: config.settings.common.LINKIFIER_SUPPORTED_TLDS
.. autodata:: config.settings.common.LOGLEVEL
   :annotation: = info