summaryrefslogtreecommitdiff
path: root/installation
diff options
context:
space:
mode:
Diffstat (limited to 'installation')
-rwxr-xr-xinstallation/netbsd/rc.d/pleroma57
-rw-r--r--installation/openbsd/httpd.conf36
-rwxr-xr-xinstallation/openbsd/rc.d/pleromad34
-rw-r--r--installation/openbsd/relayd.conf44
-rw-r--r--installation/pleroma.nginx9
5 files changed, 179 insertions, 1 deletions
diff --git a/installation/netbsd/rc.d/pleroma b/installation/netbsd/rc.d/pleroma
new file mode 100755
index 000000000..1114668ee
--- /dev/null
+++ b/installation/netbsd/rc.d/pleroma
@@ -0,0 +1,57 @@
+#!/bin/sh
+# PROVIDE: pleroma
+# REQUIRE: DAEMON pgsql
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="pleroma"
+rcvar=${name}
+command="/usr/pkg/bin/elixir"
+command_args="--detached -S /usr/pkg/bin/mix phx.server"
+start_precmd="ulimit -n unlimited"
+pidfile="/dev/null"
+
+pleroma_chdir="${pleroma_home}/pleroma"
+pleroma_env="HOME=${pleroma_home} MIX_ENV=prod"
+
+check_pidfile()
+{
+ pid=$(pgrep -U "${pleroma_user}" /bin/beam.smp$)
+ echo -n "${pid}"
+}
+
+if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+ # newer NetBSD
+ load_rc_config ${name}
+ run_rc_command "$1"
+else
+ # ancient NetBSD, Solaris and illumos, Linux, etc...
+ cmd=${1:-start}
+
+ case ${cmd} in
+ start)
+ echo "Starting ${name}."
+ ${start_cmd}
+ ;;
+
+ stop)
+ echo "Stopping ${name}."
+ check_pidfile
+ ! [ -n ${pid} ] && kill ${pid}
+ ;;
+
+ restart)
+ ( $0 stop )
+ sleep 5
+ $0 start
+ ;;
+
+ *)
+ echo 1>&2 "Usage: $0 [start|stop|restart]"
+ exit 1
+ ;;
+ esac
+ exit 0
+fi
diff --git a/installation/openbsd/httpd.conf b/installation/openbsd/httpd.conf
new file mode 100644
index 000000000..82f4803fd
--- /dev/null
+++ b/installation/openbsd/httpd.conf
@@ -0,0 +1,36 @@
+#
+# Default httpd.conf file for Pleroma on OpenBSD
+# Simple installation instructions
+# 1. Place file in /etc
+# 2. Replace <IPv4 address> with your public IP address
+# 3. If using IPv6, uncomment IPv6 lines and replace <IPv6 address> with your public IPv6 address
+# 4. Check file using 'doas httpd -n'
+# 5. Enable and start httpd:
+# # doas rcctl enable httpd
+# # doas rcctl start httpd
+#
+
+ext_inet="<IPv4 address>"
+#ext_inet6="<IPv6 address>"
+
+server "default" {
+ listen on $ext_inet port 80 # Comment to disable listening on IPv4
+# listen on $ext_inet6 port 80 # Comment to disable listening on IPv6
+ listen on 127.0.0.1 port 80 # Do NOT comment this line
+
+ log syslog
+ directory no index
+
+ location "/.well-known/acme-challenge/*" {
+ root "/acme"
+ request strip 2
+ }
+
+ location "/robots.txt" { root "/htdocs/local/" }
+ location "/*" { block return 302 "https://$HTTP_HOST$REQUEST_URI" }
+}
+
+types {
+ include "/usr/share/misc/mime.types"
+}
+
diff --git a/installation/openbsd/rc.d/pleromad b/installation/openbsd/rc.d/pleromad
new file mode 100755
index 000000000..19ac4bb51
--- /dev/null
+++ b/installation/openbsd/rc.d/pleromad
@@ -0,0 +1,34 @@
+#!/bin/ksh
+#
+# Default init file for Pleroma on OpenBSD
+#
+# Simple installation instructions:
+# 1. Install Pleroma per wiki instructions
+# 2. Place this pleromad file in /etc/rc.d
+# 3. Enable and start Pleroma
+# # doas rcctl enable pleromad
+# # doas rcctl start pleromad
+#
+
+daemon="/usr/local/bin/elixir"
+daemon_flags="--detached -S /usr/local/bin/mix phx.server"
+daemon_user="_pleroma"
+
+. /etc/rc.d/rc.subr
+
+rc_reload=NO
+pexp="phx.server"
+
+rc_check() {
+ pgrep -q -U _pleroma -f "phx.server"
+}
+
+rc_start() {
+ ${rcexec} "cd pleroma; ${daemon} ${daemon_flags}"
+}
+
+rc_stop() {
+ pkill -q -U _pleroma -f "phx.server"
+}
+
+rc_cmd $1
diff --git a/installation/openbsd/relayd.conf b/installation/openbsd/relayd.conf
new file mode 100644
index 000000000..31c2c1129
--- /dev/null
+++ b/installation/openbsd/relayd.conf
@@ -0,0 +1,44 @@
+#
+# Default relayd.conf file for Pleroma on OpenBSD
+# Simple installation instructions:
+# 1. Place in /etc
+# 2. Replace <ipaddr> with your public IPv4 address
+# 3. If using IPv6i, uncomment IPv6 lines and replace <ip6addr> with your public IPv6 address
+# 4. Check file using 'doas relayd -n'
+# 5. Reload/start relayd
+# # doas rcctl enable relayd
+# # doas rcctl start relayd
+#
+
+ext_inet="<ipaddr>"
+#ext_inet6="<ip6addr>"
+
+table <pleroma_server> { 127.0.0.1 }
+table <httpd_server> { 127.0.0.1 }
+
+http protocol plerup { # Protocol for upstream pleroma server
+ #tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit
+ tls ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA0-POLY1305"
+ tls ecdhe secp384r1
+
+ # Forward some paths to the local server (as pleroma won't respond to them as you might want)
+ pass request quick path "/robots.txt" forward to <httpd_server>
+
+ # Append a bunch of headers
+ match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictl required by pleroma but adding them won't hurt
+ match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT"
+
+ match request header append "Connection" value "upgrade"
+
+}
+
+relay wwwtls {
+ listen on $ext_inet port https tls # Comment to disable listening on IPv4
+# listen on $ext_inet6 port https tls # Comment to disable listening on IPv6
+
+ protocol plerup
+
+ forward to <pleroma_server> port 4000 check http "/" code 200
+ forward to <httpd_server> port 80 check http "/robots.txt" code 200
+}
+
diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx
index f0e684f2c..46b84fb50 100644
--- a/installation/pleroma.nginx
+++ b/installation/pleroma.nginx
@@ -70,10 +70,17 @@ server {
client_max_body_size 16m;
}
- location /proxy {
+ 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_http_version 1.1;
+ proxy_cache_valid 200 206 301 304 1h;
proxy_cache_lock on;
proxy_ignore_client_abort on;
+ proxy_buffering off;
+ chunked_transfer_encoding on;
proxy_pass http://localhost:4000;
}
}