This is an old revision of the document!
User Reg Notifications
- nginx.conf
location = /_matrix/client/r0/register { #limit_req zone=limitregister burst=5; client_max_body_size 100M; client_body_buffer_size 100M; proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-SSL 1; body_filter_by_lua_block { local proc = io.popen('/usr/local/bin/matrix_user_registered ' .. ngx.var.remote_addr,'w') proc:write(ngx.arg[1]) proc:close() } }
- /usr/local/bin/matrix_user_registered
#!/usr/bin/zsh # access token of @abuse:… AT='MDMA...' # admin room to send notifications to ROOM='!x1y2z3:example.com' # ip of the new user, with gdpr redaction to /24 IP=`echo $1|cut -d. -f1-3`.0 #read stdin SI=`/bin/cat` #try to retrieve new user id U=`echo $SI|jq -r .user_id` [ -z "$U" ] && exit 0 [ "null" = "$U" ] && exit 0 # send notification curl -X PUT "https://asra.gr/_matrix/client/r0/rooms/${ROOM}/send/m.room.message/"`uuid -m -F SIV`"?access_token=${AT}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"body\": \"@room New user registered: ${U} from ${IP}\", \"msgtype\": \"m.text\"}" >> /tmp/reguser.txt 2>> /tmp/reguser.txt
Content Reports
- nginx.conf
location ~ /_matrix/client/r0/rooms/.*/report/.* { client_max_body_size 100M; client_body_buffer_size 100M; proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-SSL 1; rewrite_by_lua ' if ngx.var.request_method == "POST" then os.execute("/usr/local/bin/matrix_event_reported") end '; }
- /usr/local/bin/matrix_event_reported
#!/bin/sh AT='MDMA...' ROOM='!x1y2z3:example.com' echo date $* >> /tmp/report.log #https://asra.gr/.well-known/matrix/support # abuse@matrix.org: https://matrix.to/#/!OGEhHVWSdvArJzumhm:matrix.org/$3CNYJIakytzbO6qI4eR8JmCVJUMUUm57YmjJJIOR-ic curl -X PUT "https://asra.gr/_matrix/client/r0/rooms/${ROOM}/send/m.room.message/"`uuid -m -F SIV`"?access_token=${AT}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"body\": \"@room there was a event reported\", \"msgtype\": \"m.text\"}"