# Sample Apache config for Akkoma # # 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 akkoma-apache.conf', then restart Apache. # # Optional: enable disk-based caching for the media proxy # For details, see https://docs.akkoma.dev/stable/configuration/howto_mediaproxy/ # # 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 # If you want Akkoma-specific logs #ErrorLog /var/log/httpd-akkoma-error.log #CustomLog /var/log/httpd-akkoma-access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =${servername} RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 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 # Uncomment the following to enable MediaProxy caching on disk #CacheRoot /var/tmp/akkoma-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 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