summaryrefslogtreecommitdiff
path: root/docs/configuration/storing_remote_media.md
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2020-06-29 16:09:49 +0400
committerEgor Kislitsyn <egor@kislitsyn.com>2020-06-29 16:09:49 +0400
commit4a306720e8be8633e192f7b2c98f129a315939b9 (patch)
treeed5ec059c532777a28eade72f384c8a800ead496 /docs/configuration/storing_remote_media.md
parentd15aa9d9503e59b3cd0731394855781f435ec63c (diff)
parent651f269568cb7e54cd96d8a0d8ea3533f77e9a3a (diff)
downloadpleroma-4a306720e8be8633e192f7b2c98f129a315939b9.tar.gz
pleroma-4a306720e8be8633e192f7b2c98f129a315939b9.zip
Merge branch 'develop' into remove-twitter-api
Diffstat (limited to 'docs/configuration/storing_remote_media.md')
-rw-r--r--docs/configuration/storing_remote_media.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/configuration/storing_remote_media.md b/docs/configuration/storing_remote_media.md
new file mode 100644
index 000000000..c01985d25
--- /dev/null
+++ b/docs/configuration/storing_remote_media.md
@@ -0,0 +1,38 @@
+# Storing Remote Media
+
+Pleroma does not store remote/federated media by default. The best way to achieve this is to change Nginx to keep its reverse proxy cache
+for a year and to activate the `MediaProxyWarmingPolicy` MRF policy in Pleroma which will automatically fetch all media through the proxy
+as soon as the post is received by your instance.
+
+## Nginx
+
+```
+ proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2
+ keys_zone=pleroma_media_cache:10m inactive=1y use_temp_path=off;
+
+ location ~ ^/(media|proxy) {
+ proxy_cache pleroma_media_cache;
+ slice 1m;
+ proxy_cache_key $host$uri$is_args$args$slice_range;
+ proxy_set_header Range $slice_range;
+ proxy_http_version 1.1;
+ proxy_cache_valid 206 301 302 304 1h;
+ proxy_cache_valid 200 1y;
+ proxy_cache_use_stale error timeout invalid_header updating;
+ proxy_ignore_client_abort on;
+ proxy_buffering on;
+ chunked_transfer_encoding on;
+ proxy_ignore_headers Cache-Control Expires;
+ proxy_hide_header Cache-Control Expires;
+ proxy_pass http://127.0.0.1:4000;
+ }
+```
+
+## Pleroma
+
+Add to your `prod.secret.exs`:
+
+```
+config :pleroma, :mrf,
+ policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy]
+```