diff options
Diffstat (limited to 'installation')
| -rwxr-xr-x | installation/init.d/pleroma | 1 | ||||
| -rw-r--r-- | installation/nsfw-api.service | 15 | ||||
| -rw-r--r-- | installation/pleroma-mediaproxy.nginx | 97 | ||||
| -rwxr-xr-x | installation/pleroma-mongooseim.cfg | 6 | 
4 files changed, 116 insertions, 3 deletions
| diff --git a/installation/init.d/pleroma b/installation/init.d/pleroma index 384536f7e..cb6635a0b 100755 --- a/installation/init.d/pleroma +++ b/installation/init.d/pleroma @@ -8,6 +8,7 @@ pidfile="/var/run/pleroma.pid"  directory=/opt/pleroma  healthcheck_delay=60  healthcheck_timer=30 +no_new_privs="yes"  : ${pleroma_port:-4000} diff --git a/installation/nsfw-api.service b/installation/nsfw-api.service new file mode 100644 index 000000000..ec629df67 --- /dev/null +++ b/installation/nsfw-api.service @@ -0,0 +1,15 @@ +[Unit] +Description=NSFW API +After=docker.service +Requires=docker.service + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker stop %n +ExecStartPre=-/usr/bin/docker rm %n +ExecStartPre=/usr/bin/docker pull eugencepoi/nsfw_api:latest +ExecStart=/usr/bin/docker run --rm -p 127.0.0.1:5000:5000/tcp --env PORT=5000 --name %n eugencepoi/nsfw_api:latest + +[Install] +WantedBy=multi-user.target diff --git a/installation/pleroma-mediaproxy.nginx b/installation/pleroma-mediaproxy.nginx new file mode 100644 index 000000000..6f2edf212 --- /dev/null +++ b/installation/pleroma-mediaproxy.nginx @@ -0,0 +1,97 @@ +# This file is for those who want to serve uploaded media and media proxy over +# another domain. This is STRONGLY RECOMMENDED. +# This is meant to be used ALONG WITH `pleroma.nginx`. + +# If this is a new instance, replace the `location ~ ^/(media|proxy)` section in +# `pleroma.nginx` with the following to completely disable access to media from the main domain: +# location ~ ^/(media|proxy) { +#     return 404; +# } +# +# If you are configuring an existing instance to use another domain +# for media, you will want to keep redirecting all existing local media to the new domain +# so already-uploaded media will not break. +# Replace the `location ~ ^/(media|proxy)` section in `pleroma.nginx` with the following: +# +# location /media { +#     return 301 https://some.other.domain$request_uri; +# } +# +# location /proxy { +#     return 404; +# } + +server { +    server_name    some.other.domain; + +    listen         80; +    listen         [::]:80; + +    # Uncomment this if you need to use the 'webroot' method with certbot. Make sure +    # that the directory exists and that it is accessible by the webserver. If you followed +    # the guide, you already ran 'mkdir -p /var/lib/letsencrypt' to create the folder. +    # You may need to load this file with the ssl server block commented out, run certbot +    # to get the certificate, and then uncomment it. +    # +    # location ~ /\.well-known/acme-challenge { +    #     root /var/lib/letsencrypt/; +    # } +    location / { +      return         301 https://$server_name$request_uri; +    } +} + +server { +    server_name some.other.domain; + +    listen 443 ssl http2; +    listen [::]:443 ssl http2; +    ssl_session_timeout 1d; +    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions +    ssl_session_tickets off; + +    ssl_trusted_certificate   /etc/letsencrypt/live/some.other.domain/chain.pem; +    ssl_certificate           /etc/letsencrypt/live/some.other.domain/fullchain.pem; +    ssl_certificate_key       /etc/letsencrypt/live/some.other.domain/privkey.pem; + +    ssl_protocols TLSv1.2 TLSv1.3; +    ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; +    ssl_prefer_server_ciphers off; +    # In case of an old server with an OpenSSL version of 1.0.2 or below, +    # leave only prime256v1 or comment out the following line. +    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; +    ssl_stapling on; +    ssl_stapling_verify on; + +    gzip_vary on; +    gzip_proxied any; +    gzip_comp_level 6; +    gzip_buffers 16 8k; +    gzip_http_version 1.1; +    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml; + +    # the nginx default is 1m, not enough for large media uploads +    client_max_body_size 16m; +    ignore_invalid_headers off; + +    proxy_http_version 1.1; +    proxy_set_header Upgrade $http_upgrade; +    proxy_set_header Connection "upgrade"; +    proxy_set_header Host $http_host; +    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + +    location / { return 404; } + +    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_cache_valid  200 206 301 304 1h; +        proxy_cache_lock   on; +        proxy_ignore_client_abort on; +        proxy_buffering    on; +        chunked_transfer_encoding on; +        proxy_pass         http://phoenix; +    } +} diff --git a/installation/pleroma-mongooseim.cfg b/installation/pleroma-mongooseim.cfg index 3ecba5641..6b568fd03 100755 --- a/installation/pleroma-mongooseim.cfg +++ b/installation/pleroma-mongooseim.cfg @@ -204,7 +204,7 @@        ]}    ]}, -  %% Following HTTP API is deprected, the new one abouve should be used instead +  %% Following HTTP API is deprecated, the new one above should be used instead    { {5288, "127.0.0.1"} , ejabberd_cowboy, [        {num_acceptors, 10}, @@ -824,7 +824,7 @@      %% Enable archivization for private messages (default)  %   {pm, [ -      %% Top-level options can be overriden here if needed, for example: +      %% Top-level options can be overridden here if needed, for example:  %     {async_writer, false}  %   ]}, @@ -834,7 +834,7 @@      %%  %   {muc, [  %     {host, "muc.@HOST@"} -      %% As with pm, top-level options can be overriden for MUC archive +      %% As with pm, top-level options can be overridden for MUC archive  %   ]},  %      %% Do not use a <stanza-id/> element (by default stanzaid is used) | 
