aproxy/README.md

92 lines
2.3 KiB
Markdown
Raw Normal View History

2022-12-03 19:06:50 +00:00
# aproxy
2022-12-03 19:08:24 +00:00
Activity Pub Reverse Proxy Framework
this is a collection of OpenResty scripts that provide different functionality
on top of ActivityPub implementations.
2022-12-07 05:00:48 +00:00
## Installation
2022-12-03 19:08:24 +00:00
2022-12-07 05:00:48 +00:00
### 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
2022-12-07 05:03:23 +00:00
NGINX on port 8069, though I wouldn't recommend it in production environments).
2022-12-07 05:00:48 +00:00
### actually installing aproxy
2022-12-07 05:03:23 +00:00
```sh
2022-12-07 05:00:48 +00:00
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;
}
}
}
```
2022-12-03 19:08:24 +00:00
2022-12-07 05:02:43 +00:00
## Running the test suite
2022-12-06 18:53:20 +00:00
2022-12-07 05:03:23 +00:00
requires luarocks, luajit, and nothing else.
2022-12-06 21:25:26 +00:00
2022-12-06 21:24:25 +00:00
```sh
2022-12-06 21:25:26 +00:00
make testdeps
2022-12-06 18:53:20 +00:00
eval (luarocks-5.1 path --bin)
2022-12-06 21:25:26 +00:00
make test
2022-12-06 18:53:20 +00:00
```