Merge branch 'fixed-entrypoint' into 'develop'
More generic entrypoint to work with non-compose setups See merge request funkwhale/funkwhale!78
This commit is contained in:
commit
55a93c71e3
|
@ -4,16 +4,19 @@ set -e
|
||||||
# Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
|
# Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
|
||||||
# environment variables just to support cookiecutter out of the box. That makes no sense, so this little entrypoint
|
# environment variables just to support cookiecutter out of the box. That makes no sense, so this little entrypoint
|
||||||
# does all this for us.
|
# does all this for us.
|
||||||
export CACHE_URL=redis://redis:6379/0
|
export CACHE_URL=${CACHE_URL:="redis://redis:6379/0"}
|
||||||
|
|
||||||
# the official postgres image uses 'postgres' as default user if not set explictly.
|
if [ -z "$DATABASE_URL" ]; then
|
||||||
if [ -z "$POSTGRES_ENV_POSTGRES_USER" ]; then
|
# the official postgres image uses 'postgres' as default user if not set explictly.
|
||||||
|
if [ -z "$POSTGRES_ENV_POSTGRES_USER" ]; then
|
||||||
export POSTGRES_ENV_POSTGRES_USER=postgres
|
export POSTGRES_ENV_POSTGRES_USER=postgres
|
||||||
|
fi
|
||||||
|
export DATABASE_URL=postgres://$POSTGRES_ENV_POSTGRES_USER:$POSTGRES_ENV_POSTGRES_PASSWORD@postgres:5432/$POSTGRES_ENV_POSTGRES_USER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export DATABASE_URL=postgres://$POSTGRES_ENV_POSTGRES_USER:$POSTGRES_ENV_POSTGRES_PASSWORD@postgres:5432/$POSTGRES_ENV_POSTGRES_USER
|
if [ -z "$CELERY_BROKER_URL" ]; then
|
||||||
|
export CELERY_BROKER_URL=$CACHE_URL
|
||||||
export CELERY_BROKER_URL=$CACHE_URL
|
fi
|
||||||
|
|
||||||
# we copy the frontend files, if any so we can serve them from the outside
|
# we copy the frontend files, if any so we can serve them from the outside
|
||||||
if [ -d "frontend" ]; then
|
if [ -d "frontend" ]; then
|
||||||
|
|
|
@ -310,7 +310,7 @@ CELERY_BROKER_URL = env(
|
||||||
"CELERY_BROKER_URL", default=env('CACHE_URL', default=CACHE_DEFAULT))
|
"CELERY_BROKER_URL", default=env('CACHE_URL', default=CACHE_DEFAULT))
|
||||||
########## END CELERY
|
########## END CELERY
|
||||||
# Location of root django.contrib.admin URL, use {% url 'admin:index' %}
|
# Location of root django.contrib.admin URL, use {% url 'admin:index' %}
|
||||||
ADMIN_URL = r'^admin/'
|
|
||||||
# Your common stuff: Below this line define 3rd party library settings
|
# Your common stuff: Below this line define 3rd party library settings
|
||||||
CELERY_TASK_DEFAULT_RATE_LIMIT = 1
|
CELERY_TASK_DEFAULT_RATE_LIMIT = 1
|
||||||
CELERY_TASK_TIME_LIMIT = 300
|
CELERY_TASK_TIME_LIMIT = 300
|
||||||
|
|
|
@ -20,7 +20,7 @@ services:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
image: funkwhale/funkwhale:${FUNKWHALE_VERSION:-latest}
|
image: funkwhale/funkwhale:${FUNKWHALE_VERSION:-latest}
|
||||||
env_file: .env
|
env_file: .env
|
||||||
command: python manage.py celery worker
|
command: celery -A funkwhale_api.taskapp worker -l INFO
|
||||||
links:
|
links:
|
||||||
- postgres
|
- postgres
|
||||||
- redis
|
- redis
|
||||||
|
|
|
@ -31,7 +31,7 @@ FUNKWHALE_API_PORT=5000
|
||||||
|
|
||||||
# Replace this by the definitive, public domain you will use for
|
# Replace this by the definitive, public domain you will use for
|
||||||
# your instance
|
# your instance
|
||||||
FUNKWHALE_URL=https.//yourdomain.funwhale
|
FUNKWHALE_URL=https://yourdomain.funwhale
|
||||||
|
|
||||||
# API/Django configuration
|
# API/Django configuration
|
||||||
|
|
||||||
|
@ -84,3 +84,6 @@ API_AUTHENTICATION_REQUIRED=True
|
||||||
# This will help us detect and correct bugs
|
# This will help us detect and correct bugs
|
||||||
RAVEN_ENABLED=false
|
RAVEN_ENABLED=false
|
||||||
RAVEN_DSN=https://44332e9fdd3d42879c7d35bf8562c6a4:0062dc16a22b41679cd5765e5342f716@sentry.eliotberriot.com/5
|
RAVEN_DSN=https://44332e9fdd3d42879c7d35bf8562c6a4:0062dc16a22b41679cd5765e5342f716@sentry.eliotberriot.com/5
|
||||||
|
|
||||||
|
# This setting will soon become useless
|
||||||
|
CACHALOT_ENABLED=False
|
||||||
|
|
|
@ -8,7 +8,7 @@ User=funkwhale
|
||||||
# adapt this depending on the path of your funkwhale installation
|
# adapt this depending on the path of your funkwhale installation
|
||||||
WorkingDirectory=/srv/funkwhale/api
|
WorkingDirectory=/srv/funkwhale/api
|
||||||
EnvironmentFile=/srv/funkwhale/config/.env
|
EnvironmentFile=/srv/funkwhale/config/.env
|
||||||
ExecStart=/usr/local/bin/daphne -b ${FUNKWHALE_API_IP} -p ${FUNKWHALE_API_PORT} config.asgi:application
|
ExecStart=/srv/funkwhale/virtualenv/bin/daphne -b ${FUNKWHALE_API_IP} -p ${FUNKWHALE_API_PORT} config.asgi:application
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -8,7 +8,7 @@ User=funkwhale
|
||||||
# adapt this depending on the path of your funkwhale installation
|
# adapt this depending on the path of your funkwhale installation
|
||||||
WorkingDirectory=/srv/funkwhale/api
|
WorkingDirectory=/srv/funkwhale/api
|
||||||
EnvironmentFile=/srv/funkwhale/config/.env
|
EnvironmentFile=/srv/funkwhale/config/.env
|
||||||
ExecStart=/srv/funkwhale/virtualenv/bin/python manage.py celery worker
|
ExecStart=/srv/funkwhale/virtualenv/bin/celery -A funkwhale_api.taskapp worker -l INFO
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
Instance configuration
|
||||||
|
======================
|
||||||
|
|
||||||
|
General configuration is achieved using two type of settings.
|
||||||
|
|
||||||
|
Environment variables
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Those are located in your ``.env`` file, which you should have created
|
||||||
|
during installation.
|
||||||
|
|
||||||
|
Options from this file are heavily commented, and usually target lower level
|
||||||
|
and technical aspects of your instance, such as database credentials.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You should restart all funwhale processes when you change the values
|
||||||
|
on environment variables.
|
||||||
|
|
||||||
|
|
||||||
|
Instance settings
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Those settings are stored in database and do not require a restart of your
|
||||||
|
instance after modification. They typically relate to higher level configuration,
|
||||||
|
such your instance description, signup policy and so on.
|
||||||
|
|
||||||
|
There is no polished interface for those settings, yet, but you can view update
|
||||||
|
them using the administration interface provided by Django (the framework funkwhale is built on).
|
||||||
|
|
||||||
|
The URL should be ``/api/admin/dynamic_preferences/globalpreferencemodel/`` (prepend your domain in front of it, of course).
|
||||||
|
|
||||||
|
If you plan to use acoustid and external imports
|
||||||
|
(e.g. with the youtube backends), you should edit the corresponding
|
||||||
|
settings in this interface.
|
|
@ -13,6 +13,7 @@ Funkwhale is a self-hosted, modern free and open-source music server, heavily in
|
||||||
|
|
||||||
features
|
features
|
||||||
installation/index
|
installation/index
|
||||||
|
configuration
|
||||||
importing-music
|
importing-music
|
||||||
changelog
|
changelog
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,15 @@ you should now be able to open a postgresql shell:
|
||||||
|
|
||||||
sudo -u funkwhale -H psql
|
sudo -u funkwhale -H psql
|
||||||
|
|
||||||
|
Unless you give a superuser access to the database user, you should also
|
||||||
|
enable some extensions on your database server, as those are required
|
||||||
|
for funkwhale to work properly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
sudo -u postgres psql -c 'CREATE EXTENSION "unaccent";''
|
||||||
|
|
||||||
|
|
||||||
Cache setup (Redis)
|
Cache setup (Redis)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue