X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=installation%2Fpleroma-apache.conf;h=139abe9e1fa05d72d3ce3a6476eb378a76b8e500;hb=8373cb645b7f357eedbc3a45a2e75a81376e6ef8;hp=e45ebf1075549049372c1cfee7371d137aaba5f6;hpb=2d0a2d94663bb38319c6d75d91836c32f9ac178e;p=akkoma diff --git a/installation/pleroma-apache.conf b/installation/pleroma-apache.conf index e45ebf107..139abe9e1 100644 --- a/installation/pleroma-apache.conf +++ b/installation/pleroma-apache.conf @@ -1,27 +1,84 @@ - -#Example configuration for when Apache httpd and Pleroma are on the same host. -#Needed modules: proxy proxy_http proxy_wstunnel rewrite -#This assumes a Debian style Apache config. Put this in /etc/apache2/sites-available -#Doesn't include SSL, just run certbot and let it take care of that. +# Sample Apache config for Pleroma +# +# Simple installation instructions: +# 1. Install your TLS certificate. We recommend using Let's Encrypt via Certbot +# 2. Replace 'example.tld' with your instance's domain. +# 3. This assumes a Debian-style Apache config. Copy this file to +# /etc/apache2/sites-available/ and then activate the site by running +# 'a2ensite pleroma-apache.conf', then restart Apache. +# +# Optional: enable disk-based caching for the media proxy +# For details, see https://git.pleroma.social/pleroma/pleroma/wikis/How%20to%20activate%20mediaproxy +# +# 1. Create a directory as shown below for the CacheRoot and make sure +# the Apache user can write to it. +# 2. Configure Apache's htcacheclean to clean the directory periodically. +# Your OS may provide a service you can enable to do this automatically. + +Define servername example.tld + + + LoadModule proxy_module libexec/apache24/mod_proxy.so + + + LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so + + + LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so + + + LoadModule rewrite_module libexec/apache24/mod_rewrite.so + + + LoadModule ssl_module libexec/apache24/mod_ssl.so + + + LoadModule cache_module libexec/apache24/mod_cache.so + + + LoadModule cache_disk_module libexec/apache24/mod_cache_disk.so + +ServerName ${servername} +ServerTokens Prod -#Change this: -ServerName pleroma.example.com +# If you want Pleroma-specific logs +#ErrorLog /var/log/httpd-pleroma-error.log +#CustomLog /var/log/httpd-pleroma-access.log combined -RewriteEngine On -RewriteCond %{HTTP:Connection} Upgrade [NC] -RewriteCond %{HTTP:Upgrade} websocket [NC] -RewriteRule /(.*) ws://localhost:4000/$1 [P,L] + + RewriteEngine on + RewriteCond %{SERVER_NAME} =${servername} + RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + -ProxyRequests off -ProxyPass / http://localhost:4000/ -ProxyPassReverse / http://localhost:4000/ + + SSLEngine on + SSLCertificateFile /etc/letsencrypt/live/${servername}/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/${servername}/privkey.pem + # Make sure you have the certbot-apache module installed + Include /etc/letsencrypt/options-ssl-apache.conf -#Change this too: -RequestHeader set Host "pleroma.example.com" -ProxyPreserveHost On + # Uncomment the following to enable MediaProxy caching on disk + #CacheRoot /tmp/pleroma-media-cache/ + #CacheDirLevels 1 + #CacheDirLength 2 + #CacheEnable disk /proxy + #CacheLock on + #CacheHeader on + #CacheDetailHeader on + ## 16MB max filesize for caching, configure as desired + #CacheMaxFileSize 16000000 + #CacheDefaultExpire 86400 - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined + RewriteEngine On + RewriteCond %{HTTP:Connection} Upgrade [NC] + RewriteCond %{HTTP:Upgrade} websocket [NC] + RewriteRule /(.*) ws://127.0.0.1:4000/$1 [P,L] + #ProxyRequests must be off or you open your server to abuse as an open proxy + ProxyRequests off + ProxyPass / http://127.0.0.1:4000/ + ProxyPassReverse / http://127.0.0.1:4000/ + ProxyPreserveHost On