match nginx config to install config and extend docs a bit
[akkoma] / docs / docs / configuration / storing_remote_media.md
1 # Storing Remote Media
2
3 Akkoma 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 Akkoma 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 The following are excerpts from the [suggested nginx config](../../../installation/nginx/akkoma.nginx) that demonstrates the necessary config for the media proxy to work.
10
11 A `proxy_cache_path` must be defined, for example:
12
13 ```
14 proxy_cache_path /long/term/storage/path/akkoma-media-cache levels=1:2
15 keys_zone=akkoma_media_cache:10m inactive=1y use_temp_path=off;
16 ```
17
18 The `proxy_cache_path` must then be configured for use with media proxy paths:
19
20 ```
21 location ~ ^/(media|proxy) {
22 proxy_cache akkoma_media_cache;
23 slice 1m;
24 proxy_cache_key $host$uri$is_args$args$slice_range;
25 proxy_set_header Range $slice_range;
26 proxy_cache_valid 200 206 301 304 1h;
27 proxy_cache_lock on;
28 proxy_ignore_client_abort on;
29 proxy_buffering on;
30 chunked_transfer_encoding on;
31 proxy_pass http://phoenix;
32 }
33 }
34 ```
35
36 Ensure that `proxy_http_version 1.1;` is set for the above `location` block. In the suggested config, this is already the case.
37
38 ## Akkoma
39
40 ### File-based Configuration
41
42 If you're using static file configuration, add the `MediaProxyWarmingPolicy` to your MRF policies. For example:
43
44 ```
45 config :pleroma, :mrf,
46 policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy]
47 ```
48
49 ### Database Configuration
50
51 In the admin interface, add `MediaProxyWarmingPolicy` to the `Policies` option under `Settings` → `MRF`.