c01985d25d72e70dd1a0f1821eca660f1dbb54ba
[anni] / docs / configuration / storing_remote_media.md
1 # Storing Remote Media
2
3 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
4 for a year and to activate the `MediaProxyWarmingPolicy` MRF policy in Pleroma which will automatically fetch all media through the proxy
5 as soon as the post is received by your instance.
6
7 ## Nginx
8
9 ```
10     proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2
11         keys_zone=pleroma_media_cache:10m inactive=1y use_temp_path=off;
12
13     location ~ ^/(media|proxy) {
14         proxy_cache        pleroma_media_cache;
15         slice              1m;
16         proxy_cache_key    $host$uri$is_args$args$slice_range;
17         proxy_set_header   Range $slice_range;
18         proxy_http_version 1.1;
19         proxy_cache_valid  206 301 302 304 1h;
20         proxy_cache_valid  200 1y;
21         proxy_cache_use_stale error timeout invalid_header updating;
22         proxy_ignore_client_abort on;
23         proxy_buffering    on;
24         chunked_transfer_encoding on;
25         proxy_ignore_headers Cache-Control Expires;
26         proxy_hide_header  Cache-Control Expires;
27         proxy_pass         http://127.0.0.1:4000;
28     }
29 ```
30
31 ## Pleroma
32
33 Add to your `prod.secret.exs`:
34
35 ```
36 config :pleroma, :mrf,
37   policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy]
38 ```