Commit 8b4c4d0d authored by Agate's avatar Agate 💬
Browse files

Merge branch '1086-hostname' into 'master'

Fix #1086: Added safeguard to ensure local uploads are never purged from cache

See merge request funkwhale/funkwhale!1116
parents 6486206c 49a8b2ba
......@@ -50,6 +50,7 @@ def clean_music_cache():
.filter(Q(source__startswith="http://") | Q(source__startswith="https://"))
.only("audio_file", "id")
......@@ -16,20 +16,28 @@ def test_clean_federation_music_cache_if_no_listen(preferences, factories):
preferences["federation__music_cache_duration"] = 60
remote_library = factories["music.Library"]()
upload1 = factories["music.Upload"](
upload2 = factories["music.Upload"](
library=remote_library, - datetime.timedelta(minutes=61),
upload3 = factories["music.Upload"](
library=remote_library, accessed_date=None, source="http://upload3.mp3"
upload3 = factories["music.Upload"](library=remote_library, accessed_date=None)
# local upload, should not be cleaned
upload4 = factories["music.Upload"](library__actor__local=True, accessed_date=None)
# non-http source , not cleaned
upload5 = factories["music.Upload"](accessed_date=None, source="noop")
path1 = upload1.audio_file_path
path2 = upload2.audio_file_path
path3 = upload3.audio_file_path
path4 = upload4.audio_file_path
path5 = upload5.audio_file_path
......@@ -37,15 +45,18 @@ def test_clean_federation_music_cache_if_no_listen(preferences, factories):
assert bool(upload1.audio_file) is True
assert bool(upload2.audio_file) is False
assert bool(upload3.audio_file) is False
assert bool(upload4.audio_file) is True
assert bool(upload5.audio_file) is True
assert os.path.exists(path1) is True
assert os.path.exists(path2) is False
assert os.path.exists(path3) is False
assert os.path.exists(path4) is True
assert os.path.exists(path5) is True
def test_clean_federation_music_cache_orphaned(settings, preferences, factories):
Added safeguard to ensure local uploads are never purged from cache (#1086)
......@@ -38,7 +38,8 @@ FUNKWHALE_API_PORT=5000
# more concurrent requests, but also leads to higher CPU/Memory usage
# Replace this by the definitive, public domain you will use for
# your instance
# your instance. It cannot be changed after initial deployment
# without breaking your instance.
Regardless of your chosen installation method, the following requirements must be met in order to successfully deploy Funkwhale:
- **A dedicated domain or subdomain**: it is not possible to deploy Funkwhale on a subdirectory of an existing domain.
- **Access to ports 80 and/or 443**: if you cannot serve the Funkwhale web app and API on these ports, federation will not work
.. note::
Because of the federated nature of Funkwhale, **we strongly recommend you not to change the Funkwhale domain after initial deployment**, as it is likely to break
your installation.
Available installation methods
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment