diff --git a/README.md b/README.md index 5272510..e0ac172 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,84 @@ Activity Pub Reverse Proxy Framework this is a collection of OpenResty scripts that provide different functionality on top of ActivityPub implementations. -## TODO +## Installation -- write example script -- write test suite -- create install instructions +### the fuck is openresty + +Get OpenResty: http://openresty.org/en/ + +For those not in the know, OpenResty is a "soft fork" of the god NGINX. +It adds various modules but the most important of them is Lua scripting +(provided by another god, LuaJIT) + +It is an effective replacement to your NGINX installation, but you can have +them coexisting (say, NGINX on port 80, OpenResty being reverse proxied by +NGINX on port 8069, though I wouldn't recommend it). + +### actually installing aproxy + +``` +mkdir /opt +git clone https://gitdab.com/luna/aproxy + +cd aproxy +mkdir /etc/aproxy +cp ./conf.lua /etc/aproxy/conf.lua +$EDITOR /etc/aproxy/conf.lua +``` + +#### now to configuring openresty to use aproxy + +Say, you already have your reverse proxy block to your instance as such: +```nginx +http { + server { + server_name example.com; + location / { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + proxy_pass http://localhost:4000; + } + } +} +``` + +You need to do the following: + - Configure OpenResty package path so that it can call aproxy. + - Insert aproxy as a callback on `location / {` block + +It'll look something like this: + +```nginx +http { + lua_package_path '/opt/?.lua;/opt/aproxy/?.lua;;'; + + server { + server_name example.com; + location / { + # set this to 'on' after you have tested that it actually works. + # once you do that, performance will be increased + # while the friction to quickly debug aproxy will also be increased + lua_code_cache off; + access_by_lua_block { + require("aproxy.main")() + } + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + proxy_pass http://localhost:4000; + } + } +} +``` ## Testing -requires luajit +requires luajit, and nothing else. ```sh make testdeps